PHP - 无法设置session_id()

时间:2015-10-22 11:57:19

标签: php session

我正在为我的项目创建login.phppost.php。我将session_id login.php传递给我的java应用程序,然后使用POST方法将session_id传递给post.php

的login.php

<?php
session_start();

if($_SERVER['REQUEST_METHOD']=="POST") {

    $usr=$_POST['usr'];
    $passwd=$_POST['pass'];

    //connecting to my db and checking for username and password.
    // After match occurs,           

    $_SESSION['login_user']=$usr;
    echo session_id();
    }

?>

post.php中

<?php
session_start();

$sid = $_POST['sid'];
session_id($sid);
echo session_id();
?>

当我向post.php发送请求时,我收到这样的错误,

  

警告:未知:会话ID太长或包含非法字符,有效字符为a-z,A-Z,0-9和' - ,'在第0行的未知中

     

警告:未知:无法写入会话数据(文件)。请在第0行的Unknown中验证session.save_path的当前设置是否正确(/ tmp)

我查了一下,

  • /tmp目录的权限。它是可写的。
  • $sid
  • post.php。它包含session_id的{​​{1}}。
  • login.php不包含任何非法字符。
  • 当我尝试在$sid

    中设置自定义session_id时,也不会显示此错误

    SESSION_ID( “12345abcdedfg”);

从我观察到的情况来看,只有在我设置session_id时才会显示此错误,这是一个session_id刚刚被请求的其他php文件,即当会话处于活动状态时。

请帮忙。提前谢谢。

0 个答案:

没有答案