Проблема с сессиями, не сохраняются при переходе

simonsays

Новичок
Проблема с сессиями, не сохраняются при переходе

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

p.s. если можно, то не комментируйте пожалуйста отсутсвие безопасности в скрипте. я знаю, что её пока у меня как таковой нету.
 
Сверху