登录和会话PHP
我在检查会话时遇到一些问题,要访问页面,我需要激活会话 登录过程:登录和会话PHP,php,sql,session,login,system,Php,Sql,Session,Login,System,我在检查会话时遇到一些问题,要访问页面,我需要激活会话 登录过程: //Connect to mysql server require "reservation/connect.php"; //Function to sanitize values received from the form. Prevents SQL injection function clean($str) { $str = @trim($str); if
//Connect to mysql server
require "reservation/connect.php";
//Function to sanitize values received from the form. Prevents SQL injection
function clean($str) {
$str = @trim($str);
if(get_magic_quotes_gpc()) {
$str = stripslashes($str);
}
return mysql_real_escape_string($str);
}
//Sanitize the POST values
$login = clean($_POST['user']);
$password = clean($_POST['password']);
//Create query
$qry="SELECT * FROM user WHERE username='$login' AND password='$password'";
$result=mysql_query($qry);
//Check whether the query was successful or not
if($result) {
if(mysql_num_rows($result) > 0) {
//Login Successful
session_regenerate_id();
$member = mysql_fetch_assoc($result);
$_SESSION['SESS_MEMBER_ID'] = $member['user_id'];
$_SESSION['SESS_FIRST_NAME'] = $member['position'];
session_write_close();
//if ($level="admin"){
header("location: admin/dashboard.php");
exit();
}else {
//Login failed
header("location: index.php");
exit();
}
}else {
die("Query failed");
}
?>
身份验证:
if(!isset($_SESSION['SESS_MEMBER_ID']) || (trim($_SESSION['SESS_MEMBER_ID']) == '')) {
header("location: index.php");
exit();
}
?>
即使我从表单登录,页面也不会加载并将我重定向回索引!我做错了什么?我在页面上放了“require_once('../auth.php');”,但它仍然不起作用。这是因为它进入了语句的
else
部分,这意味着$result
为0或false
因此,原因是查询必须失败。。所以像这样添加mysql\u error()
$result=mysql_query($qry) or die(mysql_error());
要知道确切的原因
这个(
mysql.*
)扩展从php5.5.0
开始就被弃用,将来将被删除。相反,应该使用MySQLi
或PDO_-MySQL
扩展。切换到PreparedStatements
更能抵御SQL注入攻击 永远不要将密码以明文形式存储在您的表中,或者存储密码的任何位置。改为使用散列函数。@B4NZ41谢谢你的提示,我现在就应用了它!查询看起来不错,但问题在于->如果(mysql_num_rows($result)>0)-打印用mysql_num_rows($result)返回的值-记住TRUE或FALSE是布尔值而不是INT。@B4NZ41我能做些什么来解决这个问题?所以基本上我必须将这个值留给1
或TRUE
?@Gumbo,你需要回答lol.Tsukki..你是否添加了代码中所示的mysql_error()
,并进行了尝试?@Tsukkifalse
仅在失败时返回。@ShankarDamodaran是的,我添加了,但仍然无法工作。授权页面没有问题吗?