2013-08-09 3 views
0

안녕하세요, 제가 구입 한 테마의 PHP 문의 양식이 있습니다. 나는 그것과 함께 사용자 정의 양식을 만들려고했지만 행운이 없습니다. 주변에서 변수를 변경해 보려고 노력했지만 자신이 만든 전자 메일은 전자 메일로 전송되지 않고 정보를 가져오고 싶습니다. 문의하기 양식 PHP가 이메일로 전송되지 않음

내가 내 HTML

<form id="" action="application/application.php" method="post" class="validateform" name="send-contact"> 

<div id="sendmessage"> 
    Your message has been sent. Thank you! 
</div> 


        Youtube Channel Name <br> <input type="text" name="youtubename" placeholder="* Enter Your YouTube Name"> 
        <div class="validation"></div> 

        First Name <br> <input type="text" name="firstname" placeholder="* Enter Your First Name"> 
        <div class="validation"></div> 

        Last Name <br> <input type="text" name="lastname" placeholder="* Enter Your Last Name"> 
        <div class="validation"></div> 

        Your Paypal Email Address <br> <input type="text" name="paypal" placeholder="* Enter Your Paypal Email"> 
        <div class="validation"></div> 

        Your YouTube Email Address <br> <input type="text" name="youtubeemail" placeholder="* Enter Your YouTube Email"> 
        <div class="validation"></div> 

        Skype <br> <input type="text" name="skype"  ``placeholder="* Enter Your Skype Name"> 
        <div class="validation"></div>          

         <button class="btn btn-theme margintop10 pull-left" type="submit">Submit Application</button> 
         </form> 

에 그리고 난 다음이 내 PHP를 위해 무엇을 가지고;

<?php 


include 'config.php'; 

error_reporting (E_ALL^E_NOTICE); 

$post = (!empty($_POST)) ? true : false; 

if($post) 
{ 
$youtubename = stripslashes($_POST['youtubename']); 
$firstname = stripslashes($_POST['firstname']); 
$lastname = stripslashes($_POST['lastname']); 
$paypal = stripslashes($_POST['paypal']); 
$youtubeemail = trim($_POST['youtubeemail']); 
$skype = stripslashes($_POST['skype']); 





$error = ''; 



if(!$error) 
{ 
$mail = mail(WEBMASTER_EMAIL, $subject, $message 
"From: ".$firstname." <".$youtubename.">\r\n" 
."Reply-To: ".$youtubeemail."\r\n" 
."X-Mailer: PHP/" . phpversion()); 


if($mail) 
{ 
echo 'OK'; 
} 

} 


} 
?> 

그리고 내 config.php에에 내가

<?php 
// To 
define("WEBMASTER_EMAIL", '[email protected]'); 
?> 

이 나는 ​​HTML에 매우 정통한 아니에요 그리고 난이 그러나에 참석하기 위해 긴급 문제를했다 않습니다 내 직원의 일원이 이 연락처 양식을 작성하여 실행해야합니다. 나는 테마와 함께 제공되는 기본 양식을 가지고 있으며 완벽하게 작동하므로 여기 뭔가 잘못된 것을 수행했는지 추측합니다. 도와 주셔서 감사합니다!

+0

이 비트는 잘못된 따옴표가있는 것처럼 보이며,''placeholder = ""를 일으킬 수 있습니다. – bumperbox

+0

그래서 이것을 디버깅하려고했는데,'mail()'이 작동하지 않는 데는 여러 가지 이유가 있습니다. 오류가 발생 했습니까? 메일 릴레이를 올바르게 구성 했습니까? 서버의 메일 대기열에서 메일을 볼 수 있습니까? –

+0

흠 실제 자리 표시 자 안에있는 텍스트 만 표시됩니다. [링크] (http://puu.sh/3Y2xQ.png) @MikeBrant "보낸 사람 :"을 $ 이름으로 변경했습니다. 또한 youtubeemail 'trim'을 'stripslashes'로 변경했습니다. 그것으로 해결할 수 있습니다. 내가 말했듯이 테마는 PHP 폼과 함께 제공됩니다. $ youtubename- $ skype을 제외하고는 모두 동일합니다. – MrPie

답변

2

주목할만한 오류가 당신은 $message와 헤더 사이에 쉼표 누락되어

$mail = mail(WEBMASTER_EMAIL, $subject, $message, // Here 
"From: ".$firstname." <".$youtubename.">\r\n" 
."Reply-To: ".$youtubeemail."\r\n" 
."X-Mailer: PHP/" . phpversion()); 
+0

지적 해 주셔서 고맙습니다. 내가 어떻게 그것을 놓쳤는 지 잘 모르겠다. 그것은 기본 PHP에 분명히있었습니다. 그것을 넣고 올리십시오. 아직 아무것도. – MrPie

+0

@MrPie,'$ subject'와'$ message'는 모두 정의되지 않았습니다. 제목과 메시지에 대한 요구 사항에 대한 문서를보십시오 : http://php.net/manual/en/function.mail.php – vee

+0

글쎄, 나는 이것들을 가지고 있지 않습니다. 대신 $ firstname 및 $ lastname으로 대체하는 것이 좋을까요? 편집 : 방금 교환했습니다. $ mail = mail (WEBMASTER_EMAIL, $ youtubeemail, $ firstname, $ lastname, – MrPie

1

당신은 몇 구문 오류가 있습니다. 좋은 편집자가 잠시 후에 당신의 문제를 해결하고있었습니다. 우선 "skype"입력 - 두 개의 따옴표가 있습니다. 그것을 제거하십시오. 둘째, 메일 기능에서 무작위 텍스트에 도트와 같은 연산자가없는 $message을 정의하지 않고 추가합니다. $message에 무언가가 포함되어 있으면 "." 그 후에, 그리고 그렇지 않다면 그냥 삭제하십시오. 헤더를 추가하려는 경우 $message 뒤에 쉼표를 추가하십시오.

+0

Hmmph "Skype"에 두 개의 따옴표가 있습니까? 만약 당신이 ''나는 여기에 코드를 붙여 넣을 때 우연히 그것을 넣었다고 생각합니다. 그것은 HTML에 없습니다. $ message를 삭제했습니다. – MrPie

관련 문제