Registering can make mistakes, it is necessary that all errors made by the user are displayed, below the script displays only one

function output_errors($errors){ $errors = implode("<br>",$errors); return '<ul><li>' . implode('</li><li>',$errors) . '</li></ul>'; } if($_SERVER["REQUEST_METHOD"]=="POST"){ if(empty($fn)){ $errors[]= "Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ имя"; } elseif(empty($ln)){ $errors[]= "Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΌΠΈΠ»ΠΈΡŽ"; }elseif(empty($un)){ $errors[]= "Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Π»ΠΎΠ³ΠΈΠ½"; }elseif(empty($em)){ $errors[]= "Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ email"; }elseif(empty($pswd)){ $errors[]= "ΠΏΠ°Ρ€ΠΎΠ»ΡŒ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ пустым"; }elseif(!filter_var($em, FILTER_VALIDATE_EMAIL)){ $errors[]= "Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ email"; }elseif(email_exists($em)==true){ $errors[]= "$em ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ"; }elseif($em!=$em2){ $errors[]= "email Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с Π²Π²Π΅Π΄Π΅Π½Ρ‹ΠΌ"; }elseif(strlen($pswd)<6 or strlen($pswd)>32){ $errors[]= "ΠΏΠ°Ρ€ΠΎΠ»ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ большС 6 ΠΈ мСньшС 32 символов"; }elseif($pswd!=$pswd2){ $errors[]= "ΠΏΠ°Ρ€ΠΎΠ»ΠΈ Π΄ΠΎΠΆΠ½Ρ‹ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ"; }elseif(user_exists($un)==true){ $errors[]= "$un ΡƒΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ"; }elseif(strpos($un,0x20)!=false){ $errors[]= "Π»ΠΎΠ³ΠΈΠ½ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹"; }elseif(strlen($un)<6 or strlen($un)>32){ $errors[]= "Π›ΠΎΠ³ΠΈΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ мСньшС 6 символов ΠΈ Π½Π΅ большС 32"; }elseif(strlen($fn)<3 or strlen($fn)>32){ $errors[]= "имя Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ мСньшС 3 символов ΠΈ Π½Π΅ большС 32"; }elseif(strlen($ln)<3 or strlen($ln)>32){ $errors[]= "Ѐамилия Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π½Π΅ мСньшС 3 символов ΠΈ Π½Π΅ большС 32"; }else{ $query = array ( 'username' => trim($_POST['username']), 'password' => $_POST['password'], 'first_name' => trim($_POST['fname']), 'last_name' => trim($_POST['lname']), 'email' => $_POST['email'], 'email_code' => md5($_POST['username']+ microtime()), 'bio' => 'write somesing' ); register_user($query);// отправляСт Π½Π° Ρ”ΠΌΠ΅ΠΉΠ» сгСнСрированный ΠΊΠΎΠ΄ die("<h2>рСгистрация Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π°, Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΡƒΠΉΡ‚Π΅ΡΡŒ</h2>"); } if(empty($errors)===false){ echo output_errors($errors);//Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ошибки } } 

    1 answer 1

    Remove the elseif , replace it with the else , throw the error key and its designation into the $errors array, then look at the array, if it is empty, then reg., No, output an error message

     if(empty($_POST['lname'])) { $error[1] = 'Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π»ΠΎΠ³ΠΈΠ½'; } if(empty($_POST['email'])) { $error[2] = 'Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Π΅ΠΌΠ°ΠΉΠ»'; } ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅ ΠŸΠΎΡ‚ΠΎΠΌ: if(!empty($error)) { foreach($error as $value) { echo 'Ошибка:'.$value; } } else { // Заносим Π² Π±Π°Π·Ρƒ } 
    • Remove elseif where shall I set the conditions? - LLIAKAJI
    • all thanks earned))) - LLIAKAJI