我正在为我的网站制作联系表单,它使用数据库来存储发送的邮件。我编写了一个添加消息和用户电子邮件的功能,但是当我在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')");
}
?>
答案 0 :(得分:1)
使用require_once
和include_once
来阻止加载相同的包含文件两次。
答案 1 :(得分:0)
问题是你包括init.php
两次。一旦进入addcontactmessage.php,再次进入functions.php。
我建议删除include'init.php';你的functions.php页面中的一行。
或者
您可以使用php的内置函数require_once
和include_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.php
或functions.php
,哪一个最后。