【问题标题】:Passing variable from first page to third page PHP将变量从第一页传递到第三页 PHP
【发布时间】:2013-04-04 08:03:02
【问题描述】:

我在第一页有一个带有选择代码的下拉列表:

print "Select week for season 1:  <select name='Week_select'> <br>";

在第 2 页我有

$varWeek=$_POST['Week_select'];

然后是另一个下拉列表:

print "Select a team that played season 1and week $varWeek:  <select name='Team_select'><br>";

到目前为止一切顺利,非常感谢所有让我走到这一步的人。

现在当我转到第 3 页时,我失去了 $varWeek

我知道我应该使用 $_GET 或将其作为隐藏传递。 我试过$varWeek=$_GET['Week_select']; ,但没用。

我不确定如何将其隐藏。请帮助我了解更多。 非常感谢提前

【问题讨论】:

    标签: php variables


    【解决方案1】:

    更好的方法是将这些变量注册为会话变量。这样它们就不会出现在 URL 中,您将能够跨多个页面访问它们。在这里阅读:

    http://www.php.net/manual/en/intro.session.php

    您可以像这样访问/存储会话变量:

    $_SESSION['varname'] = 'value';
    

    在另一个页面上

    var_dump($_SESSION['varname']);
    

    【讨论】:

    • 这个会话的东西看起来不错。那么我只是在第 1 页的任何地方执行 Session_start() 吗?然后在提交按钮之前告诉它 $_SESSION['varWeek']='week_select'。我是否需要以某种方式将每个页面注册到会话中?如何添加额外的变量来传递其他输入,例如团队、球员。
    • 读得很好,仍然无法获得我想要的东西。我已经发布了另一个问题HERE 作为跟进
    【解决方案2】:

    将变量添加到表单中,就像你说的那样,作为隐藏字段,就像这样:

    print '<input type="hidden" name="Week_select" value="'. $_GET['Week_select'] .'" />';
    

    然后在处理表单的页面上,变量将在$_POST['Week_select']中可用

    【讨论】:

    • 这很容易受到 HTML 注入 (XSS) 的攻击。
    • 这是真的。一个好主意是将 Week 值作为整数传递并将变量传递给 intval:intval($_GET['Week_select'])
    • 或使用模板系统,让您不必担心这个问题
    • 也是正确的,但是对于初学者的 PHP 问题来说,使用框架有点超出范围。如果您对 Bill 感兴趣,我会建议 CakePHP
    • 什么是 HTML 注入 (XSS),如果这是一个只有少数人会使用的私人页面,我什至应该担心它们吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多