0

$errorMessage配列エラーで変数が設定されない理由がわかりません。

フォームの検証を行おうとしています。このPHPはすべてページの上部にありますregister.php

これは私が取り組んでいるページです。これを解決できることを願っています!

<?php
   session_start();
   // include("includes/connect.php");
   include ("includes/html.php");


   if (isset($_POST['submit'])){
      $error = array(); 

      //username
      if (empty($_POST['username'])){
         $error[] = 'Please Enter a Username';
      }
      else if (ctype_alnum ($_POST['username'])){
         $userName = $_POST['username'];
      } 
      else {
         $error[] = 'Username Must Consist Letters and Numbers Only';
      }

      //email
      if (empty($_POST['email'])){
         $error[] = 'Please Enter an Email';
      } 
      else if (!preg_mach ("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)
↪*(\.[a-z]{2,3})$",$_POST['email'])) {
         $email = mysql_real_escape_string ($_POST['username']);
      } 
      else {
         $error[] = 'Your Email Address is Invalid';
      }

      //password
      if (empty($_POST['password'])){
         $error[] = 'Please Enter a password';
      } 
      else if ($_POST['password']!==$_POST['password2']){
         $error[] = 'Your Password Did Not Match';
      }
      else {
         $password = mysql_real_escape_string($_post['password']);
      }
   }

   if (empty ($error)){
      //good info
   }
   else {
      $errorMessage = '<span class="error">';
      foreach ($error as $key => $e){
         $errorMessage.= "$e";
      }
      $errorMessage.= '</span> <br /><br />';
   }

?>
4

2 に答える 2

2

配列$error にはインデックスが付けられているため、次を使用する必要があります。

foreach ($error as $e){

}
于 2012-06-14T15:50:24.160 に答える
0

エラー配列がIS EMPTYかどうかを確認しているためです。エラー メッセージがある場合、それは空ではなく、メッセージ ビルディング ブロック全体をスキップします。

if (!empty ($error)){
    ^---- if NOT EMPTY
于 2012-06-14T15:49:29.760 に答える