【发布时间】:2014-10-10 09:30:26
【问题描述】:
我很难让 SESSION 在 PHP 中工作。
我有一个表单执行以下操作:
<form action="confirm.php" method="post">
还有一个按钮:
<button type="submit" id="submit">Proceed</button>
我的所有页面上都有session_start();。在表单按钮之后,我有这个代码:
<?php
if(!empty($_POST['submit']))
{
$_SESSION['name'] = $_POST['name'];
$_SESSION['address'] = $_POST['address'];
$_SESSION['strtnum'] = $_POST['strtnum'];
$_SESSION['height'] = $_POST['height'];
}
?>
在confirm.php 我有这个:
<?php
print_r($_SESSION);
print_r($_POST);
?>
POST 数组具有正确的值,但 SESSION 数组完全为空,没有任何变量或值。
我想帮助了解如何解决此问题。
谢谢。
编辑:我很确定代码实际上并没有到达 if 语句的内部。我在其中添加了一个回声以打印警报(是的,我使用过)但它不起作用。所以我不是 100% 确定它进入了if(!empty($_POST['submit']))
【问题讨论】:
-
"我的所有页面上都有 session_start();(哦?)。在表单按钮之后,我有这个代码:
<?php if(!empty($_POST['submit'])) { $_SESSION['name'] = $_POST['name'];" - 所以,在你的代码中显示它实际放置的位置。On confirm.php I've got this: <?php print_r($_SESSION);- session_start(); 那里。 -
我没有在我的 confirm.php 中显示整个代码。我刚刚展示了打印数组的部分。我有 session_start();在 confirm.php 的顶部
-
在 if 条件关闭之前尝试 var_dump() 您的 $_SESSION,以确保在会话变量中设置了所有内容。
-
你有
if(!empty($_POST['submit'])),但没有名为submit的表单元素,你需要有name="submit"。 -
@DaveChen 我刚刚尝试过,但没有成功。以为这可能是答案,但我猜不是
标签: php html forms session post