【问题标题】:How to pass a Variable through a session如何通过会话传递变量
【发布时间】:2018-04-23 10:49:28
【问题描述】:

我知道还有其他关于此的帖子,但我似乎仍然看不到代码不正确的地方。

我正在尝试通过会话将变量从一个页面传递到另一个页面:下面是两个页面;请原谅一些变量名,因为我只是快速绘制它们。

main.php

<?php
    session_start();
    session_unset();

    if(isset($_POST['submit']))
    {
        $_SESSION['itemId'] = $_POST['firstName'];
        echo "name = " . $_SESSION['itemId'];
    }
?> 
<!DOCTYPE html>
<html>
    <head> 

    </head>
    <body>
       <form action="result.php" method="POST">
          First name: 
          <input type="text" name="firstName" placeholder="First Name">
          <br>
          <input type="submit" name="submit">
       </form>
   </body>
</html>

结果.php

<?php
   session_start();

   echo $_SESSION['itemId'];

   session_destroy();
?>
<!DOCTYPE html>
<html>
   <head>

   </head>
   <body>

   </body>
</html>

以前我没有在那里设置未设置。然而,这并没有什么不同。

该值存储在会话中,只是没有将其传递到其他页面。

【问题讨论】:

  • 为什么你刚开始就取消会话?
  • 删除该行并检查您的代码是否完美,只需删除 session_unset();行
  • 移除会话取消设置功能。代码可以正常工作
  • 问题是,我之前没有设置 unset,它仍然无法正常工作。我一直收到错误消息:“未定义的索引:itemId in ....result.php”。 @BitsPlease
  • 没关系,您在设置时可能会遇到问题...bt 你写的那行显然是假的,不需要

标签: php variables session


【解决方案1】:

主页应该是这样的:

<?php
session_start();
//remove session_unset();

if(isset($_POST['submit']))
{
    $_SESSION['itemId'] = $_POST['firstName'];
    echo "name = " . $_SESSION['itemId'];
}
?> 
<!DOCTYPE html>
<html>
<head> 

</head>
<body>
   <form action="result.php" method="POST">
      First name: 
      <input type="text" name="firstName" placeholder="First Name">
      <br>
      <input type="submit" name="submit">
   </form>

【讨论】:

  • 我原来有这样的页面,但是仍然没有通过变量传递到其他页面。 (^ 我在底部编辑了我原来的帖子)
【解决方案2】:

删除 session_unset(); start_session() 之后的行 以及为什么要破坏结果页面中的会话。 如果你想摧毁那么 将会话值存储在变量中

$id = $_SESSION['itemId'];
echo $id;

这段代码对你有帮助

【讨论】:

    猜你喜欢
    • 2013-08-11
    • 2011-09-25
    • 2010-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-03
    • 1970-01-01
    • 2018-09-20
    相关资源
    最近更新 更多