使用urlid字符串进行URL重定向会以永远不会完成的方式创建请求

时间:2013-03-03 14:26:23

标签: php redirect

我堆叠了!!!!

我有一个简单的URL重定向脚本,我用它来再次使用简单的urlid字符串将访问者重定向到小部件下载页面

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

休息与往常一样,当请求发送到get.php时返回下载登录页面的URL。

现在出现问题:

当发送正确的urlid或者发送为空时,一切正常,然后我的get.php将访问者重定向到我的主索引页面。当发送未知(不存在)urlid时,问题会发生,而浏览器会返回以下内容

  

页面没有正确重定向Firefox已经检测到了   服务器正在以一种方式重定向该地址的请求   永远不会完成此问题有时可能是由禁用或导致的   拒绝接受自己。

以下是我的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();
?>

请帮忙

3 个答案:

答案 0 :(得分: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();

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

答案 1 :(得分:0)

使用PHP isset函数http://php.net/manual/en/function.isset.php查看是否设置了$ _GET ['urlid']。

答案 2 :(得分:0)

您还可以通过执行以下操作来检查文件是否存在:

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