6

我是 PHP 新手。

当有人上传的文件太大时,我想向他们显示一个警告弹出窗口并将他们重定向到前一页(反之亦然)。

if(file size is too big){    
   ob_start();   
   header("location:index.php");    
   echo "<script type='text/javascript'>alert('Your File Size is too big!');</script>";   
   ob_end_flush();   
   exit;    
}

上面的代码只会将我重定向到 index.php 并且不会显示任何警告弹出窗口。

4

4 回答 4

9

做类似的事情

header("Location: index.php?Message=" . urlencode($Message));

然后在 index.php 上...

if (isset($_GET['Message'])) {
    print $_GET['Message'];
}

换句话说,index.php将始终检查是否在 url 中传递了一条消息。如果有,请显示它。然后,只需在重定向中传递消息

如果您真的想使用模态弹出窗口,请生成 js ...

if (isset($_GET['Message'])) {
    print '<script type="text/javascript">alert("' . $_GET['Message'] . '");</script>';
}

请注意,如果您在消息中使用引号,除非您对其进行转义,否则这将中断

于 2012-07-28T19:10:31.097 回答
4
<script type="text/javascript">
alert("YOUR MESSAGE HERE");
location="REDIRECTION_PAGE.php";
</script>
于 2016-08-17T19:55:17.387 回答
1

问题在于header("location:index.php");将响应代码设置为302自动。浏览器立即重定向而不查看页面内容。

您需要在发送警报后在 javascript 中进行重定向,或者让您重定向的页面进行警报。

于 2012-07-28T19:12:13.747 回答
-1

代码如下:

if($_FILES['file']['size'] > 200000) //any file size, 200 kb in this case
{
 echo "<script type='javascript'>alert('File size larger than 200 KB')</script>";
}
header("Location: index.php");

index.php无论文件是否成功上传,浏览器都会被重定向到页面。只是如果文件较大,则会出现弹出窗口。

于 2012-07-28T19:49:13.873 回答