带有urlid字符串的URL重定向以一种永远不会完成的方式创建请求


URL redirect with urlid string creates request in a way that will never complete

我在做!!

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

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

rest和往常一样,当请求被发送到get.php时,它返回下载登陆页面的url。

现在的问题是:

一切工作正常,当正确的urlid被发送,或者如果它被发送空然后我的get.php重定向到我的主索引页的访问者。当发送未知的(不存在的)urlid时,浏览器返回以下

时发生问题。

页面没有正确重定向Firefox检测到服务器正在以某种方式重定向此地址的请求从来没有完成。此问题有时可能由禁用或拒绝接受cookies。

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

请帮忙

你可以这样做:

<?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();

我希望它能帮助你!div =)

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

您还可以这样做来检查文件是否存在:

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