2013-07-28 172 views
0

我有两个PHP文件,其中我想存储session变量id这样存储在会话变量空值

if(authentification($login,$mdp) == 0) 
       {?> 
       <script>alert('logging failed');</script> 
       <?php 
       header('Location: Contacts.php'); 
       } 
       else{ 
       session_start(); 
       $_SESSION['login'] = $login; 
       $_SESSION['mdp'] = $mdp; 
       $a = authentification($login,$mdp);; 
       $_SESSION['id'] = $a; 
       header('Location: space.php'); 

       } 

和文件中space.php

session_start(); 
$list = Get_companies_by_user($_SESSION['id']); 

function.php

function authentification($login,$mdp){ 

       parametrs();  

       $Log_query=mysql_query(
        " 
         SELECT user_id 
         FROM reg_users 
         WHERE username ='$login' 
         AND password ='$mdp' 

         ") or die(mysql_error()); 

         if ($Log_query == true && mysql_num_rows($Log_query) >0) { 

          while ($Res_user = mysql_fetch_array($Log_query)) { 
         return $Res_user; 

         } 
         } 
         else return 0; 

} 

问题在于变量$_SESSION['id']的值:为什么它在space.php中为空?我该如何解决这个错误?

+1

好吧,既然'$了'是未初始化变量,'$ _SESSION [ '身份证' ]'将始终为NULL。 – samayo

+1

authentification()函数在哪里? – Perocat

+0

请参阅我的更新 –

回答

1

试着这么做:

function authentification($login,$mdp){ 
    $Log_query = mysql_query("SELECT user_id FROM reg_users WHERE username ='$login' AND password ='$mdp'") or die(mysql_error()); 

    //The user should be unique, not more than 0 
    if($Log_query && mysql_num_rows($Log_query) === 1){ 
     while ($Res_user = mysql_fetch_array($Log_query)) { 
      $user = $Res_user['user_id']; 
     } 
     return $user; 
    }else{ 
     return 0; 
    } 
} 

你也应该逃避$login$mdp有:

mysql_real_escape_string($var); 
+0

仍然存在相同的错误 –

+1

尝试在您发布的第一个脚本上回显'$ a'并观察它包含的内容 – Perocat

+0

'$ a'的值是6 –