simonsays
Новичок
Проблема с сессиями, не сохраняются при переходе
вот такая вот проблема. написал скрипт, который проверяет вошёл ли пользователь. добавил его через include во все готорвые страницы сайта. сам скрипт вот:
как из него понятно, в случае если признак пользователя и пароль правильные или если действует сессия, то отображается form1.php (какой скрипт отображается, я через тот же include добавил в саму html страницу).
form1.php содержит в себе приветствие пользователя по его признаку:
проблема в том, что логинится всё ОК. я захожу, меня приветсвуют. но при переходе на другую страницу сессия сохраняется (проверял с помощью echo $uid i $pwd), а имя моего в приветсвии уже не пишут. при новом переходе на следующую страницу сессия пропадает вообще...
в чём может быть проблема?
p.s. если можно, то не комментируйте пожалуйста отсутсвие безопасности в скрипте. я знаю, что её пока у меня как таковой нету.
вот такая вот проблема. написал скрипт, который проверяет вошёл ли пользователь. добавил его через include во все готорвые страницы сайта. сам скрипт вот:
PHP:
<?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 содержит в себе приветствие пользователя по его признаку:
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?>
в чём может быть проблема?
p.s. если можно, то не комментируйте пожалуйста отсутсвие безопасности в скрипте. я знаю, что её пока у меня как таковой нету.