#php #web-services #oop #phpbb
#php #веб-службы #ооп #phpbb
Вопрос:
У меня есть скрипт, который использует некоторые функции phpBB для отправки emial всем участникам форума. Я создал страницу php, форму с темой и сообщением и добавил функции phpBB, которые будут это делать. Проблема в том, что ИНОГДА я получаю эту ошибку:
Fatal error: Cannot redeclare smtpmail() (previously declared in /home/**/domains/**.ca/public_html/zonemembres/includes/functions_messenger.php:896) in /home/**/domains/**.ca/public_html/zonemembres/includes/functions_messenger.php on line 1103
здесь вы можете увидеть код:
if (!function_exists('send')) {
include($phpbb_root_path . 'includes/functions_messenger.' . $phpEx);
}
for ($i = 0, $size = sizeof($contact_users); $i < $size; $i ) {
$messenger = new messenger(true);
// Email headers
$messenger->headers('X-AntiAbuse: Board servername - ' . $config['server_name']);
$messenger->headers('X-AntiAbuse: User_id - ' . $user->data['user_id']);
$messenger->headers('X-AntiAbuse: Username - ' . $user->data['username']);
$messenger->headers('X-AntiAbuse: User IP - ' . $user->ip);
if (!empty($contact_data['contact_reason'])) {
$messenger->template('contact', $contact_users[$i]['user_lang']);
} else {
$messenger->template('contact_no_reason_custom', $contact_users[$i]['user_lang']);
}
$messenger->to($contact_users[$i]['user_email'], $contact_users[$i]['username']);
//$messenger->to('silvian.iosub@gmail.com', $contact_users[$i]['username']);
$messenger->im($contact_users[$i]['user_jabber'], $contact_users[$i]['username']);
$messenger->from($contact_data['email']);
$messenger->replyto($contact_data['email']);
$link = 'http://www.adgmrcq.ca/zonemembres/viewtopic.php?f=' . $config_contact["contact_bot_forum"] . 'amp;t=' . $last_topic_id[0]["topic_id"];
$messenger->assign_vars(array(
'ADM_USERNAME' => htmlspecialchars_decode($user->data['username']),
'ADM_EMAIL' => htmlspecialchars_decode($user->data['user_email']),
'SITENAME' => htmlspecialchars_decode($config['sitename']),
'USER_IP' => $user->ip,
'USERNAME' => $contact_users[$i]['username'],
'USER_EMAIL' => htmlspecialchars_decode($contact_data['email']),
'DATE' => $date,
'REASON' => htmlspecialchars_decode($contact_data['contact_reason']),
'SUBJECT' => htmlspecialchars_decode($subject),
'MESSAGE' => $message,
'LINK' => $link,
));
$contact_users[$i]['user_notify_type'] = NOTIFY_EMAIL;
$messenger->send($contact_users[$i]['user_notify_type']);
$messenger->save_queue();
unset($messenger);
}
Это та часть, которая меня интересует. $messenger
Переменная объявляется в functions_messenger.php
файле, который, по-видимому, объявляет функцию дважды. Странно то, что я получаю эту ошибку только иногда. Мне не удалось найти правило, как это может появиться.
У кого-нибудь есть какие-нибудь идеи? Спасибо!!
Ответ №1:
Перейдите к файлу /home//domains/.ca/public_html/zonemembres/includes/functions_messenger.php , найдите функцию smtpmail() и оберните ее в оператор if следующим образом:
if(!function_exists('smtpmail'))
{
function smtpmail()
{
// Function decleration here
}
}