2012-03-12 30 views
-2

さて、私は画像をアップロードするウェブサイトに取り組んでいます...今、私はウェブサイトの登録作業中です。それはほぼ完全にPHPに書かれています。私が抱えている問題は、二次if文のelse文(if (empty($register_email)で始まる文)には解決策が見つからないという問題があります。そうでない場合は、それはそれはもはや私が欲しいものよりもあるかどうかを確認するために$errors配列 PHPコードでは表示されない内容が表示されます

  • チェックへのエラーテキストを追加します(

    • かをチェックし、メールが有効であるかどうかを確認するために:ここでは

      は、それが何をするかです電子メールは、すでに別のPHPスクリプト・ファイル内の別々の機能を介してデータベースに存在するかどうかを確認する。

    • かどうかをチェックすることにする。

    これらのエラーのいずれかが、それはあるが存在する場合の長さスクリプトの下部にあるforeachステートメントを使ってそれらを表示するはずです。しかし、私の問題は...それはエラーを表示しません。実際には...それは上のヘッダーを除いて画面を空白のままにします。

    <?php 
    
        if (isset($_POST['register_email'], $_POST['register_name'], $_POST['register_password'])) { 
    
         $register_email = $_POST['register_email']; 
         $register_name = $_POST['register_name']; 
         $register_password = $_POST['register_password']; 
    
         $errors = array(); 
    
         if (empty($register_email) || empty($register_name) || empty($register_password)) { // **||** means "or" 
    
          $errors[] = 'All fields are required'; 
    
         } else { 
    
          if (filter_var($register_email, FILTER_VALIDATE_EMAIL) == false) { 
           $errors[] = 'Email address not valid';  
          } 
    
          if (strlen($register_email) > 255 || strlen($register_name) > 35 || strlen($register_password) > 35) { 
           $errors[] = 'One or more fields contains too many characters'; 
          } 
    
          if (user_exits($register_email)) { 
           $errors[] = 'That email has already been registered'; 
          } 
    
         } 
    
    
         if (!empty($errors)) { //If errors do exist 
          foreach($errors as $error) { 
           echo $error, '<br />'; 
          } 
         } else { 
          //register our user 
         } 
    
        } 
    
        ?> 
    

    今、私はそれがif (empty($register_email)...)に関して関数(の問題ではないことを確認するためにテストしている一つのことは、私はこの

    if (filter_var($register_email, FILTER_VALIDATE_EMAIL) == false) { 
            $errors[] = 'Email address not valid'; 
               echo 'Email address is not valid';   
           } else { 
              echo 'Email address is valid'; 
    

    を行っていると、それが正常に動作しなかったことですそれは正しい結果をエコーし​​ましたが、私はforeachステートメント(複数のエラーを表示するために行う必要があります)を実行しようとすると機能しません。

    PS私は3つの異なるWebサイトに行ってきました。構文チェックとすべてのチェックアウトは大丈夫です。 }

  • +2

    エラーログには何もありませんか?また、 'user_exits($ register_email)'はタイプミスですか?あなたのコードで関数名が正しいですか( 'user_exits'対' user_exists')? – marramgrass

    +0

    @marramgrassは私の質問に答えてくれました。私はここにコメントしました。そして、私は、問題が解決されたというタイトルの中で、今閉じられていると述べました。質問に答えたならば、人々が不必要に人々の評判を低下させないように、質問を終わらせるべきです。助けてくれてありがとう。 –

    答えて

    1

    ()空はすべてのケースで動作するかどうか、私は知りません

    if(count($errors) > 0) 
    

    試してみてください。

    +0

    'empty()'はどんな場合でも動作します。 – nickb

    関連する問題