【问题标题】:Transfer variables between PHP pages在 PHP 页面之间传输变量
【发布时间】:2010-09-19 10:06:45
【问题描述】:

我想在一个页面中获取用户输入,将其存储在一个 php 变量中并在另一个 php 页面中使用它。我尝试过使用“会话”,但它似乎不起作用。还有其他安全的选择吗?这些信息很可能是用户名和密码。

【问题讨论】:

  • 会话应该适用于此。您是在使用之前开始会话吗?

标签: php variables


【解决方案1】:

我也同意,会话是最好的解决方案。有关示例,请参阅Web Database Applications with PHP & MySQL 的本章。

【讨论】:

    【解决方案2】:

    有几种方法:

    • 使用sessions(但不要忘记在您将使用会话数据存储的每个页面上调用session_start() ($_SESSION))
    • 将您的数据附加到“下一页”的查询字符串 ($_GET)
    • 将您的数据发布到“下一页”($_POST)

    会话方式是数据不会“离开”服务器的唯一方式,因为它存储在服务器本身上。对于上述所有其他方式,您必须负责清理和验证接收页面上的数据。

    最简单的方法是

    //page1.php
    session_start();
    $_SESSION['user']='user';
    $_SESSION['password']='password';
    
    //page2.php
    session_start();
    echo $_SESSION['user'] . ' ' . $_SESSION['password'];
    

    【讨论】:

      【解决方案3】:

      尝试更改您的会话代码,因为这是最好的方法。

      例如:

      index.php

      <?php
      session_start();
      
      if (isset($_POST['username'], $_POST['password']) {
          $_SESSION['username'] = $_POST['username'];
          $_SESSION['password'] = $_POST['password'];
          echo '<a href="nextpage.php">Click to continue.</a>';
      } else {
          // form
      }
      ?>
      

      nextpage.php

      <?php
      session_start();
      
      if (isset($_SESSION['username'])) {
          echo $_SESSION['username'];
      } else {
          header('Location: index.php');
      }
      ?>
      

      但是,我可能会在会话中存储一些更安全的东西,例如用户 ID,而不是用户的登录凭据。

      【讨论】:

        【解决方案4】:

        您可以尝试使用 POST 和 GET 方法在 PHP 脚本中传输用户输入。

        PHP GET

        PHP POST

        【讨论】:

        • 这可能非常不安全。将用户名和密码来回传递给浏览器只是自找麻烦。 session 变量是存储此类数据的地方,尽管我仍然建议对数据进行标记。
        • 使用单向散列会更安全。
        【解决方案5】:

        我同意卡森的观点,会议应该为此工作。确保在要使用会话变量的任何页面上调用session_start()

        另外,我不会直接存储密码信息,而是使用某种身份验证令牌机制。恕我直言,在会话中存储密码数据并非本质上不安全,但如果没有必要这样做,您应该尽量避免这样做。

        【讨论】:

        • 在会话中存储原始密码有点不安全,具体取决于后备存储。大多数情况下,支持是磁盘,这将导致密码以纯文本形式存储在磁盘上的某个地方。
        • 没错,但我的意思是会话变量本身并不是一个不安全的地方。但是,正如您所说,以纯文本形式保存到磁盘的可能性是另一回事。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多