我正在为我的项目创建login.php
和post.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文件,即当会话处于活动状态时。
请帮忙。提前谢谢。