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

Форум PHP

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

 

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

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

тема: Передача переменных скрипту методом POST без нажатия кнопки
 
 автор: ghostof   (14.02.2006 в 15:56)   письмо автору
 
 

Имеется набор переменных (полученных из значений полей формы другого файла), необходимо их передать удаленному скрипту методом POST без нажатия кнопки submit. Как это можно сделать? Своих знания не хватает :(


// Получаем из другого файла значение поля формы 
  $type = $_POST['type'];

// Нужно как-то передать $type удаленному скрипту методом POST

// Получаем файл для дальнейшего разбора
  $buffer = file_get_contents("http://www.xxx.com/search/"); 
?> 


В итоге должно быть: пользователь заполняет мою форму, нажимает submit, я отправляю запрос удаленному скрипту, получаю результат его работы, прогоняю его через парсер и показываю пользователю.

Буду очень признателен за любую помощь :)

   
 
 автор: Axxil   (14.02.2006 в 15:59)   письмо автору
 
   для: ghostof   (14.02.2006 в 15:56)
 

>POST без нажатия кнопки submit
и
>заполняет мою форму, нажимает submit,

Так как надо?
Надо бы определится, батенька :)

   
 
 автор: ghostof   (14.02.2006 в 16:16)   письмо автору
 
   для: Axxil   (14.02.2006 в 15:59)
 

нажимает submit на, так скажем, предыдущей странице, той с которой я получаю $type. виноват, нгаписал запутанно :)

   
 
 автор: cheops   (14.02.2006 в 16:21)   письмо автору
 
   для: ghostof   (14.02.2006 в 16:16)
 

Это осуществляется при помощи сокетов - подробности в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=1879

   
 
 автор: ghostof   (14.02.2006 в 17:44)   письмо автору
 
   для: cheops   (14.02.2006 в 16:21)
 

ок. пробую сделать как там описано:


<?php 
  $hostname 
"www.xxx.com"
  
$path "/cgi-bin/search";
  
$line ""
  
$fp fsockopen($hostname80$errno$errstr30); 
  if (!
$fp) echo "$errstr ($errno)<br />\n"
  else 
  { 
    
$data "type=".urlencode("V")."\r\n\r\n"
    
$headers "POST $path HTTP/1.1\r\n"
    
$headers .= "Host: $hostname\r\n"
    
$headers .= "Content-type: application/x-www-form-urlencoded\r\n"
   
$headers .= "Content-Length: ".strlen($data)."\r\n\r\n"
    
fwrite($fp$headers.$data); 
    while (!
feof($fp)) 
    { 
     
$line .= fgets($fp1024); 
    } 
    
fclose($fp); 
  } 
  echo 
$line
?> 


в итоге таймаут запроса. что может быть не так?

и еще сложный вопрос от чайника: как в этой строчке
$data = "type=".urlencode("V")."\r\n\r\n"; 
вместо фиксированного значения V прописать переменную. :)

   
 
 автор: cheops   (14.02.2006 в 20:30)   письмо автору
 
   для: ghostof   (14.02.2006 в 17:44)
 

>и еще сложный вопрос от чайника: как в этой строчке
>
$data = "type=".urlencode("V").""; 

>вместо фиксированного значения V прописать
>переменную. :)
Так и пишите
$data = "type=".urlencode($value).""; 

   
 
 автор: cheops   (14.02.2006 в 20:31)   письмо автору
 
   для: ghostof   (14.02.2006 в 17:44)
 

А где тестирует? Не может быть доступ закрыт фаерволом или ограничениями сервера?

   
 
 автор: ghostof   (15.02.2006 в 10:54)   письмо автору
 
   для: cheops   (14.02.2006 в 20:31)
 

ну в принципе заработало, но! все происходит БЕЗУМНО долго, амне еще парсить этот запрос. можно с этим что-то сделать?

   
 
 автор: cheops   (15.02.2006 в 14:00)   письмо автору
 
   для: ghostof   (15.02.2006 в 10:54)
 

Это из-за глюков Windows-версии, если скрипт будет запускаться на UNIX, всё будет шустрее.

   
 
 автор: ghostof   (15.02.2006 в 14:20)   письмо автору
 
   для: cheops   (15.02.2006 в 14:00)
 

мой сервер на юниксе, удаленный сервер - не знаю.

   
 
 автор: cheops   (15.02.2006 в 14:25)   письмо автору
 
   для: ghostof   (15.02.2006 в 14:20)
 

Попробуйте так же заменить HTTP/1.1 на HTTP/1.0

   
 
 автор: ghostof   (15.02.2006 в 17:24)   письмо автору
 
   для: cheops   (15.02.2006 в 14:25)
 

ай спасибо вам! пролетает на раз! :)

   
Rambler's Top100
вверх

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