Как я могу оставаться на той же странице, когда нажимаю кнопку отправить?

#php #html #error-handling

#php #HTML #обработка ошибок

Вопрос:

У меня есть PHP-файл под названием index.php , внутри этого файла я создал две формы: одну для входа, а другую для регистрации. Если URL = index.php или index.php?form=login ; Я нахожусь в форме входа в систему, и если URL = index.php?form=signup ; Я нахожусь в форме регистрации. В форме регистрации, когда я нажимаю кнопку отправить, она возвращается в форму входа, даже если в форме регистрации есть ошибки(пустые поля…). Теперь, если я нажал на кнопку «Отправить» в форме регистрации; Я хочу остаться на той же странице(форма регистрации).

index.php :

 lt;?php  require "init.php";    // check for the form (login / signup)  $form = isset($_GET['form']) ? $_GET['form'] : "login";    // set the title acording to form  if($form == "login"){    $page_title = "Login";  }  else if($form == "signup"){  $page_title = "Create New Account";  }    $error = "";   if(isset($_POST['signup'])){  $username = $_POST['username'];   if(empty($username)){  $error = "username is required";  }  }  ?gt;  lt;!DOCTYPE htmlgt; lt;html lang="en"gt;  lt;headgt;  lt;meta charset="UTF-8"gt;  lt;meta http-equiv="X-UA-Compatible" content="IE=edge"gt;  lt;meta name="viewport" content="width=device-width, initial-scale=1.0"gt;  lt;titlegt;lt;?php echo $page_title; ?gt;lt;/titlegt;  lt;/headgt;  lt;bodygt;  lt;?php  if($form == "login"){  ?gt;  lt;!-- login form --gt;  lt;form action="lt;?php echo $_SERVER['PHP_SELF']; ?gt;" method="POST"gt;  lt;divgt;  lt;label for="username"gt;Usernamelt;/labelgt;  lt;input type="text" name="username" id="username"gt;  lt;/divgt;  lt;divgt;  lt;label for="password"gt;Passwordlt;/labelgt;  lt;input type="text" name="password" id="password"gt;  lt;/divgt;  lt;button type="submit" name="login"gt;Loginlt;/buttongt;  lt;a href="?form=signup"gt;Create new accountlt;/agt;  lt;/formgt;  lt;?php  }  else if($form == "signup"){  ?gt;  lt;!-- sign up form --gt;  lt;form action="lt;?php echo $_SERVER['PHP_SELF']; ?gt;" method="POST"gt;  lt;divgt;  lt;label for="username"gt;Usernamelt;/labelgt;  lt;input type="text" name="username" id="username"gt;  lt;?php   if(isset($_POST['signup'])){  echo $error;  }  ?gt;  lt;/divgt;  lt;divgt;  lt;label for="firstname"gt;first namelt;/labelgt;  lt;input type="text" name="firstname" id="firstname"gt;  lt;/divgt;  lt;divgt;  lt;label for="lastname"gt;last namelt;/labelgt;  lt;input type="text" name="lastname" id="lastname"gt;  lt;/divgt;  lt;divgt;  lt;label for="email"gt;emaillt;/labelgt;  lt;input type="text" name="email" id="email"gt;  lt;/divgt;  lt;divgt;  lt;label for="password"gt;Passwordlt;/labelgt;  lt;input type="text" name="password" id="password"gt;  lt;/divgt;  lt;divgt;  lt;label for="passwordrepeat"gt;repeat passwordlt;/labelgt;  lt;input type="text" name="passwordrepeat" id="passwordrepeat"gt;  lt;/divgt;  lt;button type="submit" name="signup"gt;Sign Uplt;/buttongt;  lt;a href="?form=login"gt;Already have an accountlt;/agt;  lt;/formgt;  lt;?php  }  ?gt;   lt;/bodygt; lt;/htmlgt;  

Комментарии:

1. Вы не передаете параметр «форма» в действии формы, поэтому он сбрасывается при отправке