[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Отправка данных через POST
SKIT54
Всем доброго времени суток!!!
Сначала краткое описание. Есть файл в нем храняться некоторые данные которые нужно послать по url пусть это будет http://some.url методом POST. Всё бы ничего, но!!! На этом http://some.url отправленные данные проверяются и идет редирект на другую страничку. При использовании curl получается фигня. В окно браузера вылезает часть файла в котором лежит отправка и часть http://some.url и редиректа не происходит. Может я что-то не так делаю..... Подскажите плиз как быть!?

Кратко говоря нужно отправить данные так, как будто форму отправляет пользователь и что бы дальше все редиректы шли как обычно и в окно браузера ничего не выводилось(непосредственно от соединения через curl).



// Задаем адрес удаленного сервера
$curl = curl_init('http://some.url');
// Передача данных осуществляется методом POST
curl_setopt($curl, CURLOPT_POST, 1);
// Задаем РОSТ-данные
$data ="log=".$user_login."&pwd=".$pwd."\r\n\r\n" ;
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_AUTOREFERER, true);
// Выполняем запрос
curl_exec($curl);
// Закрываем СURL-соединение
curl_close($curl);




Спустя 23 минуты, 5 секунд (19.11.2010 - 12:40) linker написал(а):
ob_start();
curl_exec($curl);
ob_end_clean();

Спустя 11 минут, 27 секунд (19.11.2010 - 12:51) SKIT54 написал(а):
Спасибо часть проблемы решилась. В окно браузера ничего лишнего не выходит, но адрес остается старый (файла с отправкой данных).
А мне нужно что бы ещё редирект был на http://some.url + отправка данных. Вообщем как с формы.

Такое возможно реализовать??

Спустя 11 минут, 20 секунд (19.11.2010 - 13:02) linker написал(а):
ob_start();
curl_exec($curl);
curl_close($curl);
ob_end_clean();
header('Location: http://some.url');
Но что-то мне подсказывает, что будут проблемы с куками.

Спустя 8 минут, 46 секунд (19.11.2010 - 13:11) SKIT54 написал(а):
Ага! Но это немного не то(( Смысл в том что бы после регистрации юзера логинело автоматом. Куки там проверяются, но я их вручную прописал хоть попробовать будет работать или нет.

Вообще тут 2 запроса получает в 1ом данные отправляются и потом уже редирек идет. А надо в 1.

Думал сделать форму с полями заполнеными. Но как отправить!??? В javascript есть такая штука как submitform() . Прошерстил гугл, а для php ничего похожего не нашел(( Может и не через curl делать?? Есть ещё варианты какие-нить??

Знаю есть socets, но это вроде тоже самомое в смысле результата....

Спустя 9 минут, 34 секунды (19.11.2010 - 13:21) linker написал(а):
Если с формой мутить, то
<form action="http://some.url" method="POST">
<input
type="submit">
</form>
Куки можно получить тем же курлом и записать перед редиректом, имхо.

Спустя 10 минут, 29 секунд (19.11.2010 - 13:31) SKIT54 написал(а):
Это то понятно, а как её засабмитить без участия пользователя???

Вообще суть: есть несколько полей в файле-обработчике. Надо их передать в другой файл обработчик POST ом с редиректом, без участи поляьзователя. (тупо отправить форму POSTом без пользователя). Банальная проблема кажется а такой геморой....((((

Можно как-нить на php реализовать??

Уже думаю javascript вставить, тока тогда на какое событие submitform поставить??

Спустя 3 минуты, 20 секунд (19.11.2010 - 13:34) linker написал(а):
<script>
function
submitform()
{
document.getElementById('myform').submit();
}
</script>
<body
onload="submitform()">
<form
id="myform" action="http://some.url" method="POST" style="display: none">
<input
type="text" name="login" value="sdsd">
<input
type="password" name="password" value="sdsd">
<input
type="submit">
</form>
Извращенство, но должно работать :)

Спустя 10 минут, 42 секунды (19.11.2010 - 13:45) SKIT54 написал(а):
Цитата (linker @ 19.11.2010 - 10:34)
<script>
function
submitform()
{
document.getElementById('myform').submit();
}
</script>
<body
onload="submitform()">
<form
id="myform" action="http://some.url" method="POST" style="display: none">
<input
type="text" name="login" value="sdsd">
<input
type="password" name="password" value="sdsd">
<input
type="submit">
</form>
Извращенство, но должно работать :)

Спасибо за помощь! Форма работает но всё всё равно чего-то не пашет(( Буду разбираться.

А то же самое на php нельзя было сделать??

Спустя 19 минут, 55 секунд (19.11.2010 - 14:05) linker написал(а):
Имена инпутов приведи просто к своему требованию. PHP - это curl, сокеты, т.е. как я написал редирект через header(), но тут с куками повозиться придется.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.