2014-02-12 7 views
1

У меня есть форма, которая перенаправляет пользователя на «page1.php» после отправки формы. То, что я хочу сделать, - перенаправить пользователя на «page2.php» после отправки формы, но мне нужно убедиться, что был отправлен запрос POST. Пример:PHP Перенаправление на новую страницу после отправки формы

<form action="page1.php" method="POST"> 
<input type="text" name="username" /> 
<input type="text" name="age" /> 
<input type="submit" value="" /> 
</form> 

Когда пользователь нажимает кнопку «Отправить», он перенаправляет его на страницу 1.php. Я хочу перенаправить его на page2.php, но мне нужно убедиться, что данные отправляются на сервер. Я не могу использовать AJAX. Есть ли способ сделать это с помощью cURL или что-то в этом роде? Любые примеры?

Спасибо!

+0

Используйте условные операторы. –

+0

Используйте заголовок() для перенаправления –

+0

возможного дубликата [Изменить страницу после отправки формы с помощью javascript] (http://stackoverflow.com/questions/21703542/change-page-after-submitting-the-form-using-javascript) – czachor

ответ

0

В вашем процессоре 'page1.php добавьте' header 'перенаправление на' page2.php '.

header("Location: page2.php"); 
exit; 
+0

Это приведет к двойному перенаправлению. Отправить страницу -> Страница1 -> Страница 2. Это нужно сделать с 1 переадресацией. –

+0

Не уверен, что я понимаю, но если у вас есть только одна переадресация, тогда сделайте свое сообщение формы в 'form2.php', а затем в' form2.php', вы можете отправить информацию о форме в 'form1.php' через cURL и затем дождитесь ответа, сказав, что он был принят, прежде чем приступать к коду на 'form2.php'. – Quixrick

1

Вы можете проверить, если запрос POST был послан с чем-то вроде:

if($_SERVER['REQUEST_METHOD'] == 'POST') { 
    // do something... 
} 

Вы можете создать скрытый вход в форму и отправить дополнительную информацию о виде, который представлен, например, действие.

Внутри вы будете делать свою магию и перенаправлять пользователя с:

header('Location: page2.php'); 
exit(); 
0

вы могли бы сделать чек, если запрос завершен

пример

<?php 
$query=mysqli_query(".......your query statement")or trigger_error(mysqli_error()); 
if($query){ 
      header("Location:page2.php"); 
      } 
else{ 
    die('error'); 
    } 
?> 
2

Я предполагаю, что это работает !! В page1.php

<?php 
//do establish session 
//and check for the input fields obtained via $_POST 
if(isset($_POST['name_of_your_field']) && !empty($_POST['name_of_your_field'])){ 
    if(!mail($to,$subject,$message)){ 
     header('location:form.php?msg=error'); 
    }else{ 
     header('location:page2.php?msg=succes'); 
     } 
} 
?> 
0

В вашей ситуации, вы можете просто простая проверка на посланных данных. Как

$username = $_POST['username']; 
$age = $_POST['age']; 
if($username&&$age){ /* This is to check if the variables are not empty */ 
// redirect to page2 
} 

Логично, что если они не пусты, то есть они размещены. Даже если они пусты, до тех пор, пока вы туда доберетесь, это означает, что он был опубликован. Нет необходимости проверять, размещено или нет, то, что нужно проверить, было, если были опубликованы данные.

Надеюсь, я дал понять.^_ ^, но убедиться, что это совсем не плохо. Счастливый друг.

Смежные вопросы