我的用戶驗證在我的登錄中工作正常,唯一的問題是它不存儲PHP SESSION。我已經調試過它,看看是否有會話被存儲,但它們不會。因爲當我發送用戶到目標頁面。
如果用戶已登錄,目的地頁面將與if (!isset($_SESSION['username'])) { etc.. }
進行覈對。否則,它會將用戶發送回登錄頁面。所以這就是錯誤,它發送用戶回到登錄頁面..當然,以確認調試說所有NULL。
PHP5:
<?php require ('../lib/config.php'); ?>
<?php
ob_start();
if (isset($_POST["username"]) && !empty($_POST["username"]) && isset($_POST["password"]) && !empty($_POST["password"])) {
$tbl_name='users';
$user_name='Username';
$pass_name='Password';
$salt='';
mysql_connect("$cchost", "$ccuser", "$ccpass")or die("cannot connect");
mysql_select_db("$ccname")or die("cannot select DB");
$myusername=$_POST['username'];
$mypassword=$_POST['password'];
$username=str_replace(' ','_', $myusername);
$password=hash('whirlpool', $salt . $mypassword);
$username = stripslashes($username);
$password = stripslashes($password);
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);
$sql="SELECT * FROM $tbl_name WHERE $user_name='$username' and $pass_name='$password'";
$result=mysql_query($sql);
$row=mysql_fetch_array($result);
$donator=$row['donator'];
$player=$row['player'];
$count=mysql_num_rows($result);
if ($donator == '1') {
$_SESSION['donator'] = $donator;
}
if ($player == '1') {
$_SESSION['player'] = $player;
}
if($count==1){
$_SESSION['username'] = $username;
header("Location: index_ucp.php");
}
else {
header("Location: login_ucp.php?err=1");
}
}
else {
header("Location: login_ucp.php?err=9");
}
ob_end_flush();
?>
使用session_start(); –
http://www.php.net/manual/en/session.examples.basic.php請注意,在處理所有示例中的$ _SESSION之前,總是會調用'session_start()'。 – r3wt