Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Передача из скрипта методом Post заголовками

428
13 ноября 2002 года
covex
49 / / 20.06.2000
Программисты PHP!!!!
Я не так давно задавал вопрос как из скрипта передать данные другому скрипту методом пост.
Модератор Joker, любезно написал как это можно сделать, и посоветовал поискать в форуме. Нашел сообщение http://forum.codenet.ru/showthread.php?s=&threadid=7055. Там описано как сделать передачу с помощью fsockopen.
Блин! Ну не работает у меня!!!.
Всем известно что данные передаются в заголовке HTTP. Ок, поставил снифер, выяснил как это дело передается, и написал аналог с помощью header:
<?php
header("POST http://www.сайт.ru/3.php HTTP/1.0");
header("Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, */*");
header("Referer: http://www.сайт.ru/2.php");
header("Accept-Language: ru");
header("Content-Type: application/x-www-form-urlencoded");
header("Proxy-Connection: Keep-Alive");
header("User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; URBrowser6r)");
header("Host: сайт.ru");
header("Content-Length: 12");
header("Pragma: no-cache\r\n");
header("numin=123456");
?>

Если запускаю непосредственно скрипт 2.php - предлагает сохранить или открыть 2.php Открываю - пустота. Ни какого перехода на 3.php
Помогите, 3 день бъюсь!!!!
250
14 ноября 2002 года
Joker
1.4K / / 20.02.2000
Цитата:
Originally posted by covex
Программисты PHP!!!!
Я не так давно задавал вопрос как из скрипта передать данные другому скрипту методом пост.
Модератор Joker, любезно написал как это можно сделать, и посоветовал поискать в форуме. Нашел сообщение http://forum.codenet.ru/showthread.php?s=&threadid=7055. Там описано как сделать передачу с помощью fsockopen.
Блин! Ну не работает у меня!!!.
Всем известно что данные передаются в заголовке HTTP. Ок, поставил снифер, выяснил как это дело передается, и написал аналог с помощью header:
<?php
header("POST http://www.сайт.ru/3.php HTTP/1.0");
header("Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, */*");
header("Referer: http://www.сайт.ru/2.php");
header("Accept-Language: ru");
header("Content-Type: application/x-www-form-urlencoded");
header("Proxy-Connection: Keep-Alive");
header("User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; URBrowser6r)");
header("Host: сайт.ru");
header("Content-Length: 12");
header("Pragma: no-cache\r\n");
header("numin=123456");
?>

Если запускаю непосредственно скрипт 2.php - предлагает сохранить или открыть 2.php Открываю - пустота. Ни какого перехода на 3.php
Помогите, 3 день бъюсь!!!!


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

428
14 ноября 2002 года
covex
49 / / 20.06.2000
Цитата:
Originally posted by Joker

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



Вот это самый насущьный вопрос. Вроде бы отправка идет, но нет перехода на эту страницу. Вот непосредственно текст скрипта (2.php)
$host="http://127.0.0.2";
$port=":80";
$path="/sms/3.php";
$abs_url="$host$port$path";
$ln=strlen($q);
#создаем запрос самое сложное и ответсвенное.
$query="POST $abs_url HTTP/1.1\r\n".
"Host $host$port \r\n".
"Referer $host$port \r\n".
"Content-Type application/x-www-form-urlencoded\r\n".
"Content-Length ".$ln."\r\n".
"User-agent PHP/class http 0.1\r\n".
"\r\n"."$q";
#открываем соединение с сервером
$fp=fsockopen("127.0.0.2",80);
#если соединение не удачное возвращает false
if(!$fp)
echo "<table><tr><td>Че то не срослось...</td></tr></table>";
#отправить запрос
fputs($fp,$query);
echo $q;


$q показывается непосредственно в 2.php, а как перейти на скрипт 3.php вместе с данными?

250
14 ноября 2002 года
Joker
1.4K / / 20.02.2000
1)Попробуй вот так сокет юхать:
$fp=fsockopen($conn_host,$conn_port,$errorno,$errstr,10);
2) второй скрипт, туда все должно отсылаться..
428
14 ноября 2002 года
covex
49 / / 20.06.2000
Цитата:
Originally posted by Joker
1)Попробуй вот так сокет юхать:
$fp=fsockopen($conn_host,$conn_port,$errorno,$errstr,10);
2) второй скрипт, туда все должно отсылаться..


Результат тот же: ошибок нет, переменная q выводится в 2.php, перехода к 3.php не осуществляется.

250
14 ноября 2002 года
Joker
1.4K / / 20.02.2000
Цитата:
Originally posted by covex

Результат тот же: ошибок нет, переменная q выводится в 2.php, перехода к 3.php не осуществляется.


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

428
14 ноября 2002 года
covex
49 / / 20.06.2000
Цитата:
Originally posted by Joker

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


Ok.
Схема движения данных:
Форма(HTML)->PHP скрипт -> URL (другой конторы)

1.В форме заполняются некоторые поля и методом пост передаются в скрипт PHP.
2. Скрипт преобразует полученные данные шифрует по MD5 и т.п.
3. Преобразованные данные должны передаться методом пост на чужой URL.

Клиент должен видеть только форму и в последующем попасть на URL с преобразованными данными.

Я конечно могу сделать промежуточную форму и данные поместить в поля типа hiden, но они становятся видны для новичка изучающего HTML, а это не хорошо.
Методом гет нельзя - условие удаленного URL (платежная система)
Вот такая задача стоит.

250
14 ноября 2002 года
Joker
1.4K / / 20.02.2000
Цитата:
Originally posted by covex

Ok.
Схема движения данных:
Форма(HTML)->PHP скрипт -> URL (другой конторы)

1.В форме заполняются некоторые поля и методом пост передаются в скрипт PHP.
2. Скрипт преобразует полученные данные шифрует по MD5 и т.п.
3. Преобразованные данные должны передаться методом пост на чужой URL.

Клиент должен видеть только форму и в последующем попасть на URL с преобразованными данными.

Я конечно могу сделать промежуточную форму и данные поместить в поля типа hiden, но они становятся видны для новичка изучающего HTML, а это не хорошо.
Методом гет нельзя - условие удаленного URL (платежная система)
Вот такая задача стоит.


понял тогда делаешь все также как и делал с сокетами только добавляешь еще это:
while(trim(fgets($fp,1024))!="");
print"<BASE HREF=\"http://сайт/патч/\">

";
fpassthru($fp);

300
14 ноября 2002 года
ReDrum
689 / / 20.04.2000
а вот на перле можно пользоваться этим
http://search.cpan.org/author/GAAS/libwww-perl-5.65/lib/LWP.pm
;)=
250
14 ноября 2002 года
Joker
1.4K / / 20.02.2000
Цитата:
Originally posted by ReDrum
а вот на перле можно пользоваться этим
http://search.cpan.org/author/GAAS/libwww-perl-5.65/lib/LWP.pm
;)=


а вот на пхп все работает как я описал.. :)) И никаких черных ящиков, что полезно для мозгов.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог