<?php function checkUser($login, $pass) { dbConnect("test"); $sql = "SELECT * FROM users WHERE login = '$login' AND MD5(password) = MD5('$pass')"; $result = mysql_query($sql) or die(mysql_error()); if (!$result) { error("Andmebaasi viga: palun proovi hiljem uuesti!"); return false; } if (mysql_num_rows($result) == 1) { $_SESSION['uid'] = $uid; $_SESSION['pwd'] = $pwd; return true; } else {return false;} } include_once 'error.php'; include_once 'data.php'; session_start(); $display = "form.php"; if (isset($_POST['uid']) && isset($_POST['pwd'])) { $uid = addslashes($_POST['uid']); $pwd = addslashes($_POST['pwd']); if (checkUser($uid, $pwd)) { $day = date('d'); $month = date('m'); $year = date('Y'); $time = date('H:i'); dbConnect('test'); $sql = "UPDATE users SET last_day='$day', last_month = '$month', last_year = '$year', last_time = '$time' WHERE login = '$uid'"; if (!mysql_query($sql)) { error('A database error occurred in processing your submission.<br />' . mysql_error()); } $_SESSION['uid'] = $uid; $_SESSION['pwd'] = $pwd; $display = "form1.php"; } else { header("Location:viga.php"); } } elseif (isset($_SESSION['uid']) && isset($_SESSION['pwd'])) { $uid = addslashes($_SESSION['uid']); $pwd = addslashes($_SESSION['pwd']); if (checkUser($uid, $pwd)) { $display = "form1.php";} else { header("Location:viga.php"); } } else { session_unset(); session_destroy(); } if ((isset($_GET['logout'])) && ($_GET['logout']==1)) { session_unset(); session_destroy(); $display = "form.php"; $host = $_SERVER['HTTP_HOST']; $uri = $_SERVER['PHP_SELF']; echo ("http://$host$uri?logout=1"); } ?>
как из него понятно, в случае если признак пользователя и пароль правильные или если действует сессия, то отображается form1.php (какой скрипт отображается, я через тот же include добавил в саму html страницу).
form1.php содержит в себе приветствие пользователя по его признаку:
<?php?> <html> <td height="82"> <p><b><font size="2">Tere tulemast, <?php echo $uid; ?>!</font><br> <font size="1"><a href="<?php $host = $_SERVER['HTTP_HOST']; $uri = $_SERVER['PHP_SELF']; echo ("http://$host$uri?logout=1");?>">[Logi vдlja]</a></p></font></b> </html> <?php?>
проблема в том, что логинится всё ОК. я захожу, меня приветсвуют. но при переходе на другую страницу сессия сохраняется (проверял с помощью echo $uid i $pwd), а имя моего в приветсвии уже не пишут. при новом переходе на следующую страницу сессия пропадает вообще...
в чём может быть проблема?