PHP 和 Mysql 学习笔记(四)

1. 如何禁用 select 下拉列表中的某一项

<select>
<option  selected>——请选择——</option>
<optgroup  label="分类一">
<option>——子类一</option>
<option>——子类二</option>
</optgroup>
<optgroup  label="分类二">
<option>——子类一</option>
<option>——子类二</option>
</optgroup>
</select>

2. EMS SQL Manager中文显示乱码
打开EMS SQL Manager点击那个数据库出现了许多属性
选择database registration info中有一个client charset
选择gb2312简体中文

3. Mysql 乱码
MySQL数据库字符集为utf8
并且网页通过UTF-8编码发送
这时存入数据库的仍然是乱码
需要做以下设置:
@mysql_connect($dbhost,$dbuser,$dbpassword);
加上下面这行
$this->query("SET NAMES 'utf8'");
在每次发送sql查询前设定字符集为utf-8

4. 正则表达式
Email匹配
if(!preg_match("/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/",$email))
{
echo "邮件格式不正确";
}

5. PHP5中时间相差八小时的解决办法

<?php
date_default_timezone_set('Asia/Shanghai');
echo date('Y-m-d H:i:s');
?>

6. PHP防止SQL注入攻击的简单方法

1.修改PHP的配置文件 php.ini ,将display_errors的值设为Off,这样保证PHP脚本在出错之后不会在页面中显示错误信息。
2.在Mysql函数前加错误抑制符 @ ,避免输出mysql错误。
3.对所有用户输入的数据进行转义并进行类型检查。

7. 返回GD函数版本号

function gd_version() {
if (function_exists('gd_info')) {
$GDArray = gd_info();
$gd_version_number = $GDArray['GD Version'] ? $GDArray['GD Version'] : 0;
unset($GDArray);
} else {
$gd_version_number = 0;
}
return $gd_version_number;
}

8. 获得用户的真实IP地址

function realip()
{
    static $realip = NULL;

    if ($realip !== NULL)
    {
        return $realip;
    }

    if (isset($_SERVER))
    {
        if (isset($_SERVER['HTTP_X_FORWARDED_FOR']))
        {
            $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);

            /* 取X-Forwarded-For中第一个非unknown的有效IP字符串 */
            foreach ($arr AS $ip)
            {
                $ip = trim($ip);

                if ($ip != 'unknown')
                {
                    $realip = $ip;

                    break;
                }
            }
        }
        elseif (isset($_SERVER['HTTP_CLIENT_IP']))
        {
            $realip = $_SERVER['HTTP_CLIENT_IP'];
        }
        else
        {
            if (isset($_SERVER['REMOTE_ADDR']))
            {
                $realip = $_SERVER['REMOTE_ADDR'];
            }
            else
            {
                $realip = '0.0.0.0';
            }
        }
    }
    else
    {
        if (getenv('HTTP_X_FORWARDED_FOR'))
        {
            $realip = getenv('HTTP_X_FORWARDED_FOR');
        }
        elseif (getenv('HTTP_CLIENT_IP'))
        {
            $realip = getenv('HTTP_CLIENT_IP');
        }
        else
        {
            $realip = getenv('REMOTE_ADDR');
        }
    }

    preg_match("/[\d\.]{7,15}/", $realip, $onlineip);
    $realip = !empty($onlineip[0]) ? $onlineip[0] : '0.0.0.0';

    return $realip;
}

9. 连接多个ID,以便创建像这样的查询: "IN('a','b')";

function implode_ids($array){
$ids = $comma = '';
if (is_array($array) && count($array)){
foreach($array as $id) {
$ids .= "$comma'".intval($id)."'";
$comma = ', ';
}
}
return $ids;
}
Tags: mysql, php, 笔记

相关日志

If you enjoyed this post, please consider to leave a comment or subscribe to the feed and get future articles delivered to your feed reader.

Comments

还没有评论。

发表评论

(必填)

(必填)


*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word

Comment moderation is enabled. Your comment may take some time to appear.