2013-03-03 18 views
1

我在堆栈中做了!!!urlid字符串的URL重定向以永远不会完成的方式创建请求

我有我使用访问者重定向到小工具下载页面再次使用简单的字符串URLID

http://www.example.com/get.php?urlid=blue_widget 

剩下的就是像往常一样,当请求发送到get.php它返回一个简单的URL重定向脚本下载着陆页的网址。

现在的问题:当URLID正确发送

一切工作正常,或者如果它被送到空,那么我get.php访问者重定向到我的主索引页。当未知(无存在)是URLID发送的问题发生,比浏览器返回以下

页没有正确重定向Firefox已经检测到 服务器重定向此地址的请求的方式,将 永远不会完成。有时可能由于禁用或拒绝接受cookie而导致此问题。

这里是我的get.php文件的内容

<?php 
$urlid = $_GET['urlid'] 
if ($urlid == "") {$link = "http://www.example.com/";} 
if ($urlid == "blue_widget") {$link = "http://www.example.com/download.php?fileid=blue_widget.doc";} 
header ("Location: $link"); 
exit(); 
?> 

请帮

+0

$链接没有设置,设置默认$链接值 – 2013-03-03 14:45:10

回答

1

你可以做这样的事情:

<?php 
if (isset($_GET['urlid'])) { 
    switch ($_GET['urlid']) { 
     case 'blue_widget': 
      $link = 'http://www.example.com/download.php?fileid=blue_widget.doc'; 
      break; 
     case 'second_widget': 
      $link = 'http://www.example.com/download.php?fileid=second_widget.doc'; 
      break; 
     case 'blabla': 
      $link = 'http://www.example.com/download.php?fileid=blabla.doc'; 
      break; 
     default: 
      $link = 'http://www.example.com/'; 
    } 
} else 
    $link = 'http://www.example.com/'; 
header("Location: $link"); 
exit(); 

我希望它可以帮助你! =)

+0

谢谢,这看起来不错,我认为这正是我将要使用的,所以按照我的理解,通过脚本来看,如果urlid未设置或为空,它甚至不会开始寻找$ link。好,还有一个问题,我最好还需要为每个小部件设置另一个变量,例如$ title,并在urlid为空或不存在的情况下将访问者发送到我的自定义错误页面,是否需要更改默认值: – AlexB 2013-03-03 14:56:50

+0

嗨!在这个代码中有两个“错误页面”:第一个是 'default'行,当urlid不是您期望的小部件!第二个是'else'行,当urlid没有设置时会发生这种情况!要为每个小部件设置另一个变量,只需将代码添加到'switch'结构中'小部件'和'break'语句之间的小部件对应的块中! – vcampitelli 2013-03-03 15:16:27

+0

明白了,竖起大拇指!感谢您的快速响应 – AlexB 2013-03-03 15:21:39

0

你也可以检查文件是否这样做存在:如果$ URLID不blue_widget

if (file_exists(basename($_GET['urlid']).".doc")) 
{$link = "http://www.example.com/download.php?fileid=".$_GET['urlid'].".doc";} 
+0

这将是一个好主意,但不是所有的文件都是.doc文件,如果我需要重定向访问者而不解析urlid会怎么样? – AlexB 2013-03-03 14:59:27

相关问题