2012-03-29 27 views
2

后加工而成我使用发送用户上页:

header('Location: ' . $_SERVER['HTTP_REFERER'] . '?Add=Successful'); 

现在把我送到我的add.php

http://localhost/add.php?Add=Successful 

当我再次增加一个数据的标题位置传递以下:

我要的是修剪头的位置,直到问号:

比方说像修剪$_SERVER['HTTP_REFERER']直到?,并将其保存到一个变量,因此如果关键字?存在,它应该再修剪它http://localhost/add.php,然后传递可变进头的位置,使之能成为这样的事情:

header('Location: ' . $trimmedHeader . '?Add=Successful'); 

回答

7

您还可以使用PHP parse_url()函数。

$url = parse_url($_SERVER['HTTP_REFERER']); 
$trimmedHeader = $url['scheme'] . '://' . $url['host'] . $url['path']; 
header('Location: ' . $trimmedHeader . '?Add=Successful'); 
+0

你们所有人都给出了答案和它的工作,但问题是,它没有将变量传回头部。它通过这个: - 'http:// localhost/add.php',而我想通过这个: - 'http://localhost/add.php?Add = Successful'再次。 – 2012-03-29 12:43:01

+0

但是,这是什么在我的脚本再次通过这个变量:'?添加=成功'。 你还需要什么? – Naki 2012-03-29 12:55:03

0
preg_replace('/(.*)\?/',$_SERVER['HTTP_REFERER'],'\1'); 
0

这将返回字符串中的第一个问号之前的一切。

$trimmedheader = array_shift(explode("?", $_SERVER['HTTP_REFERER'])); 
+0

大家都已经给出了答案和它的工作,但问题是,它不是通过可变后用头一起。它通过这个: - 'http:// localhost/add.php',而我想通过这个: - 'http://localhost/add.php?Add = Successful'再次。 – 2012-03-29 12:43:10

+0

你说过:“我想要的是修剪标题位置直到问号”这就是我的脚本正在做的事情。如果你想追加“?Add = Successful”到你的字符串,只需在末尾加上:'array_shift(explode(“?”,$ _SERVER ['HTTP_REFERER']))。 “?Add =成功”' – 2012-03-29 12:49:33

0
$urlArray = parse_url($_SERVER['HTTP_REFERER']); 
$newUrl = $urlArray['scheme'].'://'.$urlArray['host'].$urlArray['path'].'?Add=Successful'; 
header("Location: $newUrl"); 

这已经过测试,工作正常....

+0

你们所有人都给出了答案和它的工作,但问题是,它没有将变量和标题一起传回。它通过这个: - 'http:// localhost/add.php',而我想通过这个: - 'http://localhost/add.php?Add = Successful'再次。 – 2012-03-29 12:42:49

+0

尝试连接标题行外可能(我知道函数返回标题字符串foofs的东西了) – Ing 2012-03-29 13:41:40