Сессия существует, но имя пользователя пустое? - PullRequest
0 голосов
/ 16 декабря 2011

У меня есть это приложение, которое работает на тестовом сервере, но не работает. Рабочая версия отображает зарегистрированное сообщение с пустым именем пользователя вместо до тех пор, пока вы не выйдете из системы и не войдете снова! Тестовая версия не делает этого и правильно отображает ссылку для входа, пока вы фактически не войдете в систему. Я не написал код, поэтому я в замешательстве!

Первый файл - /Staff/Schedule/Schedu-Mod_Input.php

<?php
    if($_SESSION['isLoggedin'] == 'Yes'):
?>
<p>You are logged in as  <b><?php echo $_SESSION['SESS_USER_USERNAME'];?></b></p>
<?php else: ?>
    Please <a href="/Admin/login.php/">login </a>here <br />
<?php endif;?>

Сессия создается во втором файле с именем login.php

<?php
session_name('SESS_IFTC'); // Set the session name
session_start();
$special_prefix = "";

include($_SERVER['DOCUMENT_ROOT'].$special_prefix.'/Includes/Connect.php');
include($_SERVER['DOCUMENT_ROOT'].$special_prefix.'/Includes/Functions.php');

$shiftdate = $_GET['shiftdate'];
$mod = $_GET['mod'];
if (isset($_POST['username']) && isset($_POST['upassword'])) {
    $query = "SELECT * FROM users WHERE username = '".addslashes($_POST['username'])."' AND password = '".base64_encode($_POST['upassword'])."' AND status='active' ";
    $result = mysql_query($query) or QueryFail($query);
    $row = mysql_fetch_array($result);
    $_SESSION['isLoggedin'] = '';
    $_SESSION['SESS_IS_ADMIN'] = '';

    if(!empty($row) && is_array($row)) // CHECK IS user valid
    {

            $_SESSION['SESS_IS_ADMIN'] = 'No';
            if($row['usertype'] == 'admin') $_SESSION['SESS_IS_ADMIN'] = 'Yes'; 
            $_SESSION['SESS_USER_ID']= $row['id']; 
            $_SESSION['SESS_USER_USERNAME'] = ucfirst($row['username']); 
            $_SESSION['SESS_USER_EMAIL'] = $row['email'];
            $_SESSION['isLoggedin'] = 'Yes';
            //print_r($_SESSION);
            $query = "UPDATE users SET "
                    ." lastaccess = '".date("Y-m-d H:i:s")."' "          
                ." WHERE id = ".$row['id'];
            mysql_query($query);
            if($_REQUEST['mod'] == 'staff'){
                $shiftdate = $_REQUEST['shiftdate'];
                header("Location: /Staff/Schedule/Schedu-Mod_Input.php?shiftdate=$shiftdate");
                exit;
            }
            header("Location: /Staff/Schedule/Schedu-Mod_Input.php");
            exit;   
    }else{
      $errorMsg = "Invalid Username or Password! Please try again";
    }
  }

unset($_SESSION);

?>

Что не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...