清理输入后的session_register?

时间:2011-03-14 10:33:11

标签: php

$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';并退出已弃用的函数)

感谢。

2 个答案:

答案 0 :(得分:4)

不,您不需要清理输入。

您应该清理输出

mysql_real_escape_string与会话无关。它是与mysql相关的函数,应该仅用于构建mysql查询。

对于用户名和密码,我认为没有必要将其存储在会话中 您必须针对数据库进行验证,然后在会话中仅存储用户ID。

并且您不应无条件地使用stripslashes,因为它可能会破坏您的数据。最好在php.ini中关闭魔术引号并完全摆脱这个功能。

答案 1 :(得分:1)

是的,你应该使用$_SESSION['username'] = $username;

注意这假设您要将$ username变量分配给会话。这与消毒无关。