警告:php_eval()

警告:php_eval(),php,drupal-7,Php,Drupal 7,我在drupal站点中添加了一些php代码。当我试着运行它时,它显示一个警告,如 “警告:关于php_eval()中的故障,请联系支持人员(第80行/folderpath../modules/php/php.module)。” 在php.module的第80行中包含 ob_start(); print eval('?>' . $code); $output = ob_get_contents(); ob_end_clean(); 实际上这是一个php代码发送邮件 请任何人帮我找出这个 提

我在drupal站点中添加了一些php代码。当我试着运行它时,它显示一个警告,如

“警告:关于php_eval()中的故障,请联系支持人员(第80行/folderpath../modules/php/php.module)。”

在php.module的第80行中包含

ob_start();
print eval('?>' . $code);
$output = ob_get_contents();
ob_end_clean();
实际上这是一个php代码发送邮件

请任何人帮我找出这个

提前谢谢

这是我为发送邮件而编写的代码

    $strTo = $_POST["txtTo"];
$strSubject = $_POST["txtSubject"];
$strMessage = nl2br($_POST["txtDescription"]);

//*** Uniqid Session ***//
$strSid = md5(uniqid(time()));

$strHeader = "";
$strHeader .= "From: ".$_POST["txtFormName"]."<".$_POST["txtFormEmail"].">\nReply-To: ".$_POST["txtFormEmail"]."";

$strHeader .= "MIME-Version: 1.0\n";
$strHeader .= "Content-Type: multipart/mixed; boundary=\"".$strSid."\"\n\n";
$strHeader .= "This is a multi-part message in MIME format.\n";

$strHeader .= "--".$strSid."\n";
$strHeader .= "Content-type: text/html; charset=utf-8\n";
$strHeader .= "Content-Transfer-Encoding: 7bit\n\n";
$strHeader .= $strMessage."\n\n";

//*** Attachment ***//
if($_FILES["fileAttach"]["name"] != "")
{
    $strFilesName = $_FILES["fileAttach"]["name"];
    $strContent = chunk_split(base64_encode(file_get_contents($_FILES["fileAttach"]["tmp_name"]))); 
    $strHeader .= "--".$strSid."\n";
    $strHeader .= "Content-Type: application/octet-stream; name=\"".$strFilesName."\"\n"; 
    $strHeader .= "Content-Transfer-Encoding: base64\n";
    $strHeader .= "Content-Disposition: attachment; filename=\"".$strFilesName."\"\n\n";
    $strHeader .= $strContent."\n\n";
}


$flgSend = @mail($strTo,$strSubject,null,$strHeader);  // @ = No Show Error //

if($flgSend)
{
    echo "Mail send completed.";
}
else
{
    echo "Cannot send mail.";
}
$strTo=$\u POST[“txtTo”];
$strSubject=$_POST[“txtSubject”];
$strMessage=nl2br($_POST[“txtDescription]”);
//***Uniqid会议***//
$strSid=md5(uniqid(time());
$strHeader=“”;
$strHeader.=“发件人:”..$\u POST[“txtFormName”]。\n收件人:“..$\u POST[“txtFormEmail”]”;
$strHeader.=“MIME版本:1.0\n”;
$strHeader.=“内容类型:多部分/混合;边界=\”.$strId.\“\n\n”;
$strHeader.=“这是MIME格式的多部分消息。\n”;
$strHeader.=“-”$strSid.\n”;
$strHeader.=“内容类型:text/html;字符集=utf-8\n”;
$strHeader.=“内容传输编码:7bit\n\n”;
$strHeader.=$strMessage.\n\n;
//***附件:***//
如果($\u文件[“文件附加”][“名称”]!=“”)
{
$strFilesName=$\u文件[“文件附加”][“名称”];
$strContent=chunk\u split(base64\u编码(文件获取内容($\u文件[“文件附加”][“tmp\u名称])));
$strHeader.=“-”$strSid.\n”;
$strHeader.=“内容类型:应用程序/八位字节流;名称=\”“。$strFilesName.\”\n”;
$strHeader.=“内容传输编码:base64\n”;
$strHeader.=“内容处置:附件;文件名=\”。$strFilesName.\“\n\n”;
$strHeader.=$strContent.\n\n;
}
$flgSend=@mail($strTo,$strSubject,null,$strHeader);/@=无显示错误//
如果($flgSend)
{
回显“邮件发送已完成。”;
}
其他的
{
echo“无法发送邮件。”;
}

看起来您的主机不允许执行
eval()
函数,这很常见,因为它可以在各种攻击脚本中用于攻击服务器。很可能他们也不允许您使用它,因为它可能会危及整个服务器,您需要更换主机

看起来您的主机不允许执行
eval()
函数,这很常见,因为它可以在各种攻击脚本中用于攻击服务器。很可能他们也不允许您使用它,因为它可能会危及整个服务器,您需要更换主机

更改主机并不能解决问题,我的Ubuntu服务器允许eval()函数,但我在Apache日志中报告了相同的错误:

  • 这是Apache错误: PHP解析错误:语法错误,第3行代码/home/websites/domainname/modules/PHP/PHP.module(80):eval()中出现意外的T_字符串
  • 2.php.module正在使用函数“php_eval: 您可以在此处查看:

    第80行是这样的: 打印评估(“?>”.$code)

    如果我删除了.$代码,那么就不会报告错误,所以我认为这不是php标记。网站上没有错误,只是每个访问者的错误日志都在增加

  • 您可以使用以下代码测试eval()函数是否被允许并在服务器上运行:

  • 进一步注意,我使用的是GoVideo主题,eval函数脚本在首页底部显示了3个URL。 3个URL指向Youtube、Flickr和facebook。你可以在这里查看它们(漫步到底)。


    为了清楚起见,如果我删除$code变量,那么我就会在首页上丢失3个URL。

    更改主机不会解决问题,我的Ubuntu服务器允许eval()函数,但我在Apache日志中报告了相同的错误:

  • 这是Apache错误: PHP解析错误:语法错误,第3行代码/home/websites/domainname/modules/PHP/PHP.module(80):eval()中出现意外的T_字符串
  • 2.php.module正在使用函数“php_eval: 您可以在此处查看:

    第80行是这样的: 打印评估(“?>”.$code)

    如果我删除了$代码,然后没有错误报告,所以我不认为这是php标签。网站上没有错误,只是每个访问者的错误日志都在增加

  • 您可以使用以下代码测试eval()函数是否被允许并在服务器上运行:

  • 进一步注意,我使用的是GoVideo主题,eval函数脚本在首页底部显示了3个URL。 3个URL指向Youtube、Flickr和facebook。你可以在这里看到它们(漫步到底)。


    明确,;如果我删除$code变量,那么我就会在首页上丢失3个URL。

    或者找到一种不使用
    eval()
    @Dunhamzzz发送电子邮件的方法谢谢你的回复……但是我不明白……你的意思……我对drupal和php是新手……你能再解释一下吗……drupal及其模块有时会有一些奇怪的事情。允许您将php放在模板中提倡使用eval(),而这在共享模板上是行不通的hosts@Dunhamzzz我已经在cpanel中创建了我的站点作为子域…这有问题吗?我们需要创建作为域的站点吗?绝对没有关系。您需要将主机更改为允许eval()的主机。这个问题不是你能解决的。或者找到一种不用
    eval()
    @Dunhamzzz就可以发送电子邮件的方法谢谢你的回复……但我不明白……你的意思……我是drupal和php新手……你能再解释一遍吗……drupal及其模块有时会出现一些奇怪的事情。允许您将php放在模板中提倡使用eval(),而这在共享模板上是行不通的hosts@Dunhamzzz我已经在cpanel中创建了我的站点作为子域…这有问题吗?我们需要创建作为域的站点吗?绝对没有关系。您需要将主机更改为允许eval()的主机。这个问题不是你们能解决的。你们能回显$代码并更新问题吗?这样我们就可以查看评估脚本中是否有任何错误。我怀疑它可能有“?>”或可能导致error@sridhar我已经删除了?>并放置了…但仍然显示相同的错误…发送邮件脚本是标准php脚本还是drupal模块