PHP MYSQL登录脚本会话不工作


PHP MYSQL login script session not working

我有一个小脚本来处理登录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);