[英]Waring: illegal string offset in 'name' in contactform since PHP7.1
自从更新到php7.1以来,我在contactform上收到错误消息。 降级不是一种选择。 有什么办法吗? 我尝试了一些发现的事情,但是我所做的更改似乎不起作用。
我收到的消息是“警告:'名称'中存在非法的字符串偏移量”,并且它对表单中的所有值(名称,电子邮件,消息等)执行此操作。
<?php
require_once("classes/phpmailer/class.phpmailer.php");
$smarty_mail = new Smarty;
$smarty_mail->template_dir = 'templates/mail';
$smarty_mail->compile_dir = 'pages/templates_c';
if ( isset($_POST['submit']) )
{
$error = '';
print_r($error);
if (!trim($_POST['name'])) $error['name']=true;
if (!check_email($_POST['email'])) $error['email']=true;
if (!trim($_POST['message'])) $error['message']=true;
if (!isset($_POST['privacypolicy'])) $error['privacypolicy']=true;
$_POST['name'] = stripslashes($_POST['name']);
$_POST['message'] = stripslashes($_POST['message']);
if (!$error)
{
$contact = $_POST;
$contact['ip'] = $_SERVER['REMOTE_ADDR'];
$contact['host'] = gethostbyaddr( $contact['ip']);
$smarty_mail->assign("contact", $contact);
$message = $smarty_mail->fetch("mail_contact.tpl.html");
$subject = "contactformulier";
if( sendemail(MAIL_FROM_NAME, MAIL_FROM, $_POST['name'], $_POST['email'], $subject, $message, "HTML", "", ""))
{
$smarty->assign("send", true);
}
}
$smarty->assign("error",$error);
$smarty->assign("set", $_POST);
}
$main_content_template = "contact.tpl.html";
?>
$error = '';
没有意义。 您正在将$error
初始化为一个字符串,但是随后您就像访问一个数组一样对其进行访问:
$error['name']=true;
应该是
$error = array();
代替。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.