繁体   English   中英

警告:自PHP7.1起,contactform中'name'中的字符串偏移量非法

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM