1

我在做!

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

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

请帮忙

4

3 回答 3

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

我希望它对你有帮助!=)

于 2013-03-03T14:41:55.513 回答
0

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

于 2013-03-03T14:34:52.720 回答
0

您还可以通过以下方式检查文件是否存在:

if (file_exists(basename($_GET['urlid']).".doc"))
{$link = "http://www.example.com/download.php?fileid=".$_GET['urlid'].".doc";}
于 2013-03-03T14:50:36.777 回答