фото не загружается

С8
На сайте с 23.08.2012
Offline
108
535

Добрый день. На тестовом сервере все отлично работало, фото загружалось и проверки выполнялись, а как загрузила на хостинг выдается такая ошибка: Array ( [name] => tamada.gif [type] => [tmp_name] => [error] => 6 => 0 ) 1 и фото не загружается. Права на запись для папки загрузки добавила. В чем дело? Проблемы с хостингом?

P
На сайте с 06.04.2012
Offline
70
#1
Array ( [name] => tamada.gif [type] => [tmp_name] => [error] => 6 => 0 )

Это не ошибка, а print_r массива. Что там такое в вашем скрипте и что за ошибка, не видя скрипта никто не сможет ответить.

С8
На сайте с 23.08.2012
Offline
108
#2

Скрипт тестировала на тестовом сервере, все отлично работало. Сейчас скрипт проверяет лишь переменную name, дальше проверки не работают и фото не загружается, вот:

<?php 

include ("blocks/bd.php");

$result = mysql_query ("SELECT sum FROM comments_setting",$db);
$myrow = mysql_fetch_array($result);


if (isset($_POST['title'])) {$title = $_POST['title']; $title = stripslashes($title); $title = htmlspecialchars($title); $title = trim($title);
if ($title == '') {unset($title);}}

if (isset($_POST['meta_d'])) {$meta_d = $_POST['meta_d']; $meta_d = stripslashes($meta_d); $meta_d = htmlspecialchars($meta_d); $meta_d = trim($meta_d);
if ($meta_d == '') {unset($meta_d);}}

if (isset($_POST['meta_k'])) {$meta_k = $_POST['meta_k']; $meta_k = stripslashes($meta_k); $meta_k = htmlspecialchars($meta_k); $meta_k = trim($meta_k);
if ($meta_k == '') {unset($meta_k);}}

if (isset($_POST['date'])) {$date = $_POST['date']; $date = stripslashes($date); $date = htmlspecialchars($date); $date = trim($date);
if ($date == '') {unset($date);}}

if (isset($_POST['text'])) {$text = $_POST['text']; $text = stripslashes($text); $text = htmlspecialchars($text); $text = trim($text);
if ($text == '') {unset($text);}}

if (isset($_POST['pochta'])) {$pochta = $_POST['pochta']; $pochta = stripslashes($pochta); $pochta = htmlspecialchars($pochta); $pochta = trim($pochta);
if ($pochta == '') {unset($pochta);}}

if (isset($_POST['tel'])) {$tel = $_POST['tel']; $tel = stripslashes($tel); $tel = htmlspecialchars($tel); $tel = trim($tel);}

if (isset($_POST['gorod'])) {$gorod = $_POST['gorod']; $gorod = stripslashes($gorod); $gorod = htmlspecialchars($gorod); $gorod = trim($gorod);
if ($gorod == '') {unset($gorod);}}

if (isset($_FILES['foto'])) {$foto = $_FILES['foto'];}

if (isset($_POST['pr'])) {$pr = $_POST['pr']; $pr = stripslashes($pr); $pr = htmlspecialchars($pr); $pr = trim($pr);}


if (isset($_POST['sub_ob'])) {$sub_ob = $_POST['sub_ob']; }


function isSecurity($foto){
$name = $_FILES['foto']['name'];
$type = $_FILES['foto']['type'];
$size = $_FILES['foto']['size'];


$blacklist = array(".php", ".phtml", ".php3", ".php4");
foreach ($blacklist as $item) {if(preg_match("/$item\$/i", $name))

exit("<p>Такие типы файлов недопустимы! <input name='back' type='button' value='Вернуться назад' onclick='javascript:self.back();'></p>");}

if (($type != "image/gif") && ($type != "image/png") && ($type != "image/jpg") && ($type != "image/jpeg") && ($type != "")) exit("<p>Такие форматы недопустимы! Можно загружать изображения в формате: gif, png, jpg, jpeg. <input name='back' type='button' value='Вернуться назад' onclick='javascript:self.back();'></p>");


if ($size > 100 * 1024) {exit("<p>Такие размеры недопустимы! Размер фотографии должен быть меньше 100 кб. <input name='back' type='button' value='Вернуться назад' onclick='javascript:self.back();'></p>");}

return true;
}


function LoadFoto($foto){
$type = $_FILES['foto']['type'];
$name = $_FILES['foto']['name'];
$uploaddir = "avatars/";
$name = md5(microtime()).".".substr($type, strlen("image/"));
if(move_uploaded_file($_FILES['foto']['tmp_name'], $uploaddir.$name))
{
return $name;
}
else return false;
}

if($name = LoadFoto($foto)) {
// Использовать переменную $name
} else {
// Не удалось сохранить файл
}



if (isSecurity($foto)) LoadFoto($foto);
else $message ="Ошибка при загрузке фото!";



?>
P
На сайте с 06.04.2012
Offline
70
#3

Попробуйте в скрипте $uploaddir = "avatars/"; поменять на полный путь к каталогу для загрузки на хостинге (должно быть указано, в панели хостера обычно).

Чтобы что-то вроде такого было:

$uploaddir = "/home/users/yourlogin/public_html/avatars/";

EDIT: Хотя вообще судя по тому, что tmp_name пустое, проблема может быть не в этом.

С8
На сайте с 23.08.2012
Offline
108
#4

Спасибо, попробую!

ШO
На сайте с 27.12.2005
Offline
375
#5
Сабрина87:
На тестовом сервере все отлично работало, фото загружалось и проверки выполнялись, а как загрузила на хостинг выдается такая ошибка

А Вы сюда фото загрузите, проверим в чем дело и мужчин порадуете.

UNIT-IS
На сайте с 19.10.2012
Offline
48
#6

Я не силен в PHP, но имею догадки.

LoadFoto($foto) - принимает параметром переменную $foto, а использует $type = $_FILES, причем не удостоверившись в том, есть ли в ней что-то.


function LoadFoto($foto){
$type = $_FILES['foto']['type'];
$name = $_FILES['foto']['name'];

В начале скрипта есть проверка которая и задает $foto

if (isset($_FILES['foto'])) {$foto = $_FILES['foto'];}

Посмотрите что вы передаете в функицю move_uploaded_file

if(move_uploaded_file($_FILES['foto']['tmp_name'], $uploaddir.$name))

и посмотрите где вы описали

[error] => 6

Удачи! Надеюсь у Вас все получиться.

С8
На сайте с 23.08.2012
Offline
108
#7

Спасибо, я уже как только не меняла код. Все отлично работало. Я склоняюсь к тому, что ошибка на строне хостинга, error 6, по моему, означает, что нет временной папки.

P
На сайте с 06.04.2012
Offline
70
#8

UPLOAD_ERR_NO_TMP_DIR

Value: 6; Missing a temporary folder. Introduced in PHP 4.3.10 and PHP 5.0.3.

http://www.php.net/manual/en/ini.core.php#ini.upload-tmp-dir

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий