Rumah  >  Soal Jawab  >  teks badan

Jika anda menghadapi masalah dengan pengesahan borang, sila nyatakan masalahnya (pengesahan PHP)

Saya ingin tahu apa yang salah dengan borang dalam kod saya.

<?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>

Saya menjalankan kod secara tempatan tetapi tidak dapat hasil yang saya inginkan.

Hasil yang saya inginkan ialah jika saya tidak memasukkan nama dalam medan "Nama Anda", hasilnya harus dipaparkan:

Sila daftar sebelum log masuk

P粉268284930P粉268284930405 hari yang lalu517

membalas semua(1)saya akan balas

  • P粉232793765

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

    如果“Nama Anda”字段为空,则其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";
                    }
                }
            }
        }
    }
    ?>

    saya menggunakan empty() untuk menguji sama ada medan kosong dan saya menggunakan pernyataan if-else kerana saya mahu skrip berhenti jika ia menemui keadaan 'benar' dalam skrip anda, anda boleh menggunakan return; tetapi itu akan keluar dari skrip anda yang lain

    mempunyai kod yang bagus :)

    balas
    0
  • Batalbalas