问题: 登录后,它会重定向到index.php而不是home.php。 根据我的观察,两者的会话寄存器都是NULL。 有人能帮我吗? 我是PhP的新手。
谢谢,抱歉语法错误/英语。
检查登录:
<?php ob_start();
include ("connect/db.php");
$username = $_POST['username'];
$password = $_POST['password'];
$username = stripslashes($username);
$password = stripslashes($password);
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);
$sql="SELECT * FROM users WHERE login='$username' and passwd='$password'";
if (!mysql_query($sql, $con)){
die('Error: ' . mysql_error());
}
$result=mysql_query($sql);
$count=mysql_num_rows($result);
if($count==1){
$rows = mysql_fetch_array($result);
$member = $rows['member_id'];
$_SESSION["iduser"] = $username;
$_SESSION["idmember"] = $member;
echo '<center>Login Successfull!<br>Username : <i>' .$_SESSION["iduser"]. ' [' .$_SESSION["idmember"]. ']</i><br><br>';
echo "<input class='button' type='button' value='Enter' onClick=\"javascript:window.location.href='home.php'\"></center>";
}
else {
echo '<center>Login Error!<br>Invalid Username or Password.<br><br>';
echo "<input class='button' type='button' value='Back' onClick=\"javascript:window.location.href='index.php'\"></center>";
}
ob_end_flush();
?>
主页:
<?php
session_start();
if(!isset($_SESSION['member'])){
header("location:index.php");
}
$username = $_SESSION['iduser'];
$member = $_SESSION['idmember'];
?>
答案 0 :(得分:0)
您是否已使用session_start();
启动了第一个脚本的会话?
$ _ SESSION isset但是为空,所以进入home尝试:var_dump(!empty($ _ SESSION [val]));
如果你这样做了,你应该尝试添加一些var_dump(expression);
以查看问题所在,例如验证你的sql结果。
答案 1 :(得分:0)
在检查登录页面中,在页面顶部添加session_start(),如页面所示。
在主页,行
页面中 if(!isset($_SESSION['member'])){
应该是
if(!isset($_SESSION['idmember'])){