2015-04-22 5 views
1

Я делаю контактную форму для своего сайта, и она использует базу данных для хранения отправленных сообщений. Я написал функцию, которая добавляет сообщение и электронную почту пользователей, однако, когда я вызываю его в addcontactmessage.php, он говорит мне, что я не могу переопределить функцию.PHP не может переопределить функцию

Fatal error: Cannot redeclare add_message() (previously declared in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\projects\Portfolio -- Website\asset\functions.php:3) in C:\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')"); 
    } 
?> 
+3

'functions.php' включает' init.php' и 'init.php' включает' functions.php'. Это бесконечный цикл. – Barmar

+1

Пойдите с бармаром: http://stackoverflow.com/a/29807608/797495 –

ответ

0

Проблема в том, вы в том числе init.php дважды. Один раз в addcontactmessage.php и снова в functions.php.

Я бы рекомендовал удалить include 'init.php'; с вашей страницы functions.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')"); 
    } 
?> 
1

Используйте require_once и include_once, чтобы предотвратить загрузку одного и того же файла включения дважды.

0

Yup, вот-вот предложит его. init.php входит задний внутри functions.php. Удаление его с functions.php должно работать.

0

Вы включаете в себя init.php дважды.

Удалить include 'asset/init.php из

addcontactmessage.php или functions.php, который приходит последний.

Смежные вопросы