use*_*027 3 php security session login
这是一个php新手.下面是我用来构建登录系统以输入mypage.php的代码
它工作得很好但很天真,任何人都可以在网址中键入mypage.php并避开登录页面.我怎样才能使它更安全?
非常感谢!
if(isset($_POST['submit'])) {
$user = $_REQUEST['user'];
$pass = $_REQUEST['pass'];
$sql = "SELECT * FROM login WHERE user='".$user."'";
$res = $this->new_db->select($sql);
$row = $this->new_db->get_row($res);
if (isset($row)) { //user exists?
if($row["pass"] == $pass){
$_SESSION['userId'] = $row['user'];// TRYING WITH SESSIONS
header("Location: mypage.php");
} else {
echo "wrong pass";
}
} else {
echo "user does not exist";
}
}
Run Code Online (Sandbox Code Playgroud)
然后在mypage.php中
if(isset($_SESSION['userId'])) {
//contents
} else {
echo "there's an error";
}
Run Code Online (Sandbox Code Playgroud)
它打印"有一个错误"为什么?非常感谢
三件事:
mysql_real_escape_string().$_SESSION值,指示用户当前记录的信息 -在状态.然后在需要用户登录的任何页面上,检查该值.如果它存在,他们以前登录过.如果没有,他们没有.它很简单,但足以满足您的需求.