Мне интересно, что это самый простой способ сделать, скажем, форму с кнопкой 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.) Я не говорю теперь о других языках сценариев.