Отправка заголовков и перенаправление

Slam

Новичок
Отправка заголовков и перенаправление

Есть некая форма, которую заполняет посетитель.
После нажатия на кнопку submit, форма проверяется на сервере.
Далее, если все ОК, данные некоторым образом модифицируюся.
После этого, пользователя нужно перенаправить на некий сайт и передать туда (методом POST) уже модифицированные данные для их окончательной обработки.

В чем состоит мой вопрос?
Перенаправить пользователя можно с помощью header(‘location:http://some-site.dom’), но тут нужно еще добавить заголовки с данными и header не подойдет, поскольку добавляет запись только в заголовок запроса.
Можно использовать сокеты, но как тогда перенаправить пользователя на нужную страницу и одновременно передать данные?

Подскажите, пожалуйста, как правильнее и красивее решить данный вопрос.
Заранее благодарю.
 

Slam

Новичок
Нужно проверить данные, введенные на одном сайте и если они корректные передать их на другой (через POST) и перекинуть туда посетителя.
Например,
http://some-shop.com/order/ - 1-й сайт (на нем проверяем)
и формируем данные для второго:
Код:
$for_post = array(
        		'cmd' 			=> '_xclick',
        		'business' 		=> $paypal_email,
        		'item_name' 	=> 'Shopping cart',
        		'item_number' 	=> $cart_id,
        		'amount' 		=> $order_total,
        		'no_shipping' 	=> 1,
        		'return' 		=> 'http://some-shop.com/order/payment/success/',
        		'rm' 			=> 2,
        		'cancel_return' => 'http://some-shop.com/order/payment/cancel/',
        		'currency_code' => $currency,
        		'notify_url' 	=> 'http://some-shop.com/order/payment/ipn/'
        	);
$postdata = "";
foreach ($for_post as $key=>$value) 
$postdata .= $key ."=". urlencode($value) . "&";
А теперь передаем на второй:
https://www.paypal.com/cgi-bin/webscr - 2-й, на котором будут происходить заказы в соответсвии с переданными на него данными

-~{}~ 21.10.07 00:58:

Подойдет ли такое:
Код:
header("заголовк с данными");
header("location:https://www.paypal.com/cgi-bin/webscr");
 

Major

Новичок
Slam

Загловки ты отдаешь браузеру. А просишь ты не заголовки отдать, а отдать данные на другой сервер. Учи матчасть!
 

mak_sim2001

Новичок
Тут в разделе статьи есть статья по PayPal там с примерами все есть в том числе как данные Палке передавать(даные постом передовавать) и на PayPal примеры скриптов есть, причем как это делать как с помощью Curl так и без

-~{}~ 22.10.07 00:34:

http://phpclub.ru/detail/article/paypal - это с использованием библиотеки curl, a на PayPal есть другой пример
 

Фанат

oncle terrible
Команда форума
все искатели поста с локейшеном не понимают одной простой вещи. что пост - это ЗАПРОС. а локейшен - это ОТВЕТ.
первое посылает браузер серверу, а второе - сервер браузеру.
 

Major

Новичок
mak_sim2001

Почитай что такое HTTP и с чем его едят! Когда ты пишешь header() ты формируешь заголовки ОТВЕТА!!! Браузер отослал пакет серверу. Сервер его прочитал и отдал ответный пакет. А ты хочешь отдать данные на другой сервер скриптом, а не ответ!!! Прочитай что такое сокеты, и изучи протокол HTTP. Чтобы послать пост скриптом на другой сервер, ты должен сформировать нужный HTTP пакет, а не заголовки отдать. Ты иницируешь соединение, а не тот сервер просит твой скрипт отдать ему пост. Твой скрипт в данном случае ведет себя как браузер. Учи матчасть...

-~{}~ 22.10.07 01:07:
Опа, пока писал ответ, ты стер свой пост. Круто...
 

mak_sim2001

Новичок
Из скрипта я должен открыть соеденение(fsockopen) с удаленной страницей(сервером) и послать ей нужный заголовок(HTTP пакет) видимо у меня слабо с терминологией, я чего пости и удалил ибо перечитал бред получился и не в тему.
 

Slam

Новичок
Я понимаю, что нужно передавать либо через socket либо с помощью curl.

Но как передать данные и с ними одновременно перейти.
Как-бы сэмулировать форму
<form action="some-host.com">
<!-- fields-->
</form>

При нажатии на сабмит мы перейдем на some-host.com и соответственно предадим ей данные.
 

Фанат

oncle terrible
Команда форума
mak_sim2001
меня поражает то упорство, с которым ты не перестаешь писать бред и стирать бред.
и сколько итераций у тебя еще запланировано?

Slam
Ты тоже в попугаи записался?
Думаешь, если 5 раз повторить дурацкий вопрос - он от этого умнее станет?
 

Pigmeich

Новичок
Ребята, если вам надо перенаправить клиента по другому url и одновременно заставить клиента передать дополнительную информацию по этому url, то:

направляйте его на url с GET аргументами. Если надо перетащить большие аргументы, попровите передать признак запроса и пусть другой сервер (ну или скрипт) запросить информацию у первого. Не передавайте через дополнительные соединения, потому что неизвестно кто прискачет на сервер раньше - вы или клиент, и прискачет ли клиент, вообще.

Если удалённый скрипт недоступен, а данные надо кидать по POST, то сделайте из скрипта веб-мостик и транслируйте общения клиента с сервером по нему.
 

fast2111

Новичок
А если задачу проверки данных и редиректа будет решать клиентский скрипт, а не php...
 

Michael_X

Новичок
Slam
тебе же ясно написали, что когда тебе приходят данные с формы через ПОСТ, ты их получаешь, формируеш запрос и отправляешь туда, куда тебе надо. либо через курл, либо через фсокетопен... даже ссылку на статью дали. перечитай статью, может поможет...

да, за одно не помешало бы разобраться с заголовками и как их вообще понимать, формировать и посылать клиенту/другому серверу
 

unnamed01

Новичок
Если оба сайта твоих, можно после отправки формы на первый обработать нужные данные и передать их плюс какой-то уникальный хэш на второй сайт. Данные и хэш сохраняем.
Этот уникальный хэш также передать клиенту, отправившему форму и редиректить его на второй сервер используя хэш, типа header('Location: http://site2.com/some_unique_hash').
Второй сервер получив хэш находит именно те данные, которые отправил этот клиент.
 
Сверху