Передача из скрипта методом Post заголовками
Я не так давно задавал вопрос как из скрипта передать данные другому скрипту методом пост.
Модератор 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 день бъюсь!!!!
Программисты 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 тебя отправят погулять (читай описание), А в чем ссокетами проблема , там вроде нет сложносьей ??
Так как ты хочешь так нельзя, после первого 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 вместе с данными?
$fp=fsockopen($conn_host,$conn_port,$errorno,$errstr,10);
2) второй скрипт, туда все должно отсылаться..
1)Попробуй вот так сокет юхать:
$fp=fsockopen($conn_host,$conn_port,$errorno,$errstr,10);
2) второй скрипт, туда все должно отсылаться..
Результат тот же: ошибок нет, переменная q выводится в 2.php, перехода к 3.php не осуществляется.
Результат тот же: ошибок нет, переменная q выводится в 2.php, перехода к 3.php не осуществляется.
Переход и не должен быть ты отсылаешь данные скрипту который их просто обрабатывает..,
Какая твоя цель точно опиши..
Переход и не должен быть ты отсылаешь данные скрипту который их просто обрабатывает..,
Какая твоя цель точно опиши..
Ok.
Схема движения данных:
Форма(HTML)->PHP скрипт -> URL (другой конторы)
1.В форме заполняются некоторые поля и методом пост передаются в скрипт PHP.
2. Скрипт преобразует полученные данные шифрует по MD5 и т.п.
3. Преобразованные данные должны передаться методом пост на чужой URL.
Клиент должен видеть только форму и в последующем попасть на URL с преобразованными данными.
Я конечно могу сделать промежуточную форму и данные поместить в поля типа hiden, но они становятся видны для новичка изучающего HTML, а это не хорошо.
Методом гет нельзя - условие удаленного URL (платежная система)
Вот такая задача стоит.
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);
а вот на перле можно пользоваться этим
http://search.cpan.org/author/GAAS/libwww-perl-5.65/lib/LWP.pm
;)=
а вот на пхп все работает как я описал.. :)) И никаких черных ящиков, что полезно для мозгов.