Консультация № 174254
15.11.2009, 18:30
0.00 руб.
0 1 0
Добрый вечер ув. эксперты
Я хочу написать класс, который будет находить пользователей форума, которые в опр. форуме не оставили топик, и высылать им на мыло опр. уведомление, что ему нужно срочно оставить там сообщение...я начал писать класс, и столкнулся с проблемой, я не знаю как найти такого пользователя, и именно ему отправить сообщение, посмотрите пожалуйста мой класс...я только начал его писать, по этому там возможно есть некие недочеты.. форум phpbb3, нужно отправлять сообщение пользователю если он не оставил пост в форуме (viewforum.php?f=8)

Спасибо за помощь

Приложение:
<?
class MesseageMail {
function send_mail($mail_to, $thema, $html,)
$EOL = "\r\n";
$boundary = "--".md5(uniqid(time()));
$headers = "MIME-Version: 1.0;$EOL";
$headers .= "Content-Type: multipart/mixed; boundary="$boundary"$EOL";
$headers .= 'From: '.$_POST['mail_to'];
$multipart = "--$boundary$EOL";
$multipart .= "Content-Type: text/html; charset=windows-1251$EOL";
$multipart .= "Content-Transfer-Encoding: base64$EOL";
$multipart .= $EOL;
$multipart .= chunk_split(base64_encode($html));
$multipart .= "$EOL--$boundary$EOL";
$multipart .= "Content-Type: application/octet-stream; name="$name"$EOL";
$multipart .= "Content-Transfer-Encoding: base64$EOL";
$multipart .= "Content-Disposition: attachment; filename="$name"$EOL";
$multipart .= $EOL;
$multipart .= "$EOL--$boundary--$EOL";
if(!mail($mail_to, $thema, $multipart, $headers))
{return False;
}else {return True;
}exit;
}

function sqlconnect($host,$user,$password,$database) {
$db = mysql_connect($host,$user,$password);
$db = mysql_select_db($database);
return $db;
}

function sql_query($sharp,$table,$where) {
$sql="select $sharp from $table where $where";
$sql = mysql_query($sql);
$sql = mysql_num_rows($sql);
return $sql;
}

function select_user() {
}
}
?>

Обсуждение

Неизвестный
15.11.2009, 20:29
общий
Герасимов Виталий Владиславович:
Общий алгоритм там будет следующий:
1. извлечь ID всех пользователей, которые оставили сообщения в форуме:
SELECT DISTINCT `poster_id` FROM `phpbb_posts` WHERE `forum_id`=8

2. извлечь список всех активированных пользователей:
SELECT `user_id` FROM `phpbb_users` WHERE `user_type`=0
Поле user_type - тип учетной записи. В данном случае я выбираю всех обычных пользователей.
Цитата: Is there a list of "user_type"s?
There is a list in
includes/constants.php

Code: Select all
define('USER_NORMAL', 0);
define('USER_INACTIVE', 1);
define('USER_IGNORE', 2);
define('USER_FOUNDER', 3);



0 is for normal users
1 is for deactivated/inactive users
2 is for bots and anonymous user
3 is founder user

admin may not be founder, so it can have a user_type among (0, 1, 3)


3. Надо выбрать из второго списка тех, кого нет в первом списке, и сформировать из них новый список - тех, кому будете отправлять сообщение.
Форма ответа