这是一个正确的方式来使用获取在PHP

问题描述:

我使用下面的获取在没有窗体的PHP。这是一个正确的方式来使用获取在PHP

If($q) 
{ 
header("location:d.php?q=$name"); 
} 

它是正确的吗?

+0

有人??还为什么? – Chrism 2011-02-26 22:37:59

根据specification,位置标头中的URI必须是绝对URI。

但是无论如何,你的代码会创建一个(不必要的)重定向。

如果要在请求之间保留值,更好的方法是使用sessions

+0

好主意....另一个问题....我可以在一个页面上开始一个会话...并在用户进入第三页时销毁?它也会冲突已登录的会话吗? – Chrism 2011-02-26 22:41:57

+0

@Chrism:你只能有一个会话afaik。为什么不使用“登录会话”,为什么你想破坏会话呢?如果这是你想要的,你可以删除这些值。 – 2011-02-26 22:43:16

+0

会话+1。令人惊讶的是有多少php开发人员不知道他们 – 2011-02-26 22:43:57

虽然相对人员通常工作,但由location:指定的URL必须是绝对URL。

除此之外,我们当然不知道你在做什么,但它是一个好的头重定向到另一个地址。如果$name包含某些内容,它将作为查询参数发送到该URL。

+0

你还有什么建议?我想在另一个页面中使用一个值。 – Chrism 2011-02-26 22:40:27

+0

@Chrism你的方法很好,可以将客户重定向到另一个页面(无论出于何种原因,我们无法知道)。只需指定一个完整的URL – 2011-02-26 22:41:55

+0

但是我面临着一个问题...... get在另一个页面中工作,但是当另一个页面点击提交按钮时,get会超出范围。如何设置cookie? – Chrism 2011-02-26 22:43:29