С момента обновления до php7.1 я получаю сообщение об ошибке в контактной форме. Понижение рейтинга не вариант. Любое решение? Я попробовал кое-что, что я нашел, но, кажется, не работает то, что я изменяю.
Я получаю сообщение «Предупреждение: недопустимое смещение строки в« имя »», и оно делает это для всех значений в форме (имя, адрес электронной почты, сообщение, …).
<?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();
вместо.
Других решений пока нет …