【问题标题】:SESSION array has nothing in it when it shouldSESSION 数组应该什么都没有
【发布时间】: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();(哦?)。在表单按钮之后,我有这个代码:&lt;?php if(!empty($_POST['submit'])) { $_SESSION['name'] = $_POST['name'];" - 所以,在你的代码中显示它实际放置的位置。 On confirm.php I've got this: &lt;?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


【解决方案1】:
<form action="confirm.php" method="post">
      ^^^^^^^^^^^^^^^^^^^^

您的表单正在提交给confirm.php,您应该在那里处理$_POST 并填写$_SESSION 值。相反,您尝试在打印表单的同一页面中执行此操作,但这在那里没有用,因为它不是表单数据提交到的位置。

【讨论】:

  • 谢谢先生!这已经解决了。我现在知道了!非常感谢楼主
猜你喜欢
  • 2015-11-19
  • 1970-01-01
  • 1970-01-01
  • 2014-07-07
  • 1970-01-01
  • 1970-01-01
  • 2012-07-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多