Waring: недопустимое смещение строки в ‘name’ в контактной форме начиная с PHP7.1

С момента обновления до 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";
?>

0

Решение

$error = '';

не имеет смысла. Вы инициализируете $error как строка, но затем вы обращаетесь к ней, как к массиву:

    $error['name']=true;

Наверное должно быть

$error = array();

вместо.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector