Отправить перенаправление на текущий URL с разными переменными GET - PullRequest
0 голосов
/ 07 мая 2020

У меня есть форма в файле с именем SignUpForm.php, когда она отправляется, страница перенаправляется на URL http://localhost/MySite/Includes/SignUp.php?step=1, а в файле SignUp.php у меня есть 3 формы, каждая форма отображается только с соответствующим ему значением ?step=x. В первой форме (та, которая отображается с ?step=1) у меня есть следующий код

if(isset($_GET['step']) === true && empty($_GET['step']) === false){
        if(isset($_POST['SignUpStep1Submit'])) {
                // some code here
                header('Location: SignUp.php?step=2');
        }

// forms displaying codes with the $_GET['step'] conditions

Итак, проблема в том, что я хочу отправить первую форму, чтобы она перенаправляла меня в тот же файл .php, но с? step = 2 после выполнения предыдущего кода, и когда я отправляю форму, я получаю http://localhost/MySite/Includes/SignUp.php ... переменная step не установлена, и код в //some code here не выполняется вообще, все он перенаправляет меня на SignUp.php без значения ?step, оставляя меня с пустой страницей

1 Ответ

0 голосов
/ 07 мая 2020

Почему бы вам просто не изменить действие формы, включив в него переменную шага, чтобы для формы 1 действие было

<form name="form1" action="/signup.php?step=2" method="post"></form>

для формы 2 было бы

<form name="form2" action="/signup.php?step=3" method="post"></form>

Чтобы проверить правильность значений формы перед ее отправкой, вы можете использовать атрибуты pattern и required, например,

<input name="firstname" pattern=".{3,}" required title="Your first name should be at least 3 characters long">

<input name="city" pattern=".{1,30}" required title="The country field shouldn't be more than 30 characters">

required проверяет, заполнены ли поля ввода.

pattern использует шаблоны регулярных выражений для проверки типа значения, которое было заполнено против ... шаблона. Дополнительная информация здесь: https://www.w3schools.com/tags/att_input_pattern.asp

...