我收到一个PHP邮件脚本错误


I am getting an error with a PHP mail script

帮助前

我正试图在我的网站上设置一个联系人框,我认为我做得对,但似乎不是。

?php $name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$formcontent="From: $name 'n Message: $message";
$recipient = "contact@jozhhdesigns.com
<script>
    type = "text/javascript" >
    /* <![CDATA[ */
    (function() {
        try {
            var s, a, i, j, r, c, l, b = document.getElementsByTagName("script");
            l = b[b.length - 1].previousSibling;
            a = l.getAttribute('data-cfemail');
            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>";
$subject = "JozhhDesigns You have been contacted!";
$mailheader = "From: $email 'r'n";
mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");
echo "Thank You!";
?>

然后,我得到的错误是:

第7行代码中出现意外的T_STRING

有人知道这里出了什么问题吗?

看完答案后

在浏览了评论之后,我更改了一些内容,现在我有了以下

<?php $name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$formcontent="From: $name 'n Message: $message";
    $recipient = 'contact@jozhhdesigns.com';
  <script type='text/javascript'>
   /* <![CDATA[ */
  (function(){try{var s,a,i,j,r,c,l,b=document.getElementsByTagName("script");l=b[b.length-1].previousSibling;a=l.getAttribute('data-cfemail');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>
$subject = 'JozhhFX You have been contacted!';
$mailheader = "From: $email 'r'n";
mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");
echo "Thank You!";
?>

有了这个,我去掉了双("),改为单(')它现在给我错误

"syntax error, unexpected '<' in /public_html/sendmail.php on line 6"

我知道我不擅长这个,但有什么帮助吗?

更改

  $recipient = "contact@jozhhdesigns.com
  <script>
  type="text/javascript">
   /* <![CDATA[ */
  (function(){try{var s,a,i,j,r,c,l,b=document.getElementsByTagName("script");l=b[b.length-1].previousSibling;a=l.getAttribute('data-cfemail');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>";

    $recipient = "contact@jozhhdesigns.com";
  <script type="text/javascript">
   /* <![CDATA[ */
  (function(){try{var s,a,i,j,r,c,l,b=document.getElementsByTagName("script");l=b[b.length-1].previousSibling;a=l.getAttribute('data-cfemail');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>

您关闭了带有类型声明的打开脚本标记。

<script <-- Here
type="text/javascript">

您的$receiver具有带双引号的值!

试试之类的东西

$recipient = "contact@jozhhdesigns.com";
$script  = <<<CDATA
<script>
type="text/javascript">
/* <![CDATA[ */
(function(){try{var s,a,i,j,r,c,l,b=document.getElementsByTagName("script");l=b[b.length-1].previousSibling;a=l.getAttribute('data-cfemail');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>
CDATA;

使用单引号而不是双引号here-type="text/javascript">和here-document.getElementsByTagName("script");

它将有点像这个type='text/javascript'>和document.getElementsByTagName('script');

$收件人应该只是电子邮件,试试这个:

$recipient = "contact@jozhhdesigns.com";

以下是关于php中邮件功能的文档:http://php.net/manual/en/function.mail.php

请检查此链接https://stackoverflow.com/questions/20072751/write-the-email-code-for-upload-resume-in-contact-page-receive-the-email-in-php/20073275#20073275

有一些结束标签和双重问题,请尝试这个

<?php $name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$formcontent="From: $name 'n Message: $message";
$recipient = "contact@jozhhdesigns.com";

$subject = "JozhhDesigns You have been contacted!";
$mailheader = "From: $email 'r'n";
mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");
echo "Thank You!";
?>