2015-01-04 52 views
1

我已经使用了这个代码2次,但现在不工作,我不知道为什么。以下是来自文件process_login.php的代码。代码工作正常,但是当我到达admin.php不能回显$ _SESSION ['USER']并且没有设置。提前致谢。为什么我不能设置会话变量?

<?php 
    session_start(); 
    mysql_connect('localhost','root','root'); 
    mysql_select_db('user_db'); 

    $user=$_POST['user']; 
    $password=$_POST['password']; 

    $sql="SELECT * FROM users WHERE username='".$user."' AND password='".$password."'";  
    $res=mysql_query($sql); 

    if (mysql_num_rows($res)>0) 
    {   
     $row=mysql_fetch_array($res); 
     $_SESSION['USER']=$row['username']; 
     header("location: admin.php");        
    } 
    else 
    { 
     header("location: login.php"); 
    } 

?> 
+2

发布admin.php。 – Musa

+1

http://stackoverflow.com/questions/21797118/deprecated-mysql-connect:你可能不得不编辑你的代码,你不应该再使用这些mysql_ *函数 – sodawillow

+0

你是否在另一个文件中开始了你的会话太? – Rizier123

回答

0

使用mysql_fetch_array将返回ID号的数组,而mysql_fetch_assoc将返回列的文字表述。

//mysql_fetch_array() 
$myarray = array(
    [0] => "BILLYBOB" 
); 

//mysql_fetch_assoc() 
$myarray = array(
    ["USER"] => "BILLYBOB" 
); 
+0

中的数据库连接仍然得到相同的东西,我已经成功地使用了这个代码2次,只是在其他网络服务器。即时通讯思维是否有可能会有一个会话功能,我可能不得不使用我没有理由发生这种情况 – joao