【问题标题】:php $_GET passing variables from one page to anotherphp $_GET 将变量从一页传递到另一页
【发布时间】:2011-08-17 23:34:32
【问题描述】:

我正在尝试将我的变量从一个页面传递到另一个页面,我正在使用$_GET 它正在抓取我的变量但在同一页面而不是新页面上,是否可以将它们传递到新页面使用$_GET 还是我必须使用另一种方法,我已经在网站上看到使用 javascript asp 和 jquery 完成此操作,但似乎无法找到一个可以很好地解释事情的 PHP。

这就是我所拥有的,除此之外,我对如何实现这一点一无所知。

foreach($obj->jigsawes as $jigsaw):

   if(isset($_GET['p']) && $_GET['p']==''.$query.'') {
echo "<a href='?p=$jigsaw_url'><img border=0 src='".$jigsaw->photo_url."'></a><br />";

echo "$jigsaw->name</ br>
 $jigsaw->address1<br />
 $jigsaw->phone<br />
 $jigsaw->city<br />
 $jigsaw->state<br />
 $jigsaw->zip<br />";


}else{
$query = htmlspecialchars($_SERVER['QUERY_STRING'], ENT_QUOTES);

echo "<div><a href='?$query'>$jigsaw->name</a></div>";
    }
endforeach;
}

【问题讨论】:

    标签: php variables parameter-passing


    【解决方案1】:

    我可能会使用会话变量。

    http://php.net/manual/en/function.session-start.php

    【讨论】:

    • 会话变量适用于临时用户或我读到的类似性质的东西?
    • @NukleHead - 会话用于在 Web 应用程序中跨请求保持任何类型的状态。它对于保持身份验证状态特别有用。如果您希望将会话数据保留在给定...会话的范围之外,研究更持久的存储技术也是有利的。
    • 我不会将会话变量仅用于在 GET 请求之间持久化查询参数,除非 URL 的美观性非常重要……即使那样,我也会三思而后行。如果您在给定站点上打开了多个选项卡,或者有人使用“后退”按钮,则使用会话往往会让人感到奇怪。将当前查询字符串附加到 URL 上的可能性要小得多。
    【解决方案2】:

    您可以使用$_SERVER['QUERY_STRING'] 获取字符串中当前的$_GET 变量,例如:

    $query = htmlspecialchars($_SERVER['QUERY_STRING'], ENT_QUOTES);
    echo "<a href='?$query'><img border=0 src='".$jigsaw->photo_url."'></a>";
    

    注意 htmlspecialchars 的使用,以防它包含任何讨厌的字符(潜在的 XSS 向量。)

    由于在这种情况下您只是加载同一个页面,href="" 应该也能正常工作。

    【讨论】:

    • 我想试试你的代码,因为它看起来比会话更容易使用,但是当我尝试将它添加到我的代码中时,页面只是刷新,get 函数不再起作用。检查我更新的代码,看看我做了什么。谢谢
    • @NukleHead:如果你只是去?param=whatever,那意味着同一个页面。当然,它只是要刷新。如果你想去另一个页面,你需要在?之前放一些URL。 :P
    【解决方案3】:

    您必须从您的帖子变量中构建一个新的查询字符串并将它们附加到您的链接中。 http_build_query() 对此很有帮助。

    【讨论】:

      猜你喜欢
      • 2023-03-30
      • 1970-01-01
      • 2011-10-14
      • 1970-01-01
      • 2011-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多