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

Форум PHP

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

 

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

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

тема: как передать форму двум сайтам
 
 автор: smart   (08.11.2004 в 16:23)   письмо автору
 
 

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

на сайтах, которым я хочу передать данные, переданные данные будут обработаны. мне не важна страница, которую выдают эти сайты после выполнения их скриптов.

подскажите, пожалуйста, как это реализовать.

   
 
 автор: cheops   (08.11.2004 в 16:40)   письмо автору
 
   для: smart   (08.11.2004 в 16:23)
 

Вообще если обработчики принимают данные по методу POST, а не GET, то работать с ними будет затруднительно, если же обработка производится методом GET, тогда следует сформировать строки запроса, которые получаются на выходе форм и обратиться при помощи сокетов к двум сайтам http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=705&page=1 и сразу после обращения необходимо осуществить редирект на нужную страницу
<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php'>
</HEAD></HTML>

где index.php - страница вашего сайта, на которую необходимо перейти.

   
 
 автор: smart   (08.11.2004 в 20:08)   письмо автору
 
   для: cheops   (08.11.2004 в 16:40)
 

Мне нужно передать методом POST. Программа на сервере не хочет принимать данные GET'ом

   
 
 автор: cheops   (08.11.2004 в 20:29)   письмо автору
 
   для: smart   (08.11.2004 в 20:08)
 

Это нужно делать через сокеты примерно следующим образом
<?php
  
// Задаём порт
  
$service_port 80;
  
// Возвращаем адрес хоста
  
$address gethostbyname("localhost");

  
// Создаём сокет
  
$socket socket_create(AF_INETSOCK_STREAMSOL_TCP);
  if (
$socket 0)
  {
    echo 
"socket_create() завершилась неудачей: причина: " socket_strerror($socket) . "\n";
  }
  
// Соединяемся
  
$result socket_connect($socket$address$service_port);
  if (
$result 0)
  {
    echo 
"socket_connect()  завершилась неудачей: причина: ($result) " socket_strerror($result) . "\n";
  }

  
$in "POST /test/hello.php HTTP/1.1\r\n";
  
$in .= "Content-Lenght: 21\r\n\r\n";
  
$in .= "Host: localhost\r\n\r\n";
  
$in .= "hello Hello%20word";

  
// Отправляем заголовок
  
socket_write($socket$instrlen($in));

  
// Читаем данные из сокета
  
while ($out socket_read($socket2048))
  {
    echo 
$out;
  }

  
// Закрываем сокет
  
socket_close($socket);
?>


Код этот не работает, так как я так и не смог подобрать нужный HTTP-запрос в переменной $in. Суть в том, что параметры из формы (приведённый выше код аналог GET-запроса index.php?hello=Hello%20word), передаются после двух переводов строки после заголовков, но я не сумел с наскоку заставить это работать :((( - попробуйте повозиться, может у вас получится.

   
Rambler's Top100
вверх

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