我正在尝试在调用提交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]";
?>
我在第一页上得到echo $_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
即将来临&#34;&#34; (没有数据/ null)实际上我得到了回应。
我迄今为止所做的一点历史
php.ini
文件中未启用session.save_path,因此我启用了它。
我之前以html格式使用autocomplete = off
,所以我删除了它。
securimage是我用于验证码的打包解决方案,它可以保存cookie数据,但我不知道+了解它在内部做了什么。
您能否建议为了获得会话cookie数据需要做些什么:
提前感谢您,我会记录您的时间和意见。
答案 0 :(得分:0)
在使用session_start();
变量之前,您必须始终在每个页面上$_SESSION
。
所以page2将是
<?php
session_start();
echo "$_SESSION[cname]" ;
?>
答案 1 :(得分:0)
尝试使用:
对于page1.php
....
echo $_SESSION['cname'];
echo $_SESSION['otprdsvc'];
....
对于page2.php
<?php
session_start();
echo $_SESSION['cname'];
?>
您必须在每个要调用会话数据的页面上使用session_start()。
答案 2 :(得分:0)
我已经解决了这个问题。 Page2.php正在提交,因此会话数据丢失了。我现在已经修改了数据处理流程。在将数据写入page1.php上的会话变量后,我也使用了session.write_close(),这样也有所帮助。
感谢您的评论。