2014-05-21 1 views
1

PHP에서 메일 기능을 사용하려고합니다. 한 페이지에 다음 양식이 있습니다 :PHP 메일 기능 및 조건이있는 경우

<form action="sending.php" method="POST"> 
subject of the e-mail: <input type="text" name="subject" size="40" /><br> 
recipient's e-mail: <input type="text" name="to" size="40" /> 
<input type="submit" name="send" value="send" /> 
</form> 

이 페이지는 다른 페이지를 가리 킵니다. if 조건이 작동하지 않습니다. 양식의 필드를 비워 두더라도 출력 결과에 긍정적 인 메시지가 나타납니다.

<?php 
if(isset($_POST["to"], $_POST["subject"])) 
{ 
$to=$_POST["to"]; 
$subject=$_POST["subject"];; 
$message='hello'; 
mail($to, $subject, $message); 
echo "The data have been sent to the e-mail address you typed in."; 
} 
else 
{ 
echo "I think you forgot to type in an e-mail address and/or a subject."; 
} 
?> 

해결 방법을 제안 할 수 있습니까? 감사!

+0

설정 여부가 아닌 '=='으로 설정되어 있지 않은지 테스트해야합니다. – Barmar

답변

0

http를 통해 게시되는 문자열의 length을 확인해보십시오.

전자 메일 형식이 필요한 문자열의 경우 더 복잡한 검사를 수행해야 할 수 있습니다. javascript와 PHP 모두에서 형식의 전자 메일을 확인하는 기능을 찾기가 어렵지 않고 스킬/코드에 가장 적합한 것을 사용하십시오.

0

isset()은 true로 설정하면 true입니다. 빈 문자열 당신은 name가 항상 action 페이지로 전달되는 한 입력 요소의 경우 대신

if (!empty($_POST['to']) && !empty($_POST['subject'])) 
0

empty()를 사용할 수 있습니다. 그렇게 확인해야합니다.

if($_POST['subject'] != "" && $_POST['to'] != ""){ 
    //send message 
}else{ 
    //dont send message 
} 
+0

예. 이메일 주소가 유효한지 확실히 확인해야합니다. 나는 또한이 mail() 함수를 이용할 수있는 스패머에 대해 약간 걱정하고있다. 감사! – Alex

+0

주소가 유효한지 확인하려면 regex를 사용하십시오. 그것의'preg_match' 함수를 보라. 스팸 발송자가 귀하의 웹 사이트를 이용하는 한 쉬운 방법은 없습니다. 나는 보안 전문가는 아니지만 어떤 방식 으로든 IP 주소로 이메일을 제한 할 수 있다고 상상합니다. –