$username = $_POST['myusername'];
$password = $_POST['mypassword'];
$username = mysql_real_escape_string(stripslashes($username));
$password = mysql_real_escape_string(stripslashes($password));
session_register("username");
session_register("password");
我的代码中有这些行,它不是完整的结构,但它是相关的部分。了session_register();已弃用,正确的方法如下:$_SESSION['username'] = 'username';
但我仍然不确定它是否正确。我有点担心,因为我真的需要清理输入。 (我正在尝试使用$ _SESSION ['username'] ='username';并退出已弃用的函数)
感谢。
答案 0 :(得分:4)
不,您不需要清理输入。
您应该清理输出
mysql_real_escape_string与会话无关。它是与mysql相关的函数,应该仅用于构建mysql查询。
对于用户名和密码,我认为没有必要将其存储在会话中 您必须针对数据库进行验证,然后在会话中仅存储用户ID。
并且您不应无条件地使用stripslashes,因为它可能会破坏您的数据。最好在php.ini中关闭魔术引号并完全摆脱这个功能。
答案 1 :(得分:1)
是的,你应该使用$_SESSION['username'] = $username;
注意这假设您要将$ username变量分配给会话。这与消毒无关。