Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Apache

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: multipart/form-data
 
 автор: dima2207   (08.05.2008 в 00:55)   письмо автору
 
 

Апач непринимает хттп запрос : multipart/form-data
список приемлемых запросов выданых пхп_инфо();

image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/xaml+xml, application/vnd.ms-xpsdocument, application/x-ms-xbap, application/x-ms-application, application/x-silverlight, */* 


подскажите где в хттпд.конф а главное что нужно прописать ? что-бы разрешить прием данных данного типа .
ато неработает аплоад на сервак .

   
 
 автор: dima2207   (08.05.2008 в 01:47)   письмо автору
 
   для: dima2207   (08.05.2008 в 00:55)
 

Когда я добавляю : AddType multipart/form-data
то никаких изменений , или сервак вооще незапускается . все зависит от места в конфиге где я прописываю !
кто-нить , че-нить подскажет ?

   
 
 автор: dima2207   (08.05.2008 в 02:24)   письмо автору
 
   для: dima2207   (08.05.2008 в 01:47)
 

Что никто незнает ? в чем тут дело ?
и почему в апаче 2.2.6 под винд все работает (по умолчанию) , а в апаче 2.0.62 под фрибсд 6.2 нехочет ?
я-б руки поодбивал этим линуксоидам что разрабатывали эту замороченую систему , нафига - ж так заморачиватся , все должно быть намного проще !!!
благо что она бесплатная , а-то никто-б вооще - б некупил !

   
 
 автор: sim5   (08.05.2008 в 03:31)   письмо автору
 
   для: dima2207   (08.05.2008 в 02:24)
 

А разве multipart/form-data это тип, это скорее способ передачи методом POST, а их всего три:
application/x-www-form-urlencoded
multipart/form-data
text/plain (только для mailto)
И в HTTP_ACCEPT я не разу не встречал multipart/form-data. Просто при таком способе передачи могут передаваться данные различных типов, которые и указаны в HTTP_ACCEPT. Путаница возможно из-за этого, например:

POST http://as.ru/as.htm HTTP/1.0\r\n 
.....
Content-Type: multipart/form-data; boundary=1\r\n
......
Content-Disposition: form-data; name="ash"\r\n\r\n
......
Content-Disposition: form-data; name="asfile"; filename="as.jpg"\r\n
Content-Type: application/octet-stream\r\n
......

Может быть у вас сервер просто не обрабатывает POST запросы?

   
 
 автор: dima2207   (08.05.2008 в 04:18)   письмо автору
 
   для: sim5   (08.05.2008 в 03:31)
 

да нет-же , обрабатывает , ведь данные из формы при авторизации проходят отлично .
даже простой пример http://softtime.ru/scripts/upload.php нифига неработает !

   
 
 автор: sim5   (08.05.2008 в 04:26)   письмо автору
 
   для: dima2207   (08.05.2008 в 04:18)
 

Ну тогда не знаю, что может быть причиной, и ошибок нет (если не заглушены только), и данных нет. Сделайте простую форму (отдельно), с одним полем ввода и полем file. Отправьте форму и сделайте вывод - print_r($_POST). Что в этом случае у вас будет в массиве?

   
 
 автор: dima2207   (08.05.2008 в 04:33)   письмо автору
 
   для: sim5   (08.05.2008 в 04:26)
 

куда уж проще чем в этом примере :http://softtime.ru/scripts/upload.php
а все равно неработает !

   
 
 автор: sim5   (08.05.2008 в 04:37)   письмо автору
 
   для: dima2207   (08.05.2008 в 04:33)
 

Там загрузка картинки, а я вас прошу передать не только картинку, но и значение любого поля. Если вы получите в массиве только значание поля, а поля типа file нет, то ищите причину в настройках РНР. Если вообще ничего не получите, тот тут причина глубже. Правда что такое может быть в кофиге Апача для этого... что-то не встречал (или не знаю этого).

   
 
 автор: dima2207   (08.05.2008 в 04:54)   письмо автору
 
   для: sim5   (08.05.2008 в 04:37)
 

короче , я понял , у меня непередаются данные в цги скрипт вот что пишет :

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, dima2207@gmail.com and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information 

хотя доступ стоит 0755 , да и сам тест скрипт запускается норма !

   
 
 автор: sim5   (08.05.2008 в 05:00)   письмо автору
 
   для: dima2207   (08.05.2008 в 04:54)
 

>непередаются данные в цги

Может быть © ЦАГИ ?)) Ну если поняли, пишите: dima2207@gmail.com - он вам ответит.)

   
 
 автор: dima2207   (08.05.2008 в 05:03)   письмо автору
 
   для: sim5   (08.05.2008 в 05:00)
 

гггггггггг , очень смешно !

   
 
 автор: dima2207   (08.05.2008 в 05:02)   письмо автору
 
   для: dima2207   (08.05.2008 в 04:54)
 

И ничего что пхпинфо у меня показывает :REQUEST_METHOD GET ?
может нужно исправить на пост ?

   
 
 автор: dima2207   (08.05.2008 в 05:11)   письмо автору
 
   для: dima2207   (08.05.2008 в 05:02)
 

вы мне подскажите пожалуйста что-нить дельное , что я еще непробовал .
а-то я впервые сталкиваюсь с этим линуксоидами , они наверное думали что создали что-то гениальное , так нет-же оцтой полный , вооще никуда негодится эта ось , достаточно взглянуть на КДЕ и конкуаер ! это-ж не браузер а пародия на браузер , там ниодин сайт норма неотображается !

   
 
 автор: sim5   (08.05.2008 в 05:21)   письмо автору
 
   для: dima2207   (08.05.2008 в 05:02)
 

Нет конечно, это так ваши страницы запрашиваются. Например
$_SERVER['REQUEST_METHOD'] - покажет какой тип запроса был к странице. А Линукса я нихтшиссен, чем там отличаются настройки, сказать не могу.

   
 
 автор: dima2207   (08.05.2008 в 05:32)   письмо автору
 
   для: sim5   (08.05.2008 в 05:21)
 

Я передаю данные такой формой :

<html>
<head>
  <title>Загрузка файлов на сервер</title>
</head>
<body>
      <h2><p><b> Форма для загрузки файлов </b></p></h2>
      <form action="upload.php" method="post" enctype="multipart/form-data">
      <input type="file" name="filename"><br> 
      <input type="submit" value="Загрузить"><br>
      </form>
</body>
</html>

ловлю их на той стороне , и нифига там нема !
Все дело в enctype="multipart/form-data"> потомучто просто пост работает !

   
 
 автор: sim5   (08.05.2008 в 05:37)   письмо автору
 
   для: dima2207   (08.05.2008 в 05:32)
 

Найдите хорошу инфую об установке сервера под Линукс или ждите ответа того, кто знает. Я даже затрудняюсь сказать, чем может Линукс влиять на какие-то установки (типа на стандартные по умолчанию), я не знаю его.

   
 
 автор: dima2207   (08.05.2008 в 05:39)   письмо автору
 
   для: sim5   (08.05.2008 в 05:37)
 

ок , ясно , значит вопрос остается открытым !

   
 
 автор: sim5   (08.05.2008 в 05:43)   письмо автору
 
   для: dima2207   (08.05.2008 в 05:39)
 

PS. Мне кажется, что дело не в парметрах РНР или Апача, а доступом (правами) папок (папки). Хотя может и не прав.

   
 
 автор: dima2207   (08.05.2008 в 06:32)   письмо автору
 
   для: sim5   (08.05.2008 в 05:43)
 

А я думаю что с правами все норма ( к тому-же я рекурсивно установил для всей папки права 0777),
а вот когда пытаюсь вывести :

<pre>
<?print_r('$_POST['filename']');?>
</pre>

То получаю :

Notice:  Undefined index:  filename in /usr/local/www/vhosts/filmi.in.ua/httpdocs/upload.php on line 2

выходит что неработает именно

enctype="multipart/form-data">

потомучто просто ПОСТ работает норма !

   
 
 автор: sim5   (08.05.2008 в 06:37)   письмо автору
 
   для: dima2207   (08.05.2008 в 06:32)
 

А не пробовали <?print_r('$_GET['filename']');?> ? Ну что вы издеваетесь (да и кавычки для чего у вас там)? print_r($_POST) - и вам будет показано, что в массиве есть ключ:
$_FILES['filename']['tmp_name'] - это временное имя загруженного на сервер файла в папку /tmp. Будут и дуругие ключи этого массива.

   
 
 автор: dima2207   (08.05.2008 в 06:50)   письмо автору
 
   для: sim5   (08.05.2008 в 06:37)
 

Прошу прощения , очепятка , конечно же без кавычек ! но это дела неменяет ,ошибка таже !никаких ключей нет .
непередается массив вооще !

   
 
 автор: sim5   (08.05.2008 в 06:55)   письмо автору
 
   для: dima2207   (08.05.2008 в 06:50)
 

Напишите точно, как вы принимаете пароль и логин, только без лишнего, а только то, как вы определяете переменные. То же самое напишите в случае передачи файла.

PS. А какое значение имеет параметр variables_order в вашем php.ini?

   
 
 автор: dima2207   (08.05.2008 в 07:02)   письмо автору
 
   для: sim5   (08.05.2008 в 06:55)
 

в случае с файлом смотрите выше ( я уже писал код),
а в случае с паролем :

<form name="fr1" action="<? print 'http://'.$_SERVER['SERVER_NAME'];?>" method="post">
..............
..............
</form>

вот такиим образом параметр пост попадает в индексный файл , где уже и обрабатывается !
.
variables_order = "GPCS"

   
 
 автор: sim5   (08.05.2008 в 07:13)   письмо автору
 
   для: dima2207   (08.05.2008 в 07:02)
 

Вообще-то значение по умолчанию: "EGPCS", обычно.
Я вас просил, не форму, а то как вы принимаете ее.

Снимается про путь, думал что напутано тут у вас. )

А что у вас с upload_tmp_dir ?

   
 
 автор: dima2207   (08.05.2008 в 07:24)   письмо автору
 
   для: sim5   (08.05.2008 в 07:13)
 

принимаю я пообычному :

<?php
//print $_POST['user_in'];
if (isset($_COOKIE['dvdcomua']) and isset($_COOKIE['dvdcomua1'])){
$result mysql_query("SELECT user_password FROM user 
WHERE user_login='"
.
mysql_escape_string ($_COOKIE['dvdcomua'])."'") or  die("Query failed :
 " 
mysql_error());;
$arResult mysql_fetch_array($result);
if (
md5($arResult['user_password'])==$_COOKIE['dvdcomua1'])
{
    
$_SESSION['user']=$_COOKIE['dvdcomua'];
}
}
if (isset(
$_POST['user_out']))
{
setcookie("dvdcomua");
mysql_query("UPDATE user SET user_status='0' 
WHERE user_login='"
.
mysql_escape_string (@$_SESSION['user'])."' ") or  die("Query failed : "
mysql_error());;
unset(
$_SESSION['user']);}
if (isset(
$_POST['user_in']))
{
$result mysql_query("SELECT user_password FROM user 
WHERE user_login='"
.
mysql_escape_string ($_POST['login'])."'"
or  die(
"Query failed : " mysql_error());;
$arResult mysql_fetch_array($result);
if (
$arResult['user_password']==$_POST['password'])
{
include(
'modules/date.php');
$fz="$_SERVER[REMOTE_ADDR]"."|"." в ".
$date." ".date('H:i:s')."#";
mysql_query("UPDATE user SET user_status='1' 
WHERE user_login='"
.mysql_escape_string ($_POST['login'])."' "
or  die(
"Query failed : " mysql_error());;
mysql_query("UPDATE user 
SET user_ip = CONCAT(user_ip, '"
.mysql_escape_string($fz)."') 
WHERE user_login = '"
.mysql_escape_string($_POST['login'])."'"
or die(
"Query failed : " mysql_error());
setcookie("dvdcomua"$_POST['login']);
setcookie("dvdcomua1"md5($_POST['password']));
$_SESSION['user'] =  $_POST['login'];
if (@
$_POST['remember']=='rem'){

setcookie("dvdcomua_name"$_POST['login'], time()+172576000);
            
setcookie("dvdcomua_pass",md5(md5($_POST['password'])), time()+172576000);

               }
                    }
    }
?>


ничего у меня ненапутано , просто форма у меня в индексном файле и тудаже инклюдится этот код проверки пользователя , как нистранно он работает !

   
 
 автор: sim5   (08.05.2008 в 07:30)   письмо автору
 
   для: dima2207   (08.05.2008 в 07:24)
 

Пишется - $_SERVER['REMOTE_ADDR'], если конечно это не ради декора.
Ну нафига все это, просто интересно знать, как вы получаете форму, остальное отошения не имеет.
Если я вас понял правильно, то передав (так как я вас просил ранее) вот такую (тестовую) форму:

<form action="" method="post" enctype="multipart/form-data">
<input type="text" name="as" value="text">
<input type="file" name="file">
<input type="submit" value="Sender">
</form>

вы выполнив print_r($_POST), получаете array(), и тишина...? Или вообще ничего не получаете?

   
 
 автор: dima2207   (08.05.2008 в 07:40)   письмо автору
 
   для: sim5   (08.05.2008 в 07:30)
 

>Пишется - $_SERVER['REMOTE_ADDR'], если конечно это не ради декора.
>Ну нафига все это, просто интересно знать, как вы получаете форму, остальное отошения не имеет.
>Если я вас понял правильно, то передав (так как я вас просил ранее) вот такую (тестовую) форму:
>

><form action="" method="post" enctype="multipart/form-data">
><input type="text" name="as" value="text">
><input type="file" name="file">
><input type="submit" value="Sender">
></form>
>

>вы выполнив print_r($_POST), получаете array(), и тишина...? Или вообще ничего не получаете?
выполнив print_r($_POST) получаю ошибку что переменная неопределена .

   
 
 автор: dima2207   (08.05.2008 в 07:36)   письмо автору
 
   для: dima2207   (08.05.2008 в 07:24)
 

;upload_tmp_dir ="/tmp/"
поумолчанию

   
 
 автор: sim5   (08.05.2008 в 07:41)   письмо автору
 
   для: dima2207   (08.05.2008 в 07:36)
 

Она вообще-то у вас она заремирована, да и пишется upload_tmp_dir =/tmp, если только вы не пользуетесь вложенной папкой еще какой либо, но ее почему тогда нет.
Добавьте переменные окружения в, variables_order = "EGPCS". И вы не ответили про print_r($_POST).

PS. Какая переменная не определена?

   
 
 автор: dima2207   (08.05.2008 в 08:02)   письмо автору
 
   для: sim5   (08.05.2008 в 07:41)
 

><form action="" method="post" enctype="multipart/form-data">
><input type="text" name="as" value="text">
><input type="file" name="file">
><input type="submit" value="Sender">
></form>



в данном случае будет неопределена переменная <?print_r($_POST['$file']);?>
Я - же писал сообщение об ошибке см. выше .

   
 
 автор: sim5   (08.05.2008 в 08:11)   письмо автору
 
   для: dima2207   (08.05.2008 в 08:02)
 

У меня уже крыша съехала, видимо. Вообще-то такой переменной как $_POST['$file'] и не должно быть, а должно:

<?
print '<pre>';
print_r($_POST);
print_r($_FILES);
print 
'<pre>';
?>

И такой результат, примерно:

Array
(
    [as] => text
)
Array
(
    [file] => Array
        (
            [name] => 02_moore_80.jpg
            [type] => image/pjpeg
            [tmp_name] => Z:\tmp\phpC.tmp
            [error] => 0
            [size] => 52084
        )

)

   
 
 автор: dima2207   (08.05.2008 в 08:23)   письмо автору
 
   для: sim5   (08.05.2008 в 08:11)
 

Ну да , все правельно .

   
 
 автор: sim5   (08.05.2008 в 08:31)   письмо автору
 
   для: dima2207   (08.05.2008 в 08:23)
 

Что правильно?

   
 
 автор: dima2207   (08.05.2008 в 08:50)   письмо автору
 
   для: sim5   (08.05.2008 в 08:31)
 

Фуууууууууу......... Жара!
думал что с ума сойду с этим апачем , а надо - было всего навсего указать точную тмп директорию !
спасибо вам сим5 ! вы действительно помогли мне разобратся что к чему !

   
 
 автор: sim5   (08.05.2008 в 08:58)   письмо автору
 
   для: dima2207   (08.05.2008 в 08:50)
 

В жару пить можно только воду, квас, можно кефир, но не более 3 процентной крепости.)

   
 
 автор: dima2207   (08.05.2008 в 08:59)   письмо автору
 
   для: sim5   (08.05.2008 в 08:58)
 

гггггггггггг , спасибо за совет ! учту !

   
 
 автор: Sergeich   (08.05.2008 в 10:42)   письмо автору
 
   для: dima2207   (08.05.2008 в 06:32)
 

>А я думаю что с правами все норма ( к тому-же я рекурсивно установил для всей папки права 0777),
>а вот когда пытаюсь вывести :
>

><pre>
><?print_r('$_POST['filename']');?>
></pre>
>

>То получаю :
>

>Notice:  Undefined index:  filename in /usr/local/www/vhosts/filmi.in.ua/httpdocs/upload.php on line 2
>

>выходит что неработает именно
>

>enctype="multipart/form-data">
>

>потомучто просто ПОСТ работает норма !

Вы наверно неделю не спали, ребята! Посмотрели бы хоть в каком файле ошибку выдает! К тому же скрипт и не может в данной ситуации выдать ошибку на файл отправки на сервер! Естественно, сразу же надо было воевать именно с принимающим пхп скриптом!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования