Не запускать оповещение при загрузке страницы

У меня есть эта копия кода загрузки, вставленная из w3 для загрузки изображений и включенная в страницу. Проблема в том, что когда страница загружается в первый раз, все окна оповещений запускаются и запускаются. Я думаю, что проблема, вероятно, из-за того, что $ uploadok не ==. Но как мне решить эту проблему, чтобы предупреждение не запускалось при запуске.

Я на самом деле новичок, так что немного странно приходить с новой логикой.

Так вот код

<?php
session_start();
$path = "C:\wamp64\www\Allian\users/".$_SESSION['username']."/uploads";
if (!file_exists($path)) {
mkdir($path, 0700);
}
$target_dir = "users/".$_SESSION['username']."\uploads/";
$target_file = $target_dir . basename($_FILES["dp_btn"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// Check if image file is a actual image or fake image
if($_SERVER["REQUEST_METHOD"]=="POST") {
if(isset($_POST["btn_save_changes"])) {
$check = getimagesize($_FILES["dp_btn"]["tmp_name"]);
if($check !== false) {
echo "<script>alert('File is an image - " . $check["mime"] . ".')</script>";
$uploadOk = 1;
} else {
echo "<script>alert('File is not an image.')</script>";
$uploadOk = 0;
}
}
}
// Check if file already exists
if (file_exists($target_file)) {
echo "<script>alert('Sorry, file already exists.')</script>";
$uploadOk = 0;
}
// Check file size
if ($_FILES["dp_btn"]["size"] > 500000) {
echo "<script>alert('Sorry, your file is too large.')</script>";
$uploadOk = 0;
}
// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"&& $imageFileType != "gif" ) {
echo "<script>alert('Sorry, only JPG, JPEG, PNG & GIF files are allowed.')</script>";
$uploadOk = 0;
}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
echo "<script>alert('Sorry, your file was not uploaded.')</script>";
// if everything is ok, try to upload file
} else {
if (move_uploaded_file($_FILES["dp_btn"]["tmp_name"], $target_file)) {
echo "<script>alert('The file ". basename( $_FILES["dp_btn"]["name"]). " has been uploaded.')</script>";
} else {
echo "<script>alert('Sorry, there was an error uploading your file.')</script>";
}
}
?>

Thnx

0

Решение

Поместите все, что вы не хотите запускать, на первой странице загрузки внутри if(isset($_POST["btn_save_changes"])) { блок. Это обеспечит запуск только после обратной передачи и нажатие кнопки «Сохранить изменения». Когда вы впервые загружаете страницу в браузере, это всегда делается с помощью GET. POST используется только при отправке формы. Если демо, из которого вы скопировали, не было ошибочным, я удивляюсь, что это уже не так.

<?php
session_start();
$path = "C:\wamp64\www\Allian\users/".$_SESSION['username']."/uploads";
if (!file_exists($path)) {
mkdir($path, 0700);
}
$target_dir = "users/".$_SESSION['username']."\uploads/";
$target_file = $target_dir . basename($_FILES["dp_btn"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));

// Check if image file is a actual image or fake image
if($_SERVER["REQUEST_METHOD"]=="POST") {
if(isset($_POST["btn_save_changes"])) {
$check = getimagesize($_FILES["dp_btn"]["tmp_name"]);
if($check !== false) {
echo "<script>alert('File is an image - " . $check["mime"] . ".')</script>";
$uploadOk = 1;
} else {
echo "<script>alert('File is not an image.')</script>";
$uploadOk = 0;
}
// Check if file already exists
if (file_exists($target_file)) {
echo "<script>alert('Sorry, file already exists.')</script>";
$uploadOk = 0;
}
// Check file size
if ($_FILES["dp_btn"]["size"] > 500000) {
echo "<script>alert('Sorry, your file is too large.')</script>";
$uploadOk = 0;
}
// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg" && $imageFileType != "gif" ) {
echo "<script>alert('Sorry, only JPG, JPEG, PNG & GIF files are allowed.')</script>";
$uploadOk = 0;
}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
echo "<script>alert('Sorry, your file was not uploaded.')</script>";
// if everything is ok, try to upload file
} else {
if (move_uploaded_file($_FILES["dp_btn"]["tmp_name"], $target_file)) {
echo "<script>alert('The file ". basename( $_FILES["dp_btn"]["name"]). " has been uploaded.')</script>";
} else {
echo "<script>alert('Sorry, there was an error uploading your file.')</script>";
}
}
}
}
?>

Постскриптум Просто в стороне: как пользовательский опыт, получение ряда различных всплывающих окон в последовательности, содержащих сообщения об ошибках, не особенно полезно. Они требуют увольнения по одному, что утомительно, и пользователь может не помнить, что было в предыдущих, чтобы иметь возможность действовать на него. Вы найдете очень мало современных веб-сайтов, отображающих ошибки таким образом (если они есть). Гораздо лучшим способом было бы создать список HTML, содержащий все сообщения об ошибках, а затем просто отобразить его в подходящем месте на странице, где он виден, и пользователь может увидеть все сразу, одновременно пытаясь исправить и повторно отправить. форма..

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector