【问题标题】:Can't seem to pass SESSION variables of POST似乎无法传递 POST 的 SESSION 变量
【发布时间】:2014-04-05 15:55:45
【问题描述】:

对不起,如果这是重复的,但我真的找不到任何可以解决我的问题的东西。我可以传递像 $_SESSION['blabla']="123'; 这样的数字和字符串,但我不能从文本字段和提交按钮传递这个 $_POST 值。

第 1 页 (sessions.php)

<?php session_start(); ?>

!doctype 在这里

<body>
<form id="form1" name="form1" method="post"  action="sessions2.php">
  <label>
    <input type="text" name="damn" id="damn" />
    <input type="submit" name="submit" id="submit" value="Submit" />

  </label>
</form>

<?php

$omg = $_POST['damn'];

$_SESSION['damn'] = $omg;
echo $_SESSION['damn'] ;


?>

第 2 页 (sessions2.php)

<?php
session_start();
$fires = $_SESSION['damn'];
echo "wth";
echo $_SESSION['damn'];
?>

PS。对不起这些名字..我真的很难过。

【问题讨论】:

  • 因为您的表单转到session2.php,所以您的$_POST['damn']/$_SESSION['damn'] 永远不会设置在sessions.php 上。将代码添加到sessions2.php
  • er.. 我要添加什么代码?抱歉,我真的很陌生

标签: php session


【解决方案1】:

您需要将从$_POST 读取的代码放入您提交表单的文件中。

目前你的流程是:

  1. 获取sessions.php的请求
  2. 向浏览器发送表单
  3. $_POST['damn'](未定义)分配给会话。
  4. 用户提交表单
  5. 获取sessions2.php的请求
  6. 忽略$_POST(现在已填充)
  7. 从会话中读取(变量仍未定义)。

damn 填充在表单提交请求中(步骤 4/5),而不是您尝试读取它的请求(步骤 1)。

【讨论】:

  • so.. SESSION['damn'] 应该只在第二页中获取值,然后从 POST 读取?因此第一页中的 SESSIONS 变量是不是必须的?这是正确的吗?
【解决方案2】:

sessions2.php

// you POST "damn" variable via form, using post method, so:
$fires = $_POST['damn'];
// and:
$_SESSION['damn'] = $fier;
// or 
$_SESSION['damn'] = $_POST['damn'];

文件 session.php 中的 PHP 代码不起作用,因为在表单操作中有 session2.php。

【讨论】:

  • 谢谢..这行得通!但这不是使用 POST 方法吗?正如你所说,第一个文件中的 PHP 代码不起作用.. 那么如何给 SESSIONS 赋值呢?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-21
  • 1970-01-01
  • 2022-11-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多