2011-10-09 46 views
0

我有两段代码,一段是前端网站php代码,用于呈现前端网页,另一段代表后端api PHP代码。在我的前端网站代码中,我有session_start();session_id()在PHP上不输出任何内容

我有一块,一旦用户登录,然后我给他或她一个的SessionIDsessionid();

然而,当我使用$sessionid = session_id();echo $sessionid后端API代码,什么也没有输出。

$user="root"; 
$password=""; 
$database="test"; 
mysql_connect('localhost',$user,$password); 
@mysql_select_db($database) or die("Unable to select database"); 

$username = $first_param; 
$username = str_replace("UserName=", "", $username); 
$password = $second_param; 
$password = str_replace("Password=", "", $password); 
$query = "SELECT * FROM `user` WHERE username ='$username' AND password = '$password' "; 
$result=mysql_query($query); 
$num=mysql_num_rows($result); 

if (debug) { 
    echo "<br>"; 
    echo "--------the num of login is ----" .$num; 
} 

if ($num <1) { 

} 
else { 
    $sesid=session_id(); 
    if (debug) { 
    echo "<br>"; 
    echo "-----login sessionid is------" .$sesid; 
    echo "<br>"; 
    } 
    $query = "UPDATE `user` SET sessionid='$sesid' WHERE username ='$username' AND password = '$password'"; 
    mysql_query($query); 
} 
+0

你的session_start()在哪里? –

回答

1

该函数被称为session_id(),注意下划线。

此外,您的更新代码似乎缺少呼叫session_start()。如果这是另一个被调用的另一个session_start的PHP文件,则需要在该文件的开始处再次调用它。

2

其实,当你尝试这一点,它必须工作100%

<?php 
    session_start(); //This must be called before the session_id(); 
    $sessionid = session_id(); 
    echo $sessionid; 
?> 
3

确保代码运行SESSION_ID()是在同一页上或包含在页面运行在session_start()。如果不是,则必须再次运行session_start()以获取新页面的会话。

+0

所以你可以使用尽可能多的session_start(),你想要没有不良影响? – lilzz