У меня проблемы с формой. Он содержит тип ввода File для загрузки изображения и тег select, чтобы выбрать, куда поместить это изображение. Код выглядит так:
<?php
require_once("functions.php");
if(isset($_COOKIE['user']))
{
$username= checkcookie($_COOKIE['user']);
}
if (isset($_SESSION['user'])) {
if ($_POST) {
$errors = array();
$errors = SomeValidation();
if (empty($errors )) {
UpdateImages();
exit;
}else {
Header ("location: somefile.php?error=There was an error");
exit;
}
}else{
var_dump("error");
} ?>
<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
<form method="post" action="" enctype="multipart/form-data">
<?php if(isset($_GET['error'])) {?>
<div class="alert alert-danger" role="alert">
<ul>
<li><?php echo $_GET['error'] ?></li>
</ul>
</div>
<?php } ?>
<div class="cbp-mc-column">
<label>Choose new Image</label>
<select id="code" name="code">
<option value="1" >First</option>
<option value="2" >Second</option>
<option value="3" >Third</option>
</select>
<br/>
<input type="file" name="newimage" value="" />
<br>
<input type="submit" name="update" value="Update">
<br>
</div>
</form>
<!-- Bootstrap Core JavaScript -->
<script src="../js/bootstrap.min.js"></script>
</body>
</html>
<?php }else
{
header('location: panel.php');
}
?>
Я всегда получаю "Ложь" для if($_POST)
, а также когда отправляю форму. Есть идеи, почему?
РЕДАКТИРОВАТЬ: Я забыл упомянуть, я отправляю значение select
по почте, поэтому я могу выбрать, какой файл загружать, и он всегда пуст.
3 ответа
Чтобы загрузить изображение или любой другой файл, вам нужно проверить массив $ _FILES, который не публикуется, этот вопрос может быть полезным
Как выполнить цикл по массиву $ _FILES?
Во-первых, вам нужно проверить, была ли нажата кнопка отправить : isset($_POST['update'])
Затем проверьте, был ли выбран файл: isset($_FILES['newimage']['tmp_name'])
if (isset($_POST['update'])) {
if (isset($_FILES['newimage']['tmp_name'])) {
$errors = array();
$errors = SomeValidation();
if (empty($errors )) {
UpdateImages();
exit;
} else {
Header ("location: somefile.php?error=There was an error");
exit;
}
} else {
echo "No file selected.";
}
} else {
echo "Not a POST request.";
}
Лучше проверять вводы вместо метода запроса .. поэтому используйте
if (!empty($_POST["update"])) {
....
}
Похожие вопросы
Связанные вопросы
Новые вопросы
php
PHP — это открытый, мультипарадигмальный, динамически типизированный и интерпретируемый язык сценариев, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.