У меня есть страница входа, которая направлена на другую страницу php. Эта php-страница принимает введенное пользователем имя пользователя, сохраняет его как переменную сеанса, а затем перенаправляет на home.php (этот код запускается после проверки информации).
$username = $_POST['username'];
$update = mysql_query("UPDATE usertable SET loginStatus='Logged in' WHERE userName = '$username'");
session_start();
$_SESSION['loggedin'] = true;
$_SESSION['username'] = $_POST['username'];
header("Location: home.php");
Это обновит соответствующий столбец без проблем. Я поместил следующий код на страницу home.php, чтобы отобразить статус входа каждого пользователя.
session_start();
$username = $_SESSION['username'];
if(empty($_SESSION['username'])){
header("Location: login.php");
}
$result = mysql_query("SELECT * FROM usertable");
echo "Logged in as ". $_SESSION['username'];
echo "<br />";
while($row = mysql_fetch_array($result))
{
echo $row['userName'] . " " . $row['emailAddress'] . " " .$row['loginStatus'];
echo "<br />";
}
?>
<p><a href=logout.php>Click here to logout</a></p>
Когда пользователь щелкает ссылку выхода, он направляет его на следующую php-страницу:
<?php
session_start();
$username = $_SESSION['username'];
$update1 = mysql_query("UPDATE usertable SET loginStatus='' WHERE userName = '$username'");
echo $username;
?>
<?php
session_destroy();
?>
<h1>You are now logged out</h1>
<p><a href=login.php>login</a></p>
Здесь у меня есть моя проблема. MySQL не обновляет loginStatus соответствующего имени пользователя. Все имеющиеся у меня переменные ($username, $username1) выводят правильную информацию, когда я их тестирую. В случае страницы выхода я знаю, что $_SESSION['username'] хранит правильное имя пользователя, но я не могу понять, почему он не обновит значение в базе данных.
false
возможно? Вы могли быecho
запросить, он выглядит странно? - person Ja͢ck   schedule 11.03.2013