2012-08-13 116 views
-1

希望有人可以幫助解決這個問題。我得到一個PHP解析錯誤:語法錯誤,在下面的代碼中/site/folder/path/test/send_email.php意外T_CONSTANT_ENCAPSED_STRING第9行聯繫表格 - PHP解析錯誤

$email_to = '[email protected] <script type="text/javascript"> 
/* <![CDATA[ */ 
(function(){try{vars,a,i,j,r,c,l=document.getElementById("__cf_email__");a=l.className;if(a){s='';r=parseInt(a.substr(0,2),16);for(j=2;a.length-j;j+=2){c=parseInt(a.substr(j,2),16)^r;s+=String.fromCharCode(c);}s=document.createTextNode(s);l.parentNode.replaceChild(s,l);}}catch(e){}})(); 
/* ]]> */ 
</script>'; //the address to which the email will be sent 
$name  = $_POST['name']; 
$email = $_POST['email']; 
$subject = $_POST['subject']; 
$message = $_POST['message']; 

$headers = "From: $email\r\n"; 
$headers .= "Reply-To: $email\r\n"; 

if(mail($email_to, $subject, $message, $headers)){ 
    echo 'sent'; // we are sending this text to the ajax request telling it that the mail is sent.. 
}else{ 
    echo 'failed';// ... or this one to tell it that it wasn't sent 
} 
+0

什麼樣的電子郵件地址是*是*? – deceze 2012-08-13 11:51:42

+0

換句話說,轉義字符,使用\';你可以這樣做:$ x ='text'bla bla'bla';使用:$ x ='bla bla'bla bla bla''; – 2012-08-13 11:53:16

回答

2

的劃界這些位:

className;if(a){s=\'\'; 

你開始了與單引號以字符串:

$email_to = '... 

所以,你需要的字符串作爲內劃定任何進一步的單引號波夫。

編輯:我已經縮進的代碼如下:

<?php 

$email_to = '[email protected] <script type="text/javascript"> 
/* <![CDATA[ */ 
(function() 
{try 
    { 
      vars,a,i,j,r,c,l=document.getElementById("__cf_email__"); 
      a=l.className; 
      if(a) 
      { 
       s=\'\'; 
       r=parseInt(a.substr(0,2),16); 
       for(j=2;a.length-j;j+=2) 
       { 
        c=parseInt(a.substr(j,2),16)^r; 
        s+=String.fromCharCode(c); 
       } 
       s=document.createTextNode(s); 
       l.parentNode.replaceChild(s,l); 
      } 
    } 
    catch(e) 
    { 
    } 
} 
)(); 
/* ]]> */ 
</script>'; 

echo 'Something'; 
?> 

,我看不到任何解析錯誤。

+0

謝謝。我添加了分隔符,但現在似乎在第6行出現錯誤。它表示這是一個**意外的T_STRIN **。 – kolorguild 2012-08-13 11:58:21

+0

@kolorguild你確定*全部*應該在email_to部分而不是正文中? – Fluffeh 2012-08-13 12:04:37

+0

我是新來的PHP郵件格式遊戲,所以不確定。是在線上嘖嘖。它也指向一個JS文件有什麼幫助? – kolorguild 2012-08-13 12:06:50

1

你需要逃脫單引號\'

$email_to = '[email protected] <script type="text/javascript"> 
/* <![CDATA[ */ 
(function(){try{vars,a,i,j,r,c,l=document.getElementById("__cf_email__");a=l.className;if(a){s=\'\';r=parseInt(a.substr(0,2),16);for(j=2;a.length-j;j+=2){c=parseInt(a.substr(j,2),16)^r;s+=String.fromCharCode(c);}s=document.createTextNode(s);l.pare ntNode.replaceChild(s,l);}}catch(e){}})(); 
/* ]]> */ 
</script>'; //the address to which the email will be sent