请解释PHP $ _GET请求

时间:2012-05-28 15:46:30

标签: php get

我从来没有理解过这一点,在我自己的项目中,我从未需要它。但是我已经为WordPress做了一点贡献,并且他们大量使用它。

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

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

我将不胜感激,谢谢!

4 个答案:

答案 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?之后的所有内容都被视为参数。

引自StackOverflow question:

  

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