我有两个代码,一个是前端网站php代码,用于呈现前端网页,另一个是后端api PHP代码。在我的前端网站代码中,我有 session_start();
我有一段后端API代码,一旦用户登录,我就可以通过sessionid();
然而,当我使用$sessionid = session_id();
和echo $sessionid
时,没有输出任何内容。
$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 :(得分:3)
确保运行session_id()的代码位于同一页面上或包含在运行session_start()的页面中。如果没有,您将不得不再次运行session_start()以获取新页面的会话。
答案 1 :(得分:2)
实际上,当你尝试这个时,它必须100%
<?php
session_start(); //This must be called before the session_id();
$sessionid = session_id();
echo $sessionid;
?>
答案 2 :(得分:1)
该函数名为session_id()
,请注意下划线。
此外,您的更新代码似乎缺少对session_start()
的调用。如果这是一个单独的PHP文件session_start
,那么你需要在这个文件的开头再次调用它。