Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Перенаправление


Автор: R.M. 24.11.2005, 10:36
Хотел спросить совета, как сделать.
Задача такая - есть скрипт, который обрабатывает форму (регулярки) находится он на одной странице с формой и показывает какие ошибки и есть скрипт (чужой) на который должны отсылаться данные если все поля заполнены правильно.
Вот у меня проблема как сделать чтобы если все поля правильные данные отсылались на другой скрипт а не на этот же smile

Автор: HalkaR 24.11.2005, 11:31
Просто после проверки в скрипте проверки вставляешь это, где в качестве пар data=>value вставляешь данные полученные из формы.
Код

header("Location: script.php?data1=valu1&data2=value2");

Как я понимаю тебе это надо?

Автор: AntonioBanderaz 24.11.2005, 13:17
Как я понял у тя другой скрипт, находится на др сервере?
Заюзай сокеты.
Код

function send2anotherScript($data, $host, $file) {
        $Request = 'POST '.$file.' HTTP/1.1
Host: '.$host.'
Content-Type: application/x-www-form-urlencoded
Content-Length: '.(strlen($data)+3)."
 
".$data;
        $remote = fsockopen($host, 80);
        fwrite($remote, $Request);
        $Response = '';
        while (!feof($remote))
        {
            $Response .= fread($remote, 1024);
        }
        fclose($remote);
                  return $Response;
}


В дату Ты передаешь что-то вроде STR=askjdfgjkdsf&STR1=gfhgfhgfhgfhgfh
В хост адрес сервера на который ты данные передаёшь пр localhost
В файл адрес файла относительно корня сервера пр /file.php

Автор: Mal Hack 24.11.2005, 16:28
Сокеты тут не помогут, т.к. заголовков rfc для отправки POST данных он не знает и не напишет.
Лучше в данном случае http://php.net/curl

Автор: patt 24.11.2005, 18:48
Конечно изврат, он тоже вариант.....

<?
if(isset($_POST['mess1']))
{
//provero4ka
<form name='redir' method='post' action='somescript.php'>
<input type='hidden' name='mess1' value='".$_POST['mess1']."'>
<input type='hidden' name='mess2' value='".$_POST['mess2']."'>
</form>
<script>
document.redir.submit();
</script>
";
}
?>

<form method='post'>
<input name='mess1'>
<input name='mess2'>
<input type='submit'>
</form>

Автор: AntonioBanderaz 24.11.2005, 18:53
Цитата(Mal @ 24.11.2005, 16:28)
Сокеты тут не помогут, т.к. заголовков rfc для отправки POST данных он не знает и не напишет.

Так пускай посмотрит, какие заголовки передаёт чужой скрипт, и просто скопирует?

Автор: Mal Hack 24.11.2005, 18:58
Цитата(AntonioBanderaz @ 24.11.2005, 18:53)
Так пускай посмотрит, какие заголовки передаёт чужой скрипт, и просто скопирует?

Не получится... Ему же придется ручками генерить HTTP запрос полностью... Я не хочу принизить его достоинства, но человек с этим сейчас не справится, а curl это уже может сам сделать

Автор: PARROT 24.11.2005, 18:58
patt, на досуге почитайте правила форума и всегда для размещения своего кода, пользуйтесь кнопкой КОД.

Автор: R.M. 25.11.2005, 10:26
Отправлять данные на другой сервак надо с такимиже именами как и в моей форме.

Mal Hack
Почитаю про curl попожже, сейчас нет времени.
Достоинство ты моё не унизил, я ж тока учусь smile
А ты не мог бы рассказать в крациях зачем curl нужна

Автор: -=Ustas=- 25.11.2005, 11:45
Куксикус
Цитата

PHP поддерживает libcurl, библиотеку, созданную Daniel'ом Stenberg'ом, которая даёт возможность соединяться с серверами различных типов и по разным протоколам.
libcurl в настоящее время поддерживает протоколы http, https, ftp, gopher, telnet, dict, file и ldap.
libcurl также поддерживает сертификаты HTTPS, HTTP POST, HTTP PUT, загрузку по FTP (это можно сделать также РНР-расширением ftp), загрузку на основе форм HTTP, прокси, куки и аутентификацию user+password.

на php.net достаточно чётко описано ;)

Автор: Mal Hack 25.11.2005, 21:09
Цитата
А ты не мог бы рассказать в крациях зачем curl нужна

Теже сокеты, но с встроенными протоколами. Т.е. тебе не надо все запросы ручками писать. Надо просто указать соединению параметры и значения. А он сам уже заголовки составит и отправит.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)