Maison  >  Questions et réponses  >  le corps du texte

Si vous rencontrez un problème de validation de formulaire, merci d'indiquer le problème (validation PHP)

Je veux savoir ce qui ne va pas avec le formulaire dans mon code.

<?php

if(isset($_POST['submit'])) {
  $arrayName = array("TeacherA", "TeacherB", "TeacherC" , "TeacherD", "TeacherE");

  $minimum = 5;
  $maximum = 10;

  $name = $_POST['yourName'];
  $email = $_POST['yourEmail'];

  if(strlen($name) < $minimum) {
    echo "Your name should be longer than 5 characters";
  } 
  
  if(strlen($name) > $maximum) {
    echo "Your name should not be longer than 10 characters";
  } 
  
  if(!in_array($name,$arrayName)){
    echo "Please do register with us before you can login";
  } else {
    echo "Welcome!";
  }
}
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Blank</title>
</head>
<body>
  <form action="form.php" method="post">
    <label>Your Name:    </label>
    <input type="text" name="yourName"> <br>

    <label for="">Your E mail:</label>
    <input type="email" name="yourEmail" id=""><br>
    
    <!-- <textarea name="yourMessage" id="" cols="30" rows="10"></textarea><br> -->
    <input type="submit" name="submit" value="submit">
  </form>
</body>
</html>

J'ai exécuté le code localement mais je n'ai pas pu obtenir les résultats souhaités.

Le résultat que je souhaite est que si je ne saisis pas de nom dans le champ "Votre nom", le résultat devrait s'afficher :

Veuillez vous inscrire avant de vous connecter

P粉268284930P粉268284930428 Il y a quelques jours538

répondre à tous(1)je répondrai

  • P粉232793765

    P粉2327937652023-09-10 13:59:13

    如果« Votre nom »字段为空,则其strlen($name)应为0,第一个if语句为真,并显示Your name should be longer than 5 characters 你可以尝试这个 :

    <?php   
    if (isset($_POST['submit'])) {
        $arrayName = array("TeacherA", "TeacherB", "TeacherC", "TeacherD", "TeacherE");
        $minimum = 5;
        $maximum = 10;
        $name = $_POST['yourName'];
        $email = $_POST['yourEmail'];
        if (empty($name)) {
            echo "Please do register with us before you can login";
        } else {
            if (strlen($name) < $minimum) {
                echo "Your name should be longer than 5 characters";
            } else {
                if (strlen($name) > $maximum) {
                    echo "Your name should be less than 10 characters";
                } else {
                    if (in_array($name, $arrayName)) {
                        echo "Welcome!";
                    } else {
                        echo "Your login is not correct";
                    }
                }
            }
        }
    }
    ?>

    j'ai utilisé empty() pour tester si le champ est vide et j'ai utilisé des instructions if-else parce que je veux que le script s'arrête s'il trouve une "vraie" condition dans votre script, vous pouvez utiliser return; mais cela quittera le reste de votre script

    avoir un joli code :)

    répondre
    0
  • Annulerrépondre