我有一个小脚本来处理登录CMS的问题。查询工作正常,但我认为SESSIONS有问题,因为即使用户名和密码正确,它也会重定向到登录页面。我有下面的代码。请帮我解决这个问题。提前谢谢。
//checklogin.php…
<?php
include("db/dbconnect.php");
mysqli_select_db($connect, $db);
// username and password sent from signup form
$username = mysqli_real_escape_string($connect, $_POST['username']);
$password = mysqli_real_escape_string($connect, $_POST['password']);
$sql = "SELECT username, password FROM login WHERE username = '$username' AND password = '$password'";
$result = mysqli_query($connect, $sql) or die('Error : ' . mysqli_error($connect));
// Mysql_num_row is counting table row
$count = mysqli_num_rows($result);
// If result matched $username and $password, table row must be 1 row
if($count == 1)
{
//Register $username, $password and redirect to mainpage"
$_SESSION['username'] = $username;
$_SESSION['password'] = $password;
header("location:about.php");
}
else {
echo "Invalid Username or Password. Please try again.";
echo "<meta http-equiv=Refresh content=5;url=index.php>";
}
?>
//大约.php
<?php
//check if user is logged on;
session_start();
if(!isset($_SESSION['username']) )
{
header("location:index.php");
}
?>
您需要在为会话分配用户名和密码之前启动会话。在"If"条件下($count==1),您直接分配用户名和口令。把这一行放在这些任务之前:
session_start();
所以,现在你的"如果"条件变成这样:
if($count == 1)
{
session_start();
$_SESSION['username'] = $username;
$_SESSION['password'] = $password;
header("location:about.php");
}
我想,这就是问题所在。如果有效的话,请告诉我。
add session_start();在checklogin.php中这将帮助您
<?php
session_start(); //missing in checklogin.php
include("db/dbconnect.php");
mysqli_select_db($connect, $db);