我最近才從我的ASP洞中出現,並且無法適應PHP的陽光。創建PHP會話變量會掛起我的瀏覽器
我目前的問題在於一個簡單的登錄序列,我在其中創建一個會話變量 - 該步驟導致我的瀏覽器掛起,然後不正常行爲。
從我的登錄頁面(A.php)登錄表單被定向到B.php(下面),它處理密碼,創建會話變量,然後將用戶重定向到另一個文件(C.php)。
爲簡潔起見,我只是假設登錄成功。 B.php包含以下內容:
<?php
session_start();
require "../scripts/base/toolbox.php";
fnProcessLogin();
function fnProcessLogin(){
$passwd = strtoupper($_POST["passwd"]);
if (strlen($passwd)==0)
{
$passwd=strtoupper($_SESSION['plpassword']);
unset($_SESSION['plpassword']);
}
try{
$db = Database::getDB();
$sql="SELECT securitylevel, staffID, staffname, stafflname, staffemail, iRoleID FROM staff WHERE staffpasswd=?;";
$data = array($passwd);
$query = $db->prepare($sql);
$query->execute($data);
if($query->rowCount()>0){
$row = $query->fetch();
$a=$passwd."|".$row['staffID']."|".$row['staffname']."|".$row['stafflname']."|".$row['staffemail']."|".$row['iRoleID'];
$_SESSION['admin'] = $a;
header('Location: C.php');
}
}
catch(PDOException $pe){
echo "We are sorry, but we cannot complete this database operation.";
file_put_contents('PDOerrors.txt',$pe->getMessage(),FILE_APPEND);
}
}
?>
如果我註釋掉「$ _SESSION ['admin'] = $ a;」行,重定向工作正常,但只要我嘗試創建會話變量,我的瀏覽器掛起,直到最終轉到C.php它無法正確加載任何文件。後退按鈕動作似乎將瀏覽器置於無限循環中。
這個穴居人做錯了什麼?
謝謝,
Brian。
「掛我的瀏覽器」奧利? – 2012-02-17 11:41:27
你爲什麼要把密碼寫成大寫?或者我讀錯了嗎? – PeeHaa 2012-02-17 11:46:08
另外:你真的需要在會話中存儲密碼嗎?爲什麼不使用多維數組來爲用戶數據添加'$ _SESSION',而是一個字符串(用'|'分隔)? – PeeHaa 2012-02-17 11:48:29