Я только начал учиться и собрал форму ниже. Смятение, которое я испытываю, – это когда я использую пустой для проверки, выбрал ли пользователь или вводил какую-либо информацию, код генерирует ошибку ниже.
Я заметил, что у меня есть следующие строки кода
if(empty($gender)) { $errormessage[2] = "Please select your gender"; }
в виде
if(empty($_POST["gender"])) { $errormessage[2] = "Please select your gender"; }
а также
if(empty($gender)) { $errormessage[2] = "Please select your gender"; }
в виде
if(empty($_POST["gender"])) { $errormessage[2] = "Please select your gender"; }
Я не вижу сообщение об ошибке. Я считаю, что сообщение об ошибке генерируется из-за строк кода $ _POST для элементов пола и медиаформы, которые являются переключателями и флажками соответственно. Однако, если я хочу инициализировать все переменные наверху, что это лучший способ сделать это?
/* <?php if(isset($_POST["submit"])) { $fname = $_POST["fname"]; $lname = $_POST["lname"]; $gender = $_POST["gender"]; $age = $_POST["age"]; $address = $_POST["address"]; $media = $_POST['media']; $errormessage = array(); if(empty($fname)) { $errormessage[0] = "Please enter your first name"; } if(empty($lname)) { $errormessage[1] = "Please enter your last name"; } if(empty($gender)) { $errormessage[2] = "Please select your gender"; } if(empty($age)) { $errormessage[3] = "Please select your age"; } if(empty($address)) { $errormessage[4] = "Please enter your address"; } if(empty($media)) { $errormessage = "Please select the type of media"; } } ?> <html> <head> <title>Sample Registration</title> </head> <body> <h2>Sample registration</h4> <form name="registration" method="post" action="registration.php"> <div> First Name: <br /> <input type="text" name="fname" value=""> </div> <div> Last Name: <br /> <input type="text" name="lname" value=""> </div> <div> Gender: <br /> male<input type="radio" name="gender" value="male"> female<input type="radio" name="gender" value="female"> </div> <div> Age: <br /> <select name="age"> <option value="">Please select your age</option> <option value="18-25">18-25</option> <option value="26-33">26-33</option> </select> </div> <div> Address: <br /> <textarea name="address" cols="10" rows="10"></textarea> </div> <div> Sign-me up: <br /> <input type="checkbox" name="media['newsletter']" value="newsletter"> newsletter <input type="checkbox" name="media['specials']" value="specials"> specials <input type="checkbox" name="media['events']" value="events"> events <div> <input type="submit" name="submit" value="submit"> </div> </form> </body> </html> */
/* Сообщение об ошибке */
! ) Notice: Undefined index: gender in C:\Program Files\EasyPHP-5.3.5.0\www\registration.php on line 7 Call Stack # Time Memory Function Location 1 0.0004 341792 {main}( ) ..\registration.php:0 Dump $_SERVER $_SERVER['REMOTE_ADDR'] = string '127.0.0.1' (length=9) $_SERVER['REQUEST_METHOD'] = string 'POST' (length=4) $_SERVER['REQUEST_URI'] = string '/registration.php' (length=17) Variables in local scope (#1) $address = Undefined $age = Undefined $errormessage = Undefined $errormsg = Undefined $fname = string '' (length=0) $gender = Undefined $lname = string '' (length=0) $media = Undefined ( ! ) Notice: Undefined index: media in C:\Program Files\EasyPHP-5.3.5.0\www\registration.php on line 10 Call Stack # Time Memory Function Location 1 0.0004 341792 {main}( ) ..\registration.php:0 Variables in local scope (#1) $address = string '' (length=0) $age = string '' (length=0) $errormessage = Undefined $errormsg = Undefined $fname = string '' (length=0) $gender = null $lname = string '' (length=0) $media = Undefined