session_id()在PHP上没有输出任何内容

时间:2011-10-09 01:00:21

标签: php

我有两个代码,一个是前端网站php代码,用于呈现前端网页,另一个是后端api PHP代码。在我的前端网站代码中,我有 session_start();

我有一段后端API代码,一旦用户登录,我就可以通过sessionid();

给他或她一个 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);
}

3 个答案:

答案 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,那么你需要在这个文件的开头再次调用它。