0

我从来不明白这一点,在我自己的项目中,我从来不需要它。但我一直在为 WordPress 做一些贡献,他们大量使用它。

不知何故,他们能够通过 URL 中的某种 GET 变量将用户重定向到不同的页面(我理解这是使用 GET 而不是 POST 的优势)。他们怎么做到的?像制作标题一样简单header('site.com/page.php?foo=true');吗?这没有用,因为您必须对所有内容进行硬编码(除非您想基于其他变量创建一个字符串,这有点烦人,甚至仍然如此)。我以为会有一个内置函数,比如send_get('page.php', $foo);.

我了解如何使用 using 来使用信息$foo = $_GET['foo'];,但我不知道如何使用 PHP 发送它。

解释将不胜感激 - 谢谢!

4

4 回答 4

2

没有完全“习惯”的使用方式。它是九个超全球之一。您使用它们的方式由您自行决定。正如 Greg P 已经提到的,它们是通过 URL 传递的。

我知道如何设置一个以这种方式发送变量的 HTML 表单,但是我怎样才能用 PHP 做同样的事情呢?

如果您正在谈论仅使用 PHP 发送 GET 变量,答案是否定的。您甚至不需要 PHP 来发送 GET 变量。就像添加一个问号后跟一个变量名 = 一样简单。使用与号 (&) 分隔其中的几个

设置 GET 变量就像创建锚链接一样简单。 <a href='somepage.php?getVar1=foo&anotherVariable=2&thirdVar=3

您可以使用 PHP 在其中动态放置某些信息,而不是手动编写它,这是该语言开始的全部目的。它是一个预处理器

所以,这样的事情应该让你开始

<?php
$someID = // An id pulled from a mysql_query
echo "<a href='somepage.php?someID=" . $someID . "'>GET LINK</a>";

我以为会有一个像 send_get('page.php', $foo); 这样的内置函数。

同样,PHP 是一个预处理器。它不发送信息,它只输出它。你在说的是Javascript ..此外,AJAX。AJAX 是唯一允许您在“幕后”发送 GET 变量的方法。而且,就像在另一篇文章中提到的那样,jQuery 有一个很棒的代码库。

于 2012-05-28T16:03:01.060 回答
0

我认为您错过了树木的森林... $_GET/$_POST 只是传递给处理它们的页面的变量-它们的完成方式以及完成方式取决于应用。例如,Joomla 总是将 component_id 和 item_id 放在 $_GET 数组中,并且在设计时就考虑到了这一点,因此期望它们在那里,并构造页面,或重定向,或考虑到这一点。

在您的示例中, send_get() 函数可能是一个好主意(我没有设计它),但出于某种原因,架构师并不这么认为。Joomla 恰好有一个重定向功能,它确实对 $_GET 中传递的内容有一定的依赖性,但这只是应用程序作者的设计。

于 2012-05-28T15:53:14.893 回答
0

也许重定向URL被保存在一些session变量中。正确$_GET的变量,为 wordpress 指明:“检查重定向 URL 的会话变量”。

于 2012-05-28T15:54:08.677 回答
0

PHP.net说:

通过 URL 参数传递给当前脚本的变量关联数组。

URL 参数:通常是通过 URL 传递给脚本的变量,例如在您的示例site.com/page.php?foo=true中。之后的所有内容都?被视为参数。

引用自StackOverflow 问题:

HTTP 协议将 GET 类型的请求定义为幂等,而 POST 可能有副作用。在痛苦的英语中,这意味着 GET 用于查看某些内容,而不更改它,而 POST 用于更改某些内容。例如,搜索页面应使用 GET,而更改密码的表单应使用 POST。

于 2012-05-28T16:03:32.477 回答