PHP无法重新声明功能

时间:2015-04-22 19:54:29

标签: php

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

  

致命错误:无法重新声明add_message()(之前在C:\ Program Files(x86)\ EasyPHP-DevServer-14.1VC11 \ data \ localweb \ projects \ Portfolio中声明 - Website \ asset \ functions.php:3)在C:\ Program Files(x86)\ EasyPHP-DevServer-14.1VC11 \ data \ localweb \ projects \ Portfolio - Website \ asset \ functions.php第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')");
    }
?>

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

问题是你包括init.php两次。一旦进入addcontactmessage.php,再次进入functions.php。

我建议删除include'init.php';你的functions.php页面中的一行。

或者

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

一个例子

的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')");
    }
?>

答案 2 :(得分:0)

是的,就在暗示它。 init.php被包含在functions.php内。从functions.php中删除它应该有效。

答案 3 :(得分:0)

您包括init.php两次。

中删除include 'asset/init.php

addcontactmessage.phpfunctions.php,哪一个最后