2010-02-15 63 views
0

喜在一个简单的页面我使用PHP和JavaScript重定向到返回引用页。PHP和JavaScript重定向

header("Location: $refererScript"); 

onclick="window.location.href='<?=$refererScript?>';" 

这是为了保护从产生错误这些脚本的最佳方式:

例。我应该使用进行urlencode为$ refererScript(或至少是查询字符串),如果是将这种接受来自JavaScript或必须使用转义(或别的东西)

为$ refererScript我使用上述

$ref=$_SERVER["HTTP_REFERER"]; 
$refererParts = parse_url($_SERVER['HTTP_REFERER']); 
$refererQuery=$refererParts["query"]; 
$refererFolders=explode("/",$refererParts["path"]); 
$refererScript=$refererFolders[sizeof($refererFolders)-1]; 
if($refererQuery!="") 
{ $refererScript.="?".$refererQuery; } 
代码

感谢

回答

3

我会建议你使用PHP头的做法,因为如果JavaScript被禁用,那么就不会有重定向,你应该URL编码为如:

$refererScript = urlencode($refererScript); 
header("Location: $refererScript"); 
+0

谢谢,JavaScript重定向也是必须的。 – ntan 2010-02-15 08:59:35

+0

@欢迎您:) – Sarfraz 2010-02-15 09:22:09

+0

有办法检测用户浏览器是否启用javascript – Sarfraz 2010-02-15 09:22:36

0

$_SERVER["HTTP_REFERER"];应该已经是有效的URL。如果不是,某人手动更改并将重定向到错误的页面。

我看不出有任何安全隐患这里。你的代码很好。