восстановление сеанса на странице - PullRequest
0 голосов
/ 29 сентября 2011

У меня большая проблема, связанная с авторизацией.на самом деле некоторое время это работает нормально, но некоторое время не работает.У меня есть setting.php , в котором выполняется session_start ().этот файл в том числе во всех файлах.другой файл - config.php, где определены все переменные, включая имя сеанса

$siteConfig_session_name = 'dhoombox';

, а затем создан пользователь класса, в котором есть функция userlogin: -

function user_front_end_login($_POST,$checkout_page,$check){
    $errorMessage = '';
    $userName = trim($_POST['username']);
    $password = md5(trim($_POST['password']));
$user_login = mysql_query("SELECT user_id, email_id,username, password , firstname, lastname, status FROM tbl_users WHERE  username= '".$userName."' AND password = '".$password."' ");
    $select_user = mysql_fetch_array($user_login);
if( mysql_num_rows($user_login)==1){
    $user_status = $select_user['status'];
    //setAdminError('<span class="errormsg">Information has not been deleted!</span>');
        if( $user_status==1){

                 $this->setUserLoginSession($select_user['user_id'], $select_user['email_id'], $select_user['username'],$select_user['firstname'],$select_user['lastname']);


                    if($checkout_page==1){
                    siteRedirect("billing_info.php");
                    }
                    else{

                     print_r($_SESSION);
                     siteRedirect("index.php");
                    }

            }else{
                setAdminError('<span class="errormsg" style="color:#FF0000;">Sorry your account is not activated.</span>');     siteRedirect("login.php");
            }
    }else{
               setAdminError('<span class="errormsg" style="color:#FF0000;">Username or password mismatch</span>');
                    if($checkout_page==1){
                    siteRedirect("checkout.php");
                    }
                    else{                   
                    siteRedirect("login.php");
                    }       
            }
} 

$ this-> setUserLoginSession ($ select_user ['user_id'], $ select_user ['email_id'], $ select_user ['username'], $ select_user ['firstname'], $ select_user ['lastname']);выглядит следующим образом: -

function setUserLoginSession($uid, $email, $un, $fn,$ln) {
    global $siteConfig_session_name;

     $_SESSION['user_id']   = $uid;
     $_SESSION['email_id']  = $email;
     $_SESSION['username']  = $un;
     $_SESSION['firstname'] = $fn;
     $_SESSION['lastname']  = $ln;
}

некоторое время работает нормально, а иногда нет.

1 Ответ

0 голосов
/ 29 сентября 2011

Какие у вас проблемы? Вы получаете ошибку? session_start () должен вызываться на каждой странице, на которой вы хотите использовать переменные сеанса, вы не можете начать сеанс с использованием include.

<?php
session_start();
include'your_include.php';
user_front_end_login(post,checkout_page,check);
?>

<?php
session_start();
function user_front_end_login($_POST,$checkout_page,$check){
$errorMessage = '';
$userName = trim($_POST['username']);
$password = md5(trim($_POST['password']));
$user_login = mysql_query("SELECT user_id, email_id,username, password , firstname, lastname, status FROM tbl_users WHERE  username= '".$userName."' AND password = '".$password."' ");
$select_user = mysql_fetch_array($user_login);
if( mysql_num_rows($user_login)==1){
$user_status = $select_user['status'];
//setAdminError('<span class="errormsg">Information has not been deleted!</span>');
    if( $user_status==1){

             $this->setUserLoginSession($select_user['user_id'], $select_user['email_id'], $select_user['username'],$select_user['firstname'],$select_user['lastname']);


                if($checkout_page==1){
                siteRedirect("billing_info.php");
                }
                else{

                 print_r($_SESSION);
                 siteRedirect("index.php");
                }

        }else{
            setAdminError('<span class="errormsg" style="color:#FF0000;">Sorry your account is not activated.</span>');     siteRedirect("login.php");
        }
}else{
           setAdminError('<span class="errormsg" style="color:#FF0000;">Username or password mismatch</span>');
                if($checkout_page==1){
                siteRedirect("checkout.php");
                }
                else{                   
                siteRedirect("login.php");
                }       
        }
} 
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...