PHP无法重新声明函数

我正在为我的网站制作联系表单,并使用数据库存储发送的邮件。 我写了一个函数,它添加了消息和用户的电子邮件,但是当我在addcontactmessage.php调用它时,它告诉我不能重新声明该函数。

致命错误:无法在C: Program Files(x86) EasyPHP-DevServer-14.1VC11 data localweb projects Portfolio - Website asset functions.php:3)中重新声明add_message() Program Files(x86) EasyPHP-DevServer-14.1VC11 data localweb projects Portfolio - Website asset functions.php on line 5

的init.php:

<?php
require'connect.php';
require'functions.php';
?> 

addcontactmessage.php:

<?php

include'asset/init.php';

    $message = $_POST['message'];
    $email = $_POST['email'];

    add_message($message, $email);

    header('Location: index.php'); 
?>

的functions.php:

<?php
    include 'init.php';
    function add_message ($message, $email) {
        mysqli_query($con, "INSERT INTO `contactmessage`(`message`, `email`) VALUES ('$message,'$email')");
    }
?>

问题是你包含两次init.php 。 一旦在addcontactmessage.php中,并再次在functions.php中。

我建议删除include'init.php'; 来自你的functions.php页面。

要么

您可以使用内建函数require_onceinclude_once php来避免多次加载同一个文件。


一个例子

的init.php:

<?php
require_once('connect.php';
require_once('functions.php');
?> 

addcontactmessage.php:

<?php

include_once('asset/init.php');

    $message = $_POST['message'];
    $email = $_POST['email'];

    add_message($message, $email);

    header('Location: index.php'); 
?>

的functions.php:

<?php
    include_once('init.php');
    function add_message ($message, $email) {
        mysqli_query($con, "INSERT INTO `contactmessage`(`message`, `email`) VALUES ('$message,'$email')");
    }
?>

使用require_onceinclude_once来防止加载相同的包含文件两次。


是的,我们刚刚提出这个建议。 init.php被包含在functions.php 。 从functions.php删除它应该可以工作。

链接地址: http://www.djcxy.com/p/69535.html

上一篇: PHP cannot redeclare function

下一篇: result not working converting mysql to mysqli