Я только недавно вышел из своей пещеры ASP, и у меня возникают проблемы с адаптацией к солнцу 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, где он не сможет загрузить любые файлы должным образом. Действие кнопки «Назад», похоже, ставит браузер в бесконечный цикл.
Что этот пещерный человек делает неправильно?
Спасибо
Брайан.