[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Поиск ошибки
ensemplix
<?php 
if(isset($_POST['upload'])){
// Список разрешенных файлов
$Shell_Check = array(".php", ".phtml", ".php3", ".php4");
foreach ($Shell_Check as $item) {
if(preg_match("/$item\$/i", $_FILES['file']['name'])) {
die(" «Приезжали тут великие деятели - правильной, неправильной ориентации. И меня начали упрекать, что я осудил эту «голубятню».
Ну, не нравятся мне «голубые», я и сказал, что не нравятся. Видите ли, министры отдельные иностранных дел обиделись на меня.
Чего на меня обижаться?» "
);
}
}

list($width_img, $height_img, $type_img) = $size = getimagesize($_FILES['userfile']['tmp_name']);


if (($width_img > 150) || ($height_img > 150)) {
die("Аватарка не должна привышать 100x100");
}

if($_FILES["file"]["size"] > 1024*500) {
die("Файл превышает допустимый размер в 500 Кб");
}

$folder = '../users/'; // Директория в которую будет загружен файл

$uploadedFile = $folder.basename($_FILES['userfile']['name']);

if(is_uploaded_file($_FILES['userfile']['tmp_name'])){

if(move_uploaded_file($_FILES['userfile']['tmp_name'],$uploadedFile)){

echo "Вы успешно загрузили картинку";
}
else {
die("Во время загрузки файла произошла ошибка");
}
}

else {
die("Файл не загружен");
}
}

else {

die('Вы загружаете запрещенный тип файла');
}


?>


<form enctype="multipart/form-data" method="POST" action="upload.php">
<input
type="file" name="upload" id="upload" />
<input
type="submit" id="upload" value="Загрузить аватарку" name="upload">
</form>


Все время Файл не загружен.Не знаю почему.Помогите :huh:



Спустя 10 минут, 2 секунды (12.07.2011 - 23:14) Лена написал(а):
1. Дайте разные названия полям формы. А то сервер тихо сходит с ума.
Например, переназовите:
<input type="submit" id="upload_" value="Загрузить аватарку" name="upload_">
Тогда и по приходе данных надо:
if(isset($_POST['upload_'])){

2. После
if(isset($_POST['upload_'])){
сделайте print_r($_FILES); - посмотрите, что пришло на сервер.

3. Посылаете вы данные с name="upload", а ловите их везде то $_FILES['userfile']['tmp_name'], то $_FILES['file']...
Надо: $_FILES['upload']['tmp_name'] и т.д.

Спустя 8 минут, 35 секунд (12.07.2011 - 23:22) ensemplix написал(а):
Большое спасибо,просто 3 разных скрипта насобирал smile.gif с точки защиты скрипт хороший?

Спустя 9 минут, 25 секунд (12.07.2011 - 23:32) Лена написал(а):
Честно говоря, плохой )
Вот это мне вообще не понравилось - $Shell_Check = array(".php", ".phtml", ".php3", ".php4");

Я любой файл обзову как asdf.php и он пройдет вашу проверку.
Можно делать защиту через exif_imagetype()

Спустя 5 минут, 50 секунд (12.07.2011 - 23:37) ensemplix написал(а):
Не правда smile.gif попробовал залить себе пхп скрипт.Не грузит smile.gif

Спустя 4 минуты, 47 секунд (12.07.2011 - 23:42) ensemplix написал(а):
А вот все другое можно.Не могли бы мне помочь модифицировать чутка скрипт? что бы был белый лист.с 4 типами изображений smile.gif ?

Спустя 12 минут, 47 секунд (12.07.2011 - 23:55) inpost написал(а):
ensemplix
Скрипт плохой, потому что нельзя просто писать DIE и останавливать работу, надо возвращать человека на форму загрузки и как минимум делать предупреждение, что нельзя загрузить файл по какой-либо причине.

Можешь посмотреть скрипт загрузки тут: irbis-team.com , там работает.

Причины, почему может не загружаться: некорректное имя (только английские буквы сделай), отсутствуют права на папку, куда загружаешь, надо поставить 777 (иногда хватает и 755).

Спустя 2 минуты, 21 секунда (12.07.2011 - 23:57) ensemplix написал(а):
Цитата (inpost @ 12.07.2011 - 20:55)
ensemplix
Скрипт плохой, потому что нельзя просто писать DIE и останавливать работу, надо возвращать человека на форму загрузки и как минимум делать предупреждение, что нельзя загрузить файл по какой-либо причине.

Можешь посмотреть скрипт загрузки тут: irbis-team.com , там работает.

Причины, почему может не загружаться: некорректное имя (только английские буквы сделай), отсутствуют права на папку, куда загружаешь, надо поставить 777 (иногда хватает и 755).

Покажи нам пример.О мастер!

Спустя 1 минута, 46 секунд (12.07.2011 - 23:59) inpost написал(а):

Спустя 3 минуты, 10 секунд (13.07.2011 - 00:02) inpost написал(а):
ensemplix
И вообще, ты пишешь какой-то бред. Я тебе чётко говорю, что незагрузилось могло быть по причине отсутствия прав на папку 777, в ответ ты мне: "Покажи пример"... какой пример? Как ставить права доступа на папку? Ну это относится даже к управлению операционных систем вопрос, чтобы понимать, о чём я говорю, введи в гугле и почитай про права, что значит каждая из цифр.

Пример прост, открыл far, подключился к серверу, навёл указатель на папку и нажал F4 и поставил галочки на всех правах. В чём проблема?! А именно в том, что мой пример может быть тебе бесполезен, если ты работаешь на денвере, или в другой операционной системе, так почему бы просто не почитать обычный мануал операционных систем, как устанавливаются права на папку, файл и т.д. в документациях к твоей операционной системе?

Спустя 3 минуты, 3 секунды (13.07.2011 - 00:05) ensemplix написал(а):
Не знаю кто говорит больший бред,прочти внимательно топик.Все теперь работает.Я про то как улучшить скрипт.Ах,и что такое права на папки я знаю.

А еще я ответил до того как ты подправил топик.Научись контролировать себя или отыдхать чаще.А то от набивания постов нервы уже шалят.

Ну а вообще спасибо за ссылку.Серьезно..посмотри как ты рейджишь по пустикам) я предложил тебе показать как правильнее сделать скрипт с ответом.Ибо я лучшее не могу.

Спустя 8 минут, 51 секунда (13.07.2011 - 00:14) inpost написал(а):
ensemplix
Улучшить: убрать DIE вообще, а сделать так, чтобы в случае ошибки - она выводилась рядом с формой загрузки.

if (($width_img > 150) || ($height_img > 150)) {
die("Аватарка не должна привышать 100x100");

Ты уверен, что 100х100 ? :)

$folder = '../users/'; - используй абсолютные пути через DOCUMENT_ROOT, а не такие, потому что удобнее ориентироваться и управлять скриптом вне зависимости от его положения.

в $_FILES так же может передаваться ошибка и причина ошибки, у тебя это никак не проверяется, а значит отсутствует банальный контроль за этим.

Спустя 8 минут, 14 секунд (13.07.2011 - 00:22) ensemplix написал(а):
Цитата (inpost @ 12.07.2011 - 21:14)
ensemplix
Улучшить: убрать DIE вообще, а сделать так, чтобы в случае ошибки - она выводилась рядом с формой загрузки.

if (($width_img > 150) || ($height_img > 150)) {
die("Аватарка не должна привышать 100x100");

Ты уверен, что 100х100 ? :)

$folder = '../users/'; - используй абсолютные пути через DOCUMENT_ROOT, а не такие, потому что удобнее ориентироваться и управлять скриптом вне зависимости от его положения.

в $_FILES так же может передаваться ошибка и причина ошибки, у тебя это никак не проверяется, а значит отсутствует банальный контроль за этим.

Немножко не понял про последний пункт.

Спустя 1 минута, 13 секунд (13.07.2011 - 00:24) inpost написал(а):
$_FILES['userfile']['error'] - код ошибки
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.