2012-06-08 3 views
1

본인의 웹 사이트에이 문의 양식이 있지만 양식 필드가 완성되었는지 확인할 수 없습니다. 다음은 문의 양식 - 사용자가 모든 입력란을 완료했는지 확인하십시오.

<form id="cform" name="cform" method="post" action="<?php bloginfo('template_directory'); ?>/cform.php"> 
    <div id="nande"> 
    <p><input type="text" id="name" name ="name"; onfocus="if(this.value=='Your Name is')this.value='';" onblur="if(this.value=='')this.value='Your Name is';" alt="Your Name" value="Your Name is"/></p> 
    <p> <input type="text" id="e-mail" name="mail" onfocus="if(this.value=='Your Email is')this.value='';" onblur="if(this.value=='')this.value='Your Email is';" alt="Your Email" value="Your Email is"/></p> 
    </div> 
    <div class="clear"></div> 
    <p><textarea name="message" rows="4" id="comments" tabindex="4" title="comments" onfocus="if(this.value=='Your Message is')this.value='';" onblur="if(this.value=='')this.value='Your Message is';"">Your Message is</textarea></p> 
    <div class="clear"></div> 
    <p><input name="submit" type="submit" value="SEND" id="submit"/></p> 
</form> 

양식

<?php 
if(isset($_POST['submit'])) { 
    $to = '[email protected]' ;  //put your email address on which you want to receive the information 
    $subject = 'designdone project email'; //set the subject of email. 
    $headers = 'MIME-Version: 1.0' . "\r\n"; 
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
    $message = "<table><tr><td>Your Name</td><td>".$_POST['name']."</td></tr> 
       <tr><td>E-Mail</td><td>".$_POST['email']."</td></tr> 
       <tr><td>Message</td><td>".$_POST['message']."</td> 
       </tr></table>" ; 
mail($to, $subject, $message, $headers); 
header('Location: http://designdone.com') ; 
} 
?> 

에 대한 PHP가 어떻게 사용자가 양식을 완료되었는지 확인할 수 및 빈 양식을 보내지 않습니다입니까?

도움 주셔서 감사합니다.

+0

이 양식을 사용하여 문제를 해결했습니다. http://www.freecontactform.com/email_form.php @editor에서 제안한 것과 같은 개념입니다. – designdone

답변

3

$_POST 필드에 isset() 또는 empty()을 사용해보세요. 예를 들어

:

foreach ($_POST as $attr => $val) { 
    if (!isset($_POST[ $attr ]) || empty($_POST[ $attr ])) { 
    die('Please fill out all fields.'); 
    } 
} 
+0

빠른 답변 주셔서 감사합니다. 이 오류는 '구문 분석 오류 : 구문 오류, 예기치 않은 T_EXIT'줄에 '죽습니다'코드가 표시됩니다. – designdone

+1

당신은 die 대신 echo를 쓸 수 있고'exit(); '를 사용합니다. – Dion

+0

이 양식을 사용하여 문제를 해결했습니다. freecontactform.com/email_form.php 당신이 제안한 것과 같은 개념입니다. 감사합니다. – designdone

1

나는 검증 라이브러리를 사용하는 것이 좋습니다. 많은 것들이 있으며, 대부분은 매우 유연합니다.

+1

왜 일을 직접합니까? –

0

자바 스크립트에서는 .isEmpty를 사용하여 필드가 비어 있는지 여부를 결정할 수 있습니다.

+0

불행히도, 나는 js의 전문가가 아닙니다. 그것을 코드에 통합하는 방법을 알려주시겠습니까? 시간 내 주셔서 감사합니다. 감사. – designdone

+0

Plain javascript가 내 강점이 아닙니다 (개인적으로 jQuery를 선호합니다). 그러나 http://www.w3schools.com/js/js_form_validation.asp는 기본 사항을 이해하고 무엇을해야하는지에 대한 아이디어를 제공하기에 충분해야합니다 (isEmpty는 여기에 사용되지 않지만 필드를 검증하는 다른 방법이 있습니다) . – Darvex