2014-01-15 1 views
0

저는 PHP 초심자이기 때문에 오류가 발생했을 때만 내 양식 오류를 표시하는 방법을 알아내는 데 도움이됩니다. 예 : 페이지에 도착하면 양식이 정상적으로 보입니다. 사용자는 정보를 입력하지만 전자 메일을 추가하는 것을 잊어 버리고 제출을 누르십시오. 이메일 오류를 표시하고 싶습니다. 아래 코드는 제가 작업하고있는 코드입니다.PHP 폼 오류가 발생하면 한 번만 표시됩니다.

사이드 노트 : 제출 버튼을 눌렀을 때 입력 된 정보를 유지하도록 필드를 설정했습니다.

<?php 

      $email = $_POST['email']; 
      $name = $_POST['name']; 
      $message = $_POST['message']; 
      $size = $_FILES['file']['size']; 
      $max_size = 34000000; 
      $file = $_FILES['file']['tmp_name']; 
      $filename = $_FILES['file']['name']; 
      $filetype = $_FILES['file']['type']; 
      $errors = array(); 

if (empty($email)) 
    $errors[] = "Please provide an email."; 
if (empty($name)) 
    $errors[] = "Please provide your name."; 
if (empty($filename)) 
    $errors[] = "Please provide a file."; 
if ($size > $max_size) 
    $errors[] = "Please choose a file under 30mb."; 

if (sizeof($errors) > 0) { 
    foreach($errors as $error) 
    { 
     printf("<li>%s</li>", $error); 
    } 
} 
else { 
    mkdir('../uploads/' . $email . '|' . $name, 0777, true) . '/'; 
    move_uploaded_file($file, '../uploads/' . '/'. $email . '|' . $name . '/' . $filename); 
    header ('Location: ../'); 
    exit; 
} 
      ?> 

나는이 오류가 현재 간단한 일들을 확인하고 있음을 알고 있습니다. 나는 그들을 더 복잡하게 만들 것이다. 전의. 이메일 주소에서 '@'를 찾고 있습니다.

도움 주셔서 감사합니다.

답변

0

PHP는 서버 측 스크립팅 언어이므로 PHP가 서버에 제출 될 때까지 양식의 오류를 확인할 수 없습니다.

그러나 양식을 확인할 수있는 다른 옵션이 있습니다.

더 많은 PHP 검사를 위해 서버에 제출되기 전에 많은 사람들이 Javascript를 사용하여 양식의 사전 점검을 수행하며, AJAX (더 많은 javascript)와 비동기 적으로 수행 할 수도 있습니다. 자바 스크립트 양식 유효성 검사 여기

참고 : http://www.w3schools.com/js/js_form_validation.asp

자바 스크립트

function validateForm(){ 
    var x=document.forms["myForm"]["email"].value; 
    var atpos=x.indexOf("@"); 
    var dotpos=x.lastIndexOf("."); 
    if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length){ 
     alert("Not a valid e-mail address"); 
     return false; 
    } 
} 

HTML

<form name="myForm" action="demo_form.asp" onsubmit="return validateForm();" method="post"> 
Email: <input type="text" name="email"> 
<input type="submit" value="Submit"> 
</form> 

주 양식 필드에서 "onsubmit". 폼에 submit 버튼이 눌리면 validateForm() 함수가 호출됩니다. 폼에 에러가 없으면 PHP 백엔드로 정상적으로 전송됩니다. 에러가 발생하고 폼이 전송되지 않으면 경고 메시지가 나타납니다.

+0

응답 해 주셔서 감사합니다. 자 이제 Javascript를 사용하여 양식을 확인한다고 가정 해 봅시다. javascript가 오류가 없음을 확인할 때까지 PHP 스크립트가 실행되지 않게하려면 어떻게해야합니까? – David

+0

내 답변에 수정 사항을 추가 했으니 살펴보십시오. 알아야 할 모든 것을 설명해야합니다. – Aidan

+1

감사합니다 아이단,이 대답은 기본적으로 내가 꽤 멋진 플러그인을 찾았지만 필요한 것을 다뤘습니다. [http://jqueryvalidation.org/](http://jqueryvalidation.org/)]를 확인하십시오. 그것은 기본적으로 내가 원했던 것입니다. – David

관련 문제