Я хочу разместить как регистрационную форму, так и логин на той же странице.
Оба они начинаются с:
if (!empty($_POST)) ...
поэтому мне нужно что-то вроде:
if (!empty($_POST_01))... // regForm and if (!empty($_POST_02))... //loginForm
Также как предотвратить выполнение первой формы, если вторая занята, и наоборот (пользователь нажимает на оба)
Моя идея – создать простую переменную при запуске процесса, например $x = 1
и в конце процесса $x = 0
, так что:
if ((!empty($_POST_01)) And $x = 0)...
Наверное, есть лучший способ.
Вы можете сделать две формы с двумя разными действиями
<form action="login.php" method="post"> <input type="text" name="user"> <input type="password" name="password"> <input type="submit" value="Login"> </form> <br /> <form action="register.php" method="post"> <input type="text" name="user"> <input type="password" name="password"> <input type="submit" value="Register"> </form>
Или сделайте это
<form action="doStuff.php" method="post"> <input type="text" name="user"> <input type="password" name="password"> <input type="hidden" name="action" value="login"> <input type="submit" value="Login"> </form> <br /> <form action="doStuff.php" method="post"> <input type="text" name="user"> <input type="password" name="password"> <input type="hidden" name="action" value="register"> <input type="submit" value="Register"> </form>
Затем PHP-файл будет работать как переключатель ($ _ POST ['action']) … кроме того, они не могут одновременно нажимать на обе ссылки или делать одновременный запрос, каждый из которых представляет собой отдельный запрос.
Затем ваш PHP продолжит работу с логикой коммутатора или будет иметь разные php-файлы, выполняющие процедуру входа в систему, а затем процедуру регистрации
Хорошо, что каждая форма может перейти на другую страницу. (что предпочтительнее)
Или другое значение для определенных входных и базовых сообщений:
switch($_POST['submit']) { case 'login': //... break; case 'register': //... break; }
Дайте кнопкам отправки для обеих форм разные имена и используйте PHP, чтобы проверить, какая кнопка отправила данные.
Форма одной кнопки – btn1 Форма две кнопки -btn2
Код PHP:
if($_POST['btn1']){ //Login }elseif($_POST['btn2']){ //Register }
Надеюсь, что это поможет вам. Предполагается, что форма входа в систему имеет: имя пользователя и пароль.
if(isset($_POST['username']) && trim($_POST['username']) != "" && isset($_POST['password']) && trim($_POST['password']) != ""){ //login } else { //register }