发布到数据库时出现PHP $ _SESSION错误

时间:2012-03-26 16:35:46

标签: php

我正在尝试使用userid =创建当前登录用户ID的帖子。 在第1页,我使用$ _SESSION来设置变量

$_SESSION['Userid'] = $row_getUserStuff['userid'];

我可以在第1页和第2页使用

调用$ _SESSION ['Userid']
echo($_SESSION['Userid']);

输出用户ID,我的问题是当我尝试将数据推送到数据库时。 在我提出的形式

<input type="hidden" name="userid" value="<?php $_SESSION['Userid']?>" />

但是当我尝试发布时,我收到了错误

  

列'userid'不能为空

4 个答案:

答案 0 :(得分:7)

不要将会话数据放在表单中。浏览器必须向服务器发送服务器已经知道的东西是没有意义的,任何人都可以在注入攻击中更改它。

相反,只需在将值插入数据库时​​访问$_SESSION['Userid']

答案 1 :(得分:1)

试试这个:

<input type="hidden" name="userid" value="<?php echo $_SESSION['Userid']?>" />

你实际上并没有告诉PHP输出会话变量,你只是指它。但由于它是一个会话变量,它根本不需要在表单中,我假设你的代码中有一个$_POST['userid']来处理表单,只需用$_SESSION['Userid']替换它。

答案 2 :(得分:0)

<input type="hidden" name="userid" value="<?php echo $_SESSION['Userid']; ?>" />

我添加了echo语句和;,这样就不会生成任何php错误,并且$_SESSION['Userid']已正确发送到浏览器。

答案 3 :(得分:0)

替换此行:

<input type="hidden" name="userid" value="<?php $_SESSION['Userid']?>" />

<input type="hidden" name="userid" value="<?php echo $_SESSION['Userid']?>" />