2014-01-30 2 views
0

여기에서 전자 메일 주소로 연락처 양식 값을 보내려고합니다. contact.php 페이지 코드를 게시했습니다. 동일한 페이지에서 서버 측 유효성 검사를 수행했습니다. 유효성 검사가 성공적으로 완료되면 email.php 페이지로 리디렉션되어야합니다. 어떻게해야합니까?확인 후 email.php 페이지로 리디렉션 완료

Contact.php

<?php 
    $errname = ""; 
    $errmotorcycle = ""; 
    //some codes 

    if($_POST["contacts"] == "all") 
    { 
     // name validation 
     if(empty($_POST["name"])) 
     { 
      $errname = '<span class="error">Should not be empty</span>'; 
     } 
     else if(preg_match("/^[a-zA-Z ]+$/", $_POST["name"]) === 0) 
     { 
      $errname = '<span class="error">Name must be from letters and spaces only</span>'; 
     } 
     else 
     { 
      $errname = ''; 
     } 
     // motorcycle validation 
     if($_POST["typeofmotor"] == "empty") 
     { 
      $errmotorcycle = '<span class="error">You must select one option</span>'; 
     } 
     //some codes 
    } 
?> 

<html> 
<head><title></title></head> 
<body> 
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" > 
<input type="hidden" name="contacts" value="all" /> 
<table width="980" border="0" align="center" cellpadding="0" cellspacing="0"> 
    <tr> 
    <td width="281" height="40" class="rightalign">Name : </td> 
    <td width="268"><input type="text" name="name" class="normal" value="<?php $_POST['name']; ?>" /></td> 
    <td width="431" valign="middle"><?php if(isset($errname)) echo $errname; ?></td> 
    </tr> 
//some codes 
</table> 
</form> 
</body> 
</html> 
+0

하나 개 PHP 요청에 확인하고 성공적인은 무엇 직접 이메일 PHP 스크립트 당신의 검증의 우회를 호출 공격자를 중지하는 경우 다음 이메일 PHP 스크립트로 리디렉션하는 경우? 이러지 마! 동일한 요청에 대해 include 및 process를 사용하십시오. – ToBe

+0

@ToBe : 그러면 email.php 페이지에서 확인을해야합니까? – Karuppiah

+0

보내는 페이지 (PHP가 완벽하게 포함되어 있음)와 동일한 페이지에서 작업하는 것이 좋습니다. – ToBe

답변

0

이 이메일을 보낸 후, 당신은 같은 브라우저 리디렉션 할 수 있습니다 : 당신이 솔루션을 선택하는 경우

<?php 
header('Location: http://www.example.com/email.php'); 
die(); 
?> 

, 명심하시기 바랍니다 그 헤더는 할 수있다 전에 모든 내용이 브라우저로 전송됩니다.

+0

이메일을 보내지 마세요. 유효성 검사가 성공적으로 끝나면 email.php 페이지로 리디렉션해야합니다 ... – Karuppiah

+0

글쎄, 나는 보통 이런 식으로 : 폼을 같은 파일에 게시하십시오. 메일을 보낼 플래그가 있으면 양식을 확인하십시오. 확인이 성공하면 이메일을 보내십시오. 해당 파일 내에 메일을 보내는 것에 관한 부분을 원하지 않으면 메일 보내기를 처리하는 다른 파일을 포함시킬 수도 있습니다. – grobmotoriker

+0

전송과 다른 요청으로 확인하지 마십시오. 원래 질문에 대한 내 의견을 확인하십시오. – ToBe

0

리디렉션 후에도 손실 될 수 있으므로 다른 스크립트로 리디렉션하거나 POST 변수를 사용할 수 없습니다. 당신은 email.php로 스크립트를 포함 할 수 있습니다

<?php 
include(dirname(__FILE__) . "/email.php"); 
관련 문제