php, с использованием той же страницы после отправки

Мне интересно, что это самый простой способ сделать, скажем, форму с кнопкой user / pass и submit с php, но после отправки она возвращается на ту же страницу, а не переходит на другую страницу php.

Я думаю о if / else, но немного запутался, как установить его после того, как много попыток, но до сих пор не получил желаемого результата

странно, я сделал все, что вы, ребята, сказал, прежде чем я отправил … но …>. <« скажем, просто что-то вроде этого …

но я также хочу установить, если ничего не будет введено, тогда sumbit будет нажата, там будет ошибка …. должно быть что-то легкое, но я не знаю, почему я не могу понять это

<?php function userPass() { echo "<form method='post' action=" . $_SERVER['PHP_SELF'] . ">"; echo "<input type='text' name='user' /><br/>"; echo "<input type='text' name='pass' /><br/>"; echo "<input type='submit' value='Login' />"; } if(empty($_POST["user"])) { userPass(); } if(!(empty($_POST["user"]))) { if($_POST["user"] == "comp") { echo "Welcome comp"; } else { echo "Wrong user"; } } ?> 

Другие ответы правильные; вам нужно только отправить пользователя обратно на свою текущую страницу в свойстве « action ». Вы можете проверить, сделали ли они это, используя « isset ».

Что-то, что меня удивило, еще не упоминалось, так это то, что ваш вклад не подвергается санированию, и вы настраиваете себя на катастрофу. Огромная инъекционная уязвимость в вашем атрибуте действия:

 $_SERVER['PHP_SELF'] 

Если вы не сделаете это, то кто-то может просто изменить URL-адрес, который они видят, и ваш плохой PHP-скрипт не будет знать ничего лучше, чем обрабатывать его как вашу константу SELF .

Другими словами, вы абсолютно должны использовать функцию htmlspecialchars() для html-encode этого параметра. При этом ваше action должно больше походить на htmlspecialchars($_SERVER['PHP_SELF']) .

если текущая страница – index.php, используйте index.php в теге формы как значение действия.

как это:

 <form action="index.php" method="post"> </form> 

u можете проверить представленную форму, поставив:

 if(isset($_POST)){ ... } 

наверху страницы

Просто используйте синтаксис ниже

 <form method="post" action=""> 

Вы можете проверить, установлен ли пост, используя метод isset ().

 <?php function userPass() { echo "<form method='post' action=" . $_SERVER['PHP_SELF'] . ">"; echo "<input type='text' name='user' /><br/>"; echo "<input type='text' name='pass' /><br/>"; echo "<input type='submit' value='Login' />"; } if(empty($_POST["user"])) { userPass(); } *if(!(empty($_POST["user"])))* { if($_POST["user"] == "comp") { echo "Welcome comp"; } else { echo "Wrong user"; } } ?> 

Эта часть вашего кода неверна, вы должны ввести: if (! Empty ($ _ POST ["user"]))

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

 <?php if (!isset($_POST['submitform'])) { } else { $_SESSION['firstname'] = $_POST['firstname']; $_SESSION['lastname'] = $_POST['lastname']; $_SESSION['email'] = $_POST['email']; $_SESSION['mobile'] = $_POST['mobile']; $_SESSION['telephone'] = $_POST['telephone']; $_SESSION['place'] = $_POST['place']; $_SESSION['street'] = $_POST['street']; $_SESSION['housenumber'] = $_POST['housenumber']; $_SESSION['gender'] = $_POST['gender']; if (empty($_POST['firstname']) or empty($_POST['lastname']) or empty($_POST['email']) or empty($_POST['mobile'])or empty($_POST['telephone']) or empty($_POST['place']) or empty($_POST['street']) or empty($_POST['housenumber']) or !isset($_POST['gender'])) { echo "Sending denied"; } else { require 'database.php'; header('Location: succes.php'); } ?> 

Надеюсь, это полезная информация для вас.

Вы можете указать в представлении формы:

 <form method=get action=index.php > 

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

  <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> 

Именно так вы работаете с вашей формой, чтобы перезагрузить страницу, нажав кнопку отправки внутри этой формы.

ДОПОЛНИТЕЛЬНО: добавьте required для всех входных данных, которые вам нужны, или проверьте, является ли он пустым.

этот код поможет вам

 <form action="<?= $_SERVER['REQUEST_URI'] ?>" method="post"> 

или вы могли бы просто сделать это:

 <form action="" method="post"> 

Спасибо ….

Я думаю, что все упустили фактический вопрос, то есть, если есть способ остаться на одной странице после отправки формы. Ответ НЕТ . После того, как вы отправите форму – используете ли вы метод POST или GET и, конечно, предположите, что используете $ _SERVER ['PHP_SELF'] или пустое действие и т. Д. – новая страница открывается автоматически . Это, по крайней мере, для PHP. (Я пробовал много разных способов с помощью XAMPP.) Я не говорю теперь о других языках сценариев.