#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. Вы не передаете параметр «форма» в действии формы, поэтому он сбрасывается при отправке