Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.08.2009, 19:05   #1
Ang3r
 
Регистрация: 07.08.2009
Сообщений: 3
Вопрос Проблема с проверкой <input type="file">

в общем.. у меня есть страница settings.php, где у меня есть возможность залить на сервер аватар. Всё вроди бы должно работать, но он почему то не хочет проверять if(isset($_POST['avatarnew']))

вот код:

Код:
<?php
if (isset($_POST['avatarnew']))
{
$avatarnew = $_POST['avatarnew'];
if (strlen($avatarnew) > 0) 
{
if ($avatarnew != $avatarin) 
{
if ($_FILES["avatarnew"]["size"] <= 1024*150) 
{
if (($_FILES["avatarnew"]["type"] == "image/gif") || ($_FILES["avatarnew"]["type"] == "image/png") 
|| ($_FILES["avatarnew"]["type"] == "image/jpeg") || ($_FILES["avatarnew"]["type"] == "image/jpg"))
{
switch($_FILES["avatarnew"]["type"]) 
{
case "image/gif": $imgtype = ".gif"; break;
case "image/png": $imgtype = ".png"; break;
case "image/jpeg": $imgtype = ".jpeg"; break;
case "image/jpg": $imgtype = ".jpg"; break;
}
if (copy($_FILES["avatarnew"]["tmp_name"], "images/avatars/".$_FILES["avatarnew"]["name"])) 
{
$avatarnew = "images/avatars/".$myusername.$imgtype;
mysql_query("UPDATE users SET AVATAR = '$avatarnew' WHERE USER = '$myusername'");$
$saved = "Изменения сохранены!";
}
else $error = $error.'Ошибка! Файл не загружен, попробуйте ещё раз.<br>';
}
else $error = $error.'Разрешённые форматы аватара: GIF, PNG, JPG и JPEG!<br>';
}
else $error = $error.'Размер аватара должен быть не более чем 150 КБ!<br>';
}
}
}
?>

<form method="POST" action="<?php $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data">
<input type="file" name="avatarnew" size="30"><br>
<button type="submit" name="savechanges"><b>Сохранить изменения</b></button>
</form>
Заранее спасибо
Ang3r вне форума Ответить с цитированием
Старый 07.08.2009, 19:23   #2
Metandrostenalon
Форумчанин
 
Регистрация: 03.04.2009
Сообщений: 108
По умолчанию

avatarnew находится в суперглобальном массиве $_FILES

Код:
if (isset($_POST['savechanges']))
php,javascript
Metandrostenalon вне форума Ответить с цитированием
Старый 07.08.2009, 19:34   #3
Ang3r
 
Регистрация: 07.08.2009
Сообщений: 3
По умолчанию

Код:
if (isset($_POST['savechanges']))
тоже есть, в нём уже проверка
Код:
if (isset($_POST['avatarnew']))
или чтото не так?
Ang3r вне форума Ответить с цитированием
Старый 07.08.2009, 20:00   #4
sa_t_an
Пользователь
 
Регистрация: 27.04.2008
Сообщений: 38
По умолчанию

Код:
if (isset($_POST['avatarnew']))
В пост запросе $_POST['avatarnew'] всегда пустой, его же нет в фоме, в форме есть $_FILES["avatarnew"] поэтому строчку с проверкой
Код:
if (isset($_POST['avatarnew']))
замени на
Код:
if ($_FILES)
и убери везде свой $_POST['avatarnew'];

$avatarnew = $_POST['avatarnew'];
плавно перейдет в
$avatarnew = $_FILES['avatarnew']['name'];
sa_t_an вне форума Ответить с цитированием
Старый 07.08.2009, 20:13   #5
Ang3r
 
Регистрация: 07.08.2009
Сообщений: 3
По умолчанию

О! Работает! Огромное спасибо!!
Ang3r вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
HTML нет событий при передачи методо POST через <input type="image" Mixail HTML и CSS 12 07.06.2009 03:33
input type='text' блокировать изменение элемента Damhurz HTML и CSS 2 18.04.2009 02:35
Файл вида "\\.\file.ext" braslavets Общие вопросы Delphi 1 19.06.2008 16:34