Я новичок в 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 и не отображает всплывающее окно с предупреждением.
Сделайте что-нибудь вроде
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>'; }
Обратите внимание, что это будет нарушено, если вы используете кавычки в сообщении, если вы не избежите их
Проблема в том, что header("location:index.php");
автоматически устанавливает код ответа на 302
. Браузер немедленно перенаправляет, не просматривая содержимое страницы.
Вам необходимо либо выполнить перенаправление себя в javascript после отправки предупреждения, либо перенаправить страницу, чтобы сделать предупреждение.
<script type="text/javascript"> alert("YOUR MESSAGE HERE"); location="REDIRECTION_PAGE.php"; </script>
Код выглядит следующим образом:
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
, независимо от того, файл успешно загружен или нет. Его просто, что всплывающее окно появится, если файл имеет больший размер.