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_once
和include_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_once
和include_once
来防止加载相同的包含文件两次。
是的,我们刚刚提出这个建议。 init.php
被包含在functions.php
。 从functions.php
删除它应该可以工作。