当调用提交page1.php
时,我正在尝试处理简单的HTML表单。page1.php
内部调用page2.php
page1.php如下所示:
<?php
session_start();
$sesid = session_id();
$_SESSION['cname'] = @trim(stripslashes($_POST['companyname']));
$_SESSION['fname'] = @trim(stripslashes($_POST['firstname']));
$_SESSION['lname'] = @trim(stripslashes($_POST['lastname']));
$_SESSION['eaddr'] = @trim(stripslashes($_POST['eaddress']));
echo " $_SESSION[cname]" ;
echo " $_SESSION[otprdsvc]";
include_once $_SERVER['DOCUMENT_ROOT'] .'/appconnector.php';
?>
Page2.php如下所示:
<?php
echo "$_SESSION[cname]";
?>
我确实在第一页上得到了回声$_SESSION[cname];
的输出。但是,当我检查会话cookie时,数据不会保存到磁盘。
以下是来自磁盘上会话cookie的数据:
cname|s:0:"";fname|s:0:"";lname|s:0:"";eaddr|s:0:"";webaddr|N;cmsg|s:0:"";drpopt|N;otprdsvc|s:0:"";securimage_code_disp|a:1:{s:7:"default";s:6:"n55Zmr";}securimage_code_value|a:1:{s:7:"default";s:6:"n55zmr";}securimage_code_ctime|a:1:{s:7:"default";i:1398221627;}
我不明白为什么cname
是"(无数据/空),而事实上我得到了响应。
一点点历史我做了什么到现在
session.save_path之前没有在
php.ini
文件中启用,所以我启用了它。我之前在html格式中使用
autocomplete = off
,所以我删除了它
securimage是我用于captcha的打包解决方案,它保存cookie数据,但我不知道+不了解它在内部做了什么。
你能建议一下需要做什么才能获得会话cookie数据吗:
- 已保存&在文件中的磁盘上可用
- 在处理page2时使其可用
提前谢谢你,我很感激你的时间和评论。
在使用$_SESSION
变量之前,您必须始终在每页上执行session_start();
。
所以第2页将是
<?php
session_start();
echo "$_SESSION[cname]" ;
?>
尝试使用这个:
对于page1.php
....
echo $_SESSION['cname'];
echo $_SESSION['otprdsvc'];
....
对于page2.php
<?php
session_start();
echo $_SESSION['cname'];
?>
无论您想在哪里调用会话数据,都必须在每个页面上使用session_start()。
我已经解决了这个问题。Page2.php正在提交自己,因此会话数据丢失。我现在已经修改了数据处理流程。在将数据写入page1.php上的会话变量后,我还使用了session.write_close(),因此这也有所帮助。
感谢您的评论。