PHP头重定位和$ _GET

时间:2014-01-16 17:16:53

标签: php header get

我有一个网站,允许用户上传图片,但我不想在照片中有任何裸露。我发现了一个用PHP编写的扫描,我已经成功实现了。如果发现裸露在文件中,则删除文件和记录。我只是在提醒用户没有保留照片的原因时遇到了麻烦。它只是重新加载页面。可能是什么问题?

此代码是我的new2.php文件中未注释的代码的开头:

if (isset($_GET['error'])) { 
echo "Nudity found. Please try again with a more appropriate picture.";
sleep(5);
header("Location: new2.php");
}

此代码是扫描图片裸露的代码:

if($quant->isPorn()) {
        $q = "delete from $table where id='$id'";
        $result = mysql_query($q);
        unlink("pics/".$picfile);
        header('Location: new2.php?error=1');
    } else {
    header("Location: index.php?id=$id");
    }

非常感谢任何帮助!

3 个答案:

答案 0 :(得分:2)

用户不会看到您的echo输出。输出尚未发送到浏览器,这发生在脚本的末尾。在此之前重定向。

如果要发送消息,请等待5秒,然后重定向,请在客户端执行。

<?php if (isset($_GET['error'])) { ?>
    <p>Nudity found. Please try again with a more appropriate picture.</p>
    <script>
        setTimeout("self.location='new2.php'",5000);
    </script>
<?php } ?>

答案 1 :(得分:1)

不需要Javascript。只需输出包含错误的页面,但更改

sleep(5);
header("Location: new2.php");

header("Refresh: 5; url=new2.php");

这与<meta http-equiv="refresh">具有相同的效果。

答案 2 :(得分:0)

不要从标题中执行此操作。请改用:

<script> location="whatever.php?a=1"; </script>