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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.10.2010, 09:50   #1
mrgrudge
Форумчанин
 
Аватар для mrgrudge
 
Регистрация: 20.02.2010
Сообщений: 229
Печаль на локалхосте работает, на хостинге нет!

Вообщем есть простая форма с парой тройкой полей и полем файла (картинка)...когда собирал на localhost'e т.е. не в интернете а на своем компе, все работал исправно, файлик подгружалсо, запись попадала туда куда надо в таблице....но выложил на хостинг в интренет свое творение и файл перестал загружаться в чем дело не пойму.
Вот сопссно и оно:
PHP код:
if (isset ($_GET['add']))

      echo 
"<form action='edit_kid.php' method='post' name='formb' enctype=multipart/form-data>";
    echo 
"<p><label><strong>Fio:</strong></label></p><input name='fio' id='fio' value='' type='text' size='60'/>";
    echo 
"<p><label><strong>date_b:</strong></label></p><input name='date_b' id='date_b' value='' type='text' size='60'/>";
    echo 
"<p><label><strong>rost:</strong></label></p><input name='rost' id='rost' value='' type='text' size='60'/>";
    echo 
"<p><label><strong>vozrast:</strong></label></p><input name='vozrast' id='vozrast' value='' type='text' size='60'/>";
    echo 
"<p><label><strong>ves :</strong></label></p><input name='ves' id='ves' value='' type='text' size='60'/>";
    echo 
"<p><label><strong>color_g:</strong></label></p><input name='color_g' id='color_g' value='' type='text' size='60'/>";
    echo 
"<p><label><strong>color_v:</strong></label></p><input name='color_v' id='color_v' value='' type='text' size='60'/>";
    echo 
"<p><label><strong>about:</strong></label></p><input name='about' id='about' value='' type='text' size='60'/>";
    echo 
"<p><label><strong>logo:</strong></label></p><input type=file name=uploadfile>";
    echo 
"<p><input type='submit' name='submitadd' id='submitadd' value='Save' /></p></form>";
}

if (isset (
$_POST['submitadd']))
{
    if (isset (
$_POST['fio']) & isset ($_POST['date_b']) & isset ($_POST['rost']) & isset ($_POST['vozrast']) & isset ($_POST['ves']) & isset ($_POST['color_g']) &  isset ($_POST['color_v']) & isset ($_POST['about']))
    {
        
$fio $_POST['fio'];
        
$date_b $_POST['date_b'];
        
$rost $_POST['rost'];
        
$vozrast $_POST['vozrast'];
        
$ves $_POST['ves'];
        
$color_g $_POST['color_g'];
        
$color_v $_POST['color_v'];
        
$about $_POST['about'];
        
//file uploading
        
$uploaddir 'models/kid/';
        
$uploadfile $uploaddir.basename($_FILES['uploadfile']['name']);
        
$copy copy($_FILES['uploadfile']['tmp_name'], $uploadfile);
        if (
$copy =='true')
        
//if (copy($_FILES['uploadfile']['tmp_name'], $uploadfile))
        
{echo "File uploaded ";}    else { echo "<p> Error: ".$_FILES['uploadfile']['error']."</p> " ; }
        
$logo "models/kid/".$_FILES['uploadfile']['name'];
        
//-----        
        
$result4 mysql_query ("INSERT  INTO  `kid` (  `id` ,  `fio` ,  `date_b` ,  `rost` ,  `vozrast` ,  `ves` ,  `logo` ,  `color_g` ,  `color_v` ,  `about`  ) 
VALUES (  '',  '
$fio',  '$date_b',  '$rost',  '$vozrast',  '$ves',  '$logo',  '$color_g',  '$color_v',  '$about' )");
        if (
$result4 == 'true') {echo "<p>Saved</p>";}
        else {echo 
"<p>Not saved!".mysql_error()."</p>";}
    }



Воспользовался старой доброй $_FILES['uploadfilе']['error'] . Но If ($copy == 'true') грит что файл не подгрузился а код ошибки на выходе 0, как будто ошибок нет...и вот в чем дело не ясно...=\
думай как баг, действуй как баг, и ты найдешь баг )
mrgrudge вне форума Ответить с цитированием
Старый 08.10.2010, 10:03   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Проверьте права доступа к директориям,в которые ведётся запись файла - скорее всего дело именно в них,раз ошибки загрузки нет.
Права доступа должны позволять запись файлов в каталог.
CHMOD
Andkorol вне форума Ответить с цитированием
Старый 08.10.2010, 10:33   #3
mrgrudge
Форумчанин
 
Аватар для mrgrudge
 
Регистрация: 20.02.2010
Сообщений: 229
По умолчанию

изменил, везде проставил все галки, эффект 0
думай как баг, действуй как баг, и ты найдешь баг )
mrgrudge вне форума Ответить с цитированием
Старый 08.10.2010, 11:15   #4
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,624
По умолчанию

Ограничение размера файла проверяйте. Неплохо бы посмотреть логи сервера и php.
Стрелок-охотник
mv28jam вне форума Ответить с цитированием
Старый 08.10.2010, 11:20   #5
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

вместо
PHP код:
     $copy copy($_FILES['uploadfile']['tmp_name'], $uploadfile); 
PHP код:
 if (move_uploaded_file($_FILES['uploadfile']['tmp_name'],$uploadfile)) 
ADSoft вне форума Ответить с цитированием
Старый 08.10.2010, 12:25   #6
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
вместо
PHP код:
     $copy copy($_FILES['uploadfile']['tmp_name'], $uploadfile); 
PHP код:
 if (move_uploaded_file($_FILES['uploadfile']['tmp_name'],$uploadfile)) 
+1 вот к этому. Просто нужно было глянуть в мануал по PHP, но это ведь так сложно. Легче на форуме спросить.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Старый 08.10.2010, 15:30   #7
kpachbiu
взагрузке.рф
Форумчанин
 
Аватар для kpachbiu
 
Регистрация: 13.06.2010
Сообщений: 117
Радость

Здравствуте!

Дополнительно хотел посоветовать улучшить защиту Вашего скрипта. У вас в скрипте сплошные XSS и SQL-Injection!

Этот фрагмент

PHP код:
$fio $_POST['fio']; 
$date_b $_POST['date_b']; 
$rost $_POST['rost']; 
$vozrast $_POST['vozrast']; 
$ves $_POST['ves']; 
$color_g $_POST['color_g']; 
$color_v $_POST['color_v']; 
$about $_POST['about']; 
Заменить на
PHP код:
$fio mysql_real_escape_string(htmlspecialchars($_POST['fio'])); 
$date_b mysql_real_escape_string(htmlspecialchars($_POST['date_b'])); 
$rost mysql_real_escape_string(htmlspecialchars($_POST['rost'];)) 
$vozrast mysql_real_escape_string(htmlspecialchars($_POST['vozrast'])); 
$ves mysql_real_escape_string(htmlspecialchars($_POST['ves'])); 
$color_g mysql_real_escape_string(htmlspecialchars($_POST['color_g'])); 
$color_v mysql_real_escape_string(htmlspecialchars($_POST['color_v'])); 
$about mysql_real_escape_string(htmlspecialchars($_POST['about'])); 
Либо в самое начало страницы вставить следующий код:
(он защитить скрипт от XSS и SQL-inj)

PHP код:
foreach ($_GET as $key => $value) { 
$_GET[$key] = mysql_real_escape_string(htmlspecialchars($value)); 
}

foreach (
$_POST as $key => $value) { 
$_POST[$key] = mysql_real_escape_string(htmlspecialchars($value)); 

Взагрузке.рф - Файлы для людей
Ищу художника или веб-дизайнера для создания браузерной онлайн игры! icq 340-289-851
kpachbiu вне форума Ответить с цитированием
Старый 25.10.2010, 12:16   #8
mrgrudge
Форумчанин
 
Аватар для mrgrudge
 
Регистрация: 20.02.2010
Сообщений: 229
По умолчанию

что move_uploaded_file что copy
Код:
$uploaddir = '../images/';
$uploadfile = $uploaddir.basename($_FILES['uploadfile']['name']);
move_uploaded_file($_FILES['uploadfile']['tmp_name'], $uploadfile);
if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], $uploadfile))
{echo "Image added";}	else { echo "Image not added ".$_FILES['uploadfile']['error']." "; }
$img = "images/".$_FILES['uploadfile']['name'];

все равно на выходе "image not added 0"
самое забавное что..на там же сайте работает исправно вот этот скрипт:
Код:
$uploaddir = './membs/';
$uploadfile = $uploaddir.basename($_FILES['uploadfile']['name']);
copy($_FILES['uploadfile']['tmp_name'], $uploadfile);
if (copy($_FILES['uploadfile']['tmp_name'], $uploadfile))
{echo "";}else { echo ""; exit; }
$newava = "membs/".$_FILES['uploadfile']['name'];
единственная разница между ними в том, что второй скрипт лежит в корне и обращается к папке membs/ что тоже в корне, а второй лежит в в папке folder/upload.php и по идее тоже должен обращаться к папке в корне...
думай как баг, действуй как баг, и ты найдешь баг )

Последний раз редактировалось mrgrudge; 25.10.2010 в 16:01.
mrgrudge вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
imagecreatefrompng на денвере работает, на хостинге нет crystalbit PHP 2 24.12.2011 00:07
Не работает MessageBox нет реакции на нажатие кнопок Vladya Общие вопросы C/C++ 2 09.03.2010 13:29
Почему не работает тег align=right?valign работает а align нет! aviv HTML и CSS 5 21.01.2009 17:46
Работает на Висте а на ХР нет AidarBik Win Api 10 29.07.2008 11:00