session的奇怪問題(已經搜索過,自己還解決不了)
我的登陸主頁面,就是判斷是否登陸,直接輸入地址饒過登陸窗口,第一次出現 你無權訪問 ,session文件裡出現admin|b:0; 刷新一次,出現 你已經登陸
Notice: Undefined index: name in d:usrwwwhtmldengluindex.php on line 5
111122223333
session文件裡的那個文件又變成admin|b:1; admin的值為1了。奇怪呀!!!
這就是index.php的代碼:
$admin=false;
if(isset($_SESSION['admin'])&&$_SESSION['admin']=true)
{ echo "你已經登陸";
echo $_SESSION['name'];
}
else
{$_SESSION['admin']=false;
die("你無權訪問");
header("Location:login.htm");
}
?>
111122223333
在前面的驗證中,如果用戶名和密碼正確,則讓$_SESSION['admin'] = true;
這是 login.php代碼:
$xm=$_POST['xingming'];
$ps=$_POST['password'];
$_SESSION['admin'] = false;
$link = mysql_connect('localhost','root','');
$db = mysql_select_db('hehetsg');
$result = mysql_query("select * from user where user = '$xm' and psw ='$ps'");
if ($row=mysql_fetch_array($result))
{ if ($row['psw']==$ps and $row['flag']==1)
{ $_SESSION['name']=$row['name'];
$_SESSION['admin'] = true;
echo "歡迎管理員進入!";
echo "管理界面";
}
else
{ echo "不是管理員。對不起!";
echo "點擊返回";
}
}
else { echo "你的信息不全!";
echo "點擊返回";
}
?>
在這裡輸入登陸的信息:
登陸頁面
[ ]
echo "
";echo "
";echo "
";
高!!!!!
幫我解決才是高呀!!呵呵
在session_start()前加error_reporting(0);
isset($_SESSION['admin'])&&$_SESSION['admin']=true
是個邏輯錯誤
原帖由 七月十五 於 2008-7-19 16:33 發表 [url=http://www.111cn.cn/bbs/redirect.php?goto=findpost&pid=505295&ptid=70090]鏈接標記[img]http://www.111cn.cn/bbs/images/common/back.gif[/img][/url]
在session_start()前加error_reporting(0);
感謝,但是……
加了這個,沒有錯誤了,可是我的驗證還是不行呀
登不登 都成了 管理員登陸了。
驗證不成意義了。
原帖由 dongxin1390008 於 2008-7-19 16:34 發表 [url=http://www.111cn.cn/bbs/redirect.php?goto=findpost&pid=505300&ptid=70090]鏈接標記[img]http://www.111cn.cn/bbs/images/common/back.gif[/img][/url]
isset($_SESSION['admin'])&&$_SESSION['admin']=true
是個邏輯錯誤
那正確的怎麼寫呢?
die("你無權訪問");
header("Location:login.htm");
這裡也有問題
header 前面不能有任何輸出
邏輯的等於是2個等號,賦值是一個等號,
isset($_SESSION['admin'])&&$_SESSION['admin']=true
你這樣寫的話就是只要我的$_SESSION["admin"]不為空即可登陸,所以後面的
正確的:
isset($_SESSION['admin'])&&$_SESSION['admin']==true
請大家能帖出正確的代碼嗎?
幫助新手,
非常感激