session_set_save_handle();
将Session保存到mysql或者redis
默认会话管理器是文件形式,一个用户对应一个文件,不总以应对千万访问级别。
使用mysql作为会话管理器,因为需要到数据库进行查询,会影响性能。
最佳方法:使用memcache或redis作为会话管理器。
php自定义session 调用方式
mysql_real_escape_string() 函数转义 SQL 语句中使用的字符串中的特殊字符。
mysqli_escape_string — 别名 mysqli_real_escape_string() (可以预防数据库攻击)
预防数据库攻击的正确做法:
<?php
function check_input($value)
{// 去除斜杠if (get_magic_quotes_gpc())
{
$value = stripslashes($value);
}// 如果不是数字则加引号if (!is_numeric($value))
{
$value = "'" . mysql_real_escape_string($value) . "'";
}
return $value;
}
$con = mysql_connect("localhost", "hello", "321");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}// 进行安全的 SQL$user = check_input($_POST['user']);
$pwd = check_input($_POST['pwd']);
$sql = "SELECT * FROM users WHERE
user=$user AND password=$pwd";
mysql_query($sql);
mysql_close($con);
?>
mysql_real_escape_string() 函数转义 SQL 语句中使用的字符串中的特殊字符。
mysqli_escape_string — 别名 mysqli_real_escape_string() (可以预防数据库攻击)
预防数据库攻击的正确做法:
<?php
function check_input($value)
{// 去除斜杠if (get_magic_quotes_gpc())
{
$value = stripslashes($value);
}// 如果不是数字则加引号if (!is_numeric($value))
{
$value = "'" . mysql_real_escape_string($value) . "'";
}
return $value;
}
$con = mysql_connect("localhost", "hello", "321");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}// 进行安全的 SQL$user = check_input($_POST['user']);
$pwd = check_input($_POST['pwd']);
$sql = "SELECT * FROM users WHERE
user=$user AND password=$pwd";
mysql_query($sql);
mysql_close($con);
?>