【问题标题】:Using $_POST for longer than 1 page使用 $_POST 超过 1 页
【发布时间】:2013-04-21 20:21:45
【问题描述】:

我正在开发一个网站,该网站的首页要求您输入您的姓名。

我想使用$_POST[''] 来显示他们的名字,而不仅仅是在输入后的下一页。 我怎样才能让它记住$_POST['']?

【问题讨论】:

  • cookies,嵌入隐藏的表单字段,服务器端会话。很多选择。选择一个并使用它。

标签: php html post web


【解决方案1】:

将名称放入会话变量中:

$_SESSION['name']="myName";

完整的会话参考见http://php.net/manual/en/book.session.php

【讨论】:

    【解决方案2】:

    使用Sessions。在您的首页中,如下所示

    <?
    session_start()
    
    $_SESSION['name'] = $_POST['name'] ;
    
    //your rest of codes 
    
    
    ?>
    

    和其他页面S

    <?
    session_start()
    
    echo  $_SESSION['name'];
    
    //your rest of codes 
    
    
    ?>
    

    【讨论】:

    • 但是我怎样才能让用户设置会话中的内容。因此,如果他输入 John。 $_POST 变成了 John?
    • 会话的工作取决于浏览器的活动持续时间。当用户进入 john 会话时,捕获“john”以供其他页面使用。
    【解决方案3】:

    看看 PHP 会话:

    PHP Sessions

    注意:如果您存储的只是名称,那很酷,如果您开始存储更多私人信息,您将希望结合使用会话和数据库持久性来查看。

    【讨论】:

      【解决方案4】:

      您可以使用cookies 或sessions

      使用会话:

      session_start();
      $_SESSION['KeyName'] = $_POST['HTMLInputName'];
      $_SESSION['AnotherKey'] = $_POST['AnotherHTMLInputName'];
      

      然后在您的其他页面中:

      session_start(); 
      echo $_SESSION['KeyName'];
      

      会话很有用,但您应该对 php.ini 进行修改,以便会话保留更长时间。

      选项 2:

      使用 cookie:

      setcookie("CookieName", $_POST['InputName']);
      

      然后在其他页面上:

      if (isset($_COOKIE['CookieName'])){ echo $_COOKIE['CookieName']; }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多