我从来没有理解过这一点,在我自己的项目中,我从未需要它。但是我已经为WordPress做了一点贡献,并且他们大量使用它。
不知何故,他们能够将用户重定向到URL中的某种GET变量的不同页面(我理解这是使用GET而不是POST的优势)。他们如何做到这一点?是否像制作像header('site.com/page.php?foo=true');
这样的标题一样简单?这可能很有用,因为你必须对所有内容进行硬编码(除非你想根据其他变量创建一个字符串,这甚至还是令人讨厌的)。我以为会有像send_get('page.php', $foo);
这样的内置函数。
我了解如何使用$foo = $_GET['foo'];
来使用信息,但我不知道如何使用PHP发送信息。
我将不胜感激,谢谢!
答案 0 :(得分:2)
没有一种“习惯”的使用方式。它是九个超级全球之一。您使用它们的方式由您自行决定。正如Greg P已经提到的那样,它们通过URL传递。
我知道如何设置一个以这种方式发送变量的HTML表单,但是如何用PHP做同样的事情?
如果您正在谈论仅使用PHP发送GET变量,答案是否定的。您甚至不需要PHP来发送GET变量。它就像添加一个问号后跟变量name = something一样简单。使用&符号(&)
分开其中几个设置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有一个非常棒的代码库。
答案 1 :(得分:0)
我认为你错过了树林...... $ _GET / $ _ POST只是传递给处理它们的页面的变量 - 它们是什么以及它们是如何完成的,取决于设计的应用程序。例如,Joomla总是将component_id和item_id放在$ _GET数组中,并且在设计时考虑到了这一点,所以期望它们在那里,构建页面,或重定向,或者考虑到这一点。
在您的示例中,send_get()函数可能是个好主意(我没有设计它),但架构师并没有因为某种原因而看到它。 Joomla碰巧有一个重定向函数,它确实对$ _GET中传递的内容有一定的依赖性,但这只是应用程序作者的设计。
答案 2 :(得分:0)
也许重定向URL
会保留在某些session
变量中。正确$_GET
变量,指示wordpress:“检查重定向URL的会话变量”。
答案 3 :(得分:0)
PHP.net说:
通过URL参数传递给当前脚本的关联变量数组。
网址参数:通常是通过网址传递给脚本的变量,例如示例site.com/page.php?foo=true
。 ?
之后的所有内容都被视为参数。
HTTP协议将GET类型请求定义为幂等,而POST可能有副作用。在痛苦的英语中,这意味着GET用于查看某些内容而不更改它,而POST则用于更改内容。例如,搜索页面应使用GET,而更改密码的表单应使用POST。