PHP или Ajax, как перенаправить на другую страницу

Acden

Старатель
Регистрация
12 Янв 2008
Сообщения
201
Реакции
12
В развитие Для просмотра ссылки Войди или Зарегистрируйся немного в другое русло


Как перенаправить пользователя на другую страницу методами PHP или Ajax'а?

Суть: скрипт получает данные, обрабатывает их и затем отправляет пользователя на другую страницу, передав ей данные методом POST.


Вроде несложный вопрос, а додуматься не могу. cUrl не подходит, тк он оставляет пользователя на моем домене, а "другая страница" требует перехода на ее адрес.
 
В развитие Для просмотра ссылки Войди или Зарегистрируйся немного в другое русло
Как перенаправить пользователя на другую страницу методами PHP или Ajax'а?
Суть: скрипт получает данные, обрабатывает их и затем отправляет пользователя на другую страницу, передав ей данные методом POST.
Вроде несложный вопрос, а додуматься не могу. cUrl не подходит, тк он оставляет пользователя на моем домене, а "другая страница" требует перехода на ее адрес.
просто делаешь форму со скрытыми полями, а затем отправляешь ещё посредством js
HTML:
<form method="POST" id="my_form" action="/script.php">
<input type="hidden" name="T1" value="xxxxx">
<input type="hidden" name="T3" value="xxxxx">
<input type="hidden" name="T2" value="xxxxx">
</form>

<script>
// как только загрузится страница- отправимм её
$(function(){
$("#my_form").submit();
});
</script>
 
То есть я вначале скрипта php делаю нужную мне обработку переменных $_POST,
затем кодом php формирую страницу
<body>
<форма>...
</body>
<script>
здесь делаю сабмит на загрузку
</script>


И она сразу пошла перенаправляться?
 
То есть я вначале скрипта php делаю нужную мне обработку переменных $_POST,
затем кодом php формирую страницу
<body>
<форма>...
</body>
<script>
здесь делаю сабмит на загрузку
</script>
И она сразу пошла перенаправляться?
Ну, в целом да, хотя описано не так чтобы точно-
просто ты отправляешь форму с пост данными (если особых параметров не задано, что нужно открывать обязательно в новом окне) то браузер направляет тебя и все данные в форме по адресу в action="/script.php". Тебе нужно просто сформировать все данные. с помощью формирования инпутов - <input type="hidden" name="T2" value="xxxxx"> Обрабатываться они будут там куда отправил
 
А страницу, заголовки (head), обязательно выводить?

или достаточно будет блока <body> ?
 
да, лучше вывести. и про скрипты не забуть- я привёл пример на jquery. тебе же не надо его подключать из одной такой фичи. используй
HTML:
<body onload="document.getElementById('my_form').submit();">
 
Так, почти получилось, но нет автоперехода:

PHP:
echo "<body onload=\"document.getElementById('my_form').submit();\">";
echo "<form action='http://www.site.ru' method='post' name='my_form' id='my_form'>";
echo "<input type='text' name='param1' value='$val1'>";
echo "<input type='text' name='param2' value='$val2'>";
echo "<input type='submit' name='submit' value='Продолжить'>";
echo "</body>";


Или вот выводится на страницу:
HTML:
<body onload="document.getElementById('my_form').submit();">
<form action='http://www.site.ru' method='post' name='my_form' id='my_form'>

<input type='text' name='param1' value='value1'>
<input type='text' name='param2' value='value2='>
<input type='submit' name='submit' value='Продолжить'>
</body>



Всё, победил! Нельзя было submit-у давать имя с зарезервированным словом (name=submit) :)
ну и плюс форму закрыть. Head решил не делать – думаю что незачем он.

Огромная благодарность KillDead, реально помог – уже второй день до 5 утра сижу, наконец, заработало. А то я всё через Ajax, cURL пытался – сервер не принимал такую переадресацию.
 
if (redirect) self.location = 'http://ya.ru';
//javascript
 
Назад
Сверху