2012-06-14 4 views
0

변수 $errorMessage이 배열 오류로 설정되지 않는 이유를 볼 수 없습니다.PHP가 폼 유효성 검사를위한 오류 메시지를 표시하지 않습니다.

양식 유효성 검사를하려고합니다. 이 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 />'; 
    } 

?> 
+0

하지 대답,하지만 꽤 [약한 이메일 검사기 (의 http://php.net/manual/en/ function.filter-var.php). – PeeHaa

+0

여기서'$ errorMessage' 변수를 출력합니까? – shadyyx

+0

어쨌든, 좀 더 예쁜 방법으로 이것을 할 수 있습니다 :'$ errorMessage = ''. implode ('
', $ error). '


'; echo $ errorMessage;'. – shadyyx

답변

2

귀하의 $error 배열을 사용한다, 그래서 색인 :

foreach ($error as $e){ 

} 
+0

네 말이 맞아. 나는 OOP를 너무 많이한다.). 나는 당신의 대답을 확인했습니다, 그것은 +1입니다. – Zbigniew

0

당신이 확인하고 있기 때문에. 오류 메시지가 있으면 비어 있지 않으므로 전체 메시지 구성 블록을 건너 뜁니다.

if (!empty ($error)){ 
    ^---- if NOT EMPTY 
+0

코드에 if-else가 있습니다. 오류가 비어 있으면 오류를 표시하지 않으며, 다른 방법은 모두 표시합니다. 나는 거기에 오류가 보이지 않는다. – DaneSoul

+0

Shees, 완전히 그 것을 놓쳤다. 나는 빈 블록이 싫어 ... –

관련 문제