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

Форум PHP

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

 

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

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

тема: почему не работает POST-запрос?
 
 автор: fire_f12   (26.07.2007 в 22:16)   письмо автору
 
 

POST /gallery.php?view_img=1&id_img=13 HTTP/1.0 HOST: tltgalery Content-Type: application/x-www-form-urlencoded Content-Length: 95 color_c=%E7%E5%EB%E5%ED%FB%E9&description=++%0D%0A%F2%E5%F1%F2&add=%EE%F2%EF%F0%E0%E2%E8%F2%FC&

   
 
 автор: testdriver   (27.07.2007 в 01:27)   письмо автору
 
   для: fire_f12   (26.07.2007 в 22:16)
 

Что у тебя не работает данные не отправляются?
Похоже твой запрос:

POST /gallery.php?view_img=1&id_img=13 HTTP/1.0
HOST: tltgalery
Content-Type: application/x-www-form-urlencoded
Content-Length: 95
color_c=%E7%E5%EB%E5%ED%FB%E9&description=++%0D%0A%F2%E5%F1%F2&add=%EE%F2%EF%F0%E0%E2%E8%F2%FC&

не правильный.
Передаваемые данные надо писать в Post-запросе после двух переводов строки (\r\n\r\n) а не после одного как у тебя в приведенном примере. И к чему тут: "gallery.php?view_img=1&id_img=13" ты данные заодно еще и методом GET пытаешся передать? указывай их вместе со всеми остальными т.е. твой запрос должен выглядить вот так:


POST /gallery.php HTTP/1.0
Content-Type: application/x-www-form-urlencoded
host: tltgalery
Content-Length: 95

color_c=%E7%E5%EB%E5%ED%FB%E9&description=++%0D%0A%F2%E5%F1%F2&add=%EE%F2%EF%F0%E0%E2%E8%F2%FC&view_img=1&id_img=13

Только не забывай перевод строки в PHP-коде делать с помощтю символов (\r\n).

P.S. И Host у тебя в коде непойми как указан "tltgalery" - что за ерунда?

   
 
 автор: fire_f12   (27.07.2007 в 11:53)   письмо автору
 
   для: testdriver   (27.07.2007 в 01:27)
 

хост у меня локальный...
ок спасиб щас попробую, а разве нельзя передавать данные как зделано у меня, я имею в виду GET и POST, просто я раньше некогда не работал с header. Отснифал траф и зделал все по аналогии...

<?
$close
="Proxy-Connection: close \r\n\r\n";;
$method="GET";
$header="";
$header_post="";
if(!empty(
$_POST))
{
  
$method="POST";
  
$post_str="";
  
$close="";
  foreach(
$_POST as $key => $value)
  {
      
$post_str.=$key."=".urlencode($value)."&";
  }
  
$header_post="
  Content-Type: application/x-www-form-urlencoded \r\n
  Content-Length: "
.strlen($post_str)." \r\n\r\n
  
$post_str
  "
;
}
$host="tltgalery";
$port=80;
$action=$_SERVER['REQUEST_URI'];
$header.="$method $action HTTP/1.0 \r\n";
$header.="HOST: $host \r\n";
$header.=$header_post;
$header.=$close;

$tlt=fsockopen($host,$port,$errno,$errstr,30);
if(!
$tlt)echo $errno;
$line="";
fwrite($tlt,$header);
while(!
feof($tlt))
{
  
$line.=fgets($tlt1024);
}
//$line=substr($line,453);
$line=str_replace("src=images","src=http://$host/images",$line);
echo 
$line;
echo 
"<br>$header<br>";

?>

   
 
 автор: Trianon   (27.07.2007 в 12:07)   письмо автору
 
   для: fire_f12   (27.07.2007 в 11:53)
 

>ок спасиб щас попробую, а разве нельзя передавать данные как зделано у меня, я имею в виду GET и POST,

можно.

>просто я раньше некогда не работал с header. Отснифал траф и зделал все по аналогии...

пробелы перед символами завершения строки были в отснифанном фрагменте или это личное творчество?

   
 
 автор: fire_f12   (27.07.2007 в 12:22)   письмо автору
 
   для: Trianon   (27.07.2007 в 12:07)
 

))) личное творчество... исправил..\

   
 
 автор: Trianon   (27.07.2007 в 12:29)   письмо автору
 
   для: fire_f12   (27.07.2007 в 12:22)
 

А еще у Вас Proxy-Connection : Close улетело из заголовка в данные. Точнее - за данные. Тоже так и было?

   
 
 автор: fire_f12   (27.07.2007 в 13:30)   письмо автору
 
   для: Trianon   (27.07.2007 в 12:29)
 

Там же видно что если запрос передается методом POST то Proxy-Connection : Close вообще нет.. $close="";

   
 
 автор: fire_f12   (27.07.2007 в 13:51)   письмо автору
 
   для: fire_f12   (27.07.2007 в 13:30)
 

если ест у кого опыт написания скриптов обрабатывающих и перенапрвляющих запросы(прокси).. огромноя прозьба дайте пример.

   
 
 автор: Trianon   (27.07.2007 в 14:27)   письмо автору
 
   для: fire_f12   (27.07.2007 в 13:30)
 

Применяйте CURL. Ей-богу, проблем будет меньше.

   
 
 автор: fire_f12   (28.07.2007 в 17:08)   письмо автору
 
   для: Trianon   (27.07.2007 в 14:27)
 

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

   
 
 автор: Unkind   (28.07.2007 в 17:27)   письмо автору
 
   для: fire_f12   (28.07.2007 в 17:08)
 

как отправить файл
http://phpclub.ru/detail/article/http_request

возможно ли какнибудь на лету прочитать заголовки браузера в которых прописывается содержимое файла
Содержимое файла? Да, чтобы прочитать содержимое файла нужно скачать весь файл.

А чтобы считать, допустим, Content-type, Content-length нужно сделать HEAD-запрос к файлу и считать эти заголовки.

   
 
 автор: fire_f12   (28.07.2007 в 18:25)   письмо автору
 
   для: Unkind   (28.07.2007 в 17:27)
 

да... скрипт получается ужасно тягомотным в исполнение..... боже когда закзчики перестанут быт такими параноидальными, ну нах скажите мне делать скрипт который будет работать со скриптом на другом сервере??? и все это для того что бы не использовать одну бд... бред я понимаю НО ТАКАЯ ЗАДАЧА.... с одного хоста в зашифрованом виде передаются данные на другой там обрабатывабтся выдают страницу которая отправляется на другой хост.. брбр.. и это потому что ктото сказал что так надо ато не секурно...

   
 
 автор: fire_f12   (28.07.2007 в 21:53)   письмо автору
 
   для: fire_f12   (28.07.2007 в 18:25)
 

вот я и написал универсальную проксю которая работает с GET и POST, файлы передаются на ура... хых тока уш больно долгий путь))))))

<?
$close
="Connection: close\r\n\r\n";;
$method="GET";
$header="";
$header_post="";
if(!empty(
$_POST))
{
  
$method="POST";
  
$post_str="";
  
$close="";
  
$boundary="1BEF0A57BE110FD467A";
  foreach(
$_POST as $key => $value)
  {
      
$post_str.="--$boundary\r\n";
      
$post_str.="Content-Disposition: form-data; name=\"$key\"\r\n\r\n";
      
$post_str.="$value\r\n";
  }
  if(!empty(
$_FILES))
  {
    foreach(
$_FILES as $key => $value)
    {
        
//копируем файл на сервер и переотправляем его, на сервере должна быть создана папка для временного хранения файлов
        
$dir="tmp";
        
chmod($dir,0777);
        
$filename=$dir."/".$_FILES[$key]['name'];
        if(!
move_uploaded_file($_FILES[$key]['tmp_name'],$filename))
        exit(
"слишком большой файл");
        
chmod($filename,0777);
        
$open=fopen($filename,"r++");
        
$bufer=fread($open,filesize($filename));
        
fclose($open);
        
unlink($filename);
        
//
             
$key.$value;
             
$post_str.="--$boundary\r\n";
             
$post_str.="Content-Disposition: form-data; name=\"$key\"; filename=\"".$_FILES[$key]['name']."\"\r\n";
        
$post_str.="Content-Type: application/".$_FILES[$key]['type']."\r\n";
            
$post_str.="Content-Transfer-Encoding: binary\r\n\r\n";
            
$post_str.="$bufer\r\n";     
    }
  }
  
$post_str.="--$boundary--\r\n";
  
$header_post ="Content-Type: multipart/form-data; boundary=$boundary\r\n";
  
$header_post.="Content-Length: ".strlen($post_str)."\r\n\r\n";
  
$header_post.=$post_str;
}
$host="tltgallery.ru";
$port=80;
$action=$_SERVER['REQUEST_URI'];
$header.="$method $action HTTP/1.0\r\n";
$header.="HOST: $host\r\n";
$header.="Referer: http://tltlove.ru/index.html\r\n";
$header.=$header_post;
$header.=$close;

$tlt=fsockopen($host,$port,$errno,$errstr,30);
if(!
$tlt)echo $errno;
$line="";
fwrite($tlt,$header);
while(!
feof($tlt))
{
  
$line.=fgets($tlt1024);
}
$line=str_replace("images/","http://$host/images/",$line);
echo 
$line;
?>


для тех кто в теме, еслиесть сервер с кторым вы в рипе и у вас на нем есть хостинг)))))))) и если вдруг на нем allow_url_fopen = on on))) тода вы знаете как получить тонны холявного трафа))) на нашем серванте такая дырочка имеется))) но герои этой истории уже дано умерли и логи потерли)))

   
Rambler's Top100
вверх

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