Pagina 1 van 1
mass mail beveiliging er uit halen?
Geplaatst: 08 apr 2007, 00:03
door volgensbartjes.nl
hoi,
kan iemand mij misschien helpen aan een beveiligings vrije mass mail pagina? hij zit natuurlijk al in het admin gedeelte, mar ik wil hem nu óók beschikbaar maken voor een groep, ik ga een groep mail aanmaken, en alleen mensen die daar lid van zijn kunnen dan die mass mail naar andere leden sturen. (is voor een ledengedeelte van een site van een vereniging, daar wil ik een forum voor gebruiken)
de beveiliging maak ik er daarna zelf in met zo iets:
Code: Selecteer alles
if ( $userdata['user_id'] == mail )
{
de hele mass mail code
}
redirect(append_sid("geentoegang.php", true));
exit;
ik heb zelf al even zitten vogelen, maar hij heeft andere bestanden natuurlijk nodig, maar daar zit volgens mij ook juist de beveiliging in... het is dus de bedoeling dat ik het bestand straks in de root van phpbb2 kan zetten, en dat hij dan dus bij de bestandjes kan die hij nodig heeft (of ik moet die even kopieren naar de root, kan ook). hij blijft dan gewoon in de admin staan zoals normaal, en als extra in de root...
Geplaatst: 08 apr 2007, 01:02
door Tom V
Ik zal die mod maken, maar omdat het al laat is, zal ik je wel al op weg helpen als je die mod snel wilt hebben:
Kopieer /admin/admin_mass_mail.php naar /mass_mail.php
bewerk dan mass_mail.php
Code: Selecteer alles
include('./page_header_admin.'.$phpEx);
include('./page_footer_admin.'.$phpEx);
naar
Code: Selecteer alles
include($phpbb_root_path . 'includes/page_header.'.$phpEx);
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
lijn 22-38 vervangen door
Code: Selecteer alles
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
Geplaatst: 08 apr 2007, 01:05
door volgensbartjes.nl
ik zal kijken of ik het morgen red met die dingen, ga nu slapen, als je het morgen al eerder voor me hebt is het natuurlijk helemaal mooi

Geplaatst: 09 apr 2007, 10:46
door volgensbartjes.nl
edit, ik heb hem 13.20 ff aangepast dat niet de hele pagina in de if else zit, maar dat ik er een !$userdata['group_id'] == 3 van heb gemaakt, zodat de code van de rest van de pagina er gewoon achter kan, ipv dat je de mail code tussen de { } zet en de redirect er na... het enige wat ik dus nog moet weten, is de waarde om de groep waar de gebruiker in zit te bepalen goed?
ok, ik heb hem aangepast en zonder beveiliging word hij inderdaad weergeeven, maar nu wil ik die beveiliging er is. voor anymoud users heb ik al, gebruik ik nameloijk op iedere pagina om nar de login te wijzen. maar nu de groep, hoe moet ik dat doen? ik snap de hele structuur van de group tabel niet als ik in mijn database kijk... ik wil dus zo iets, maar dan met goede waarden:
Code: Selecteer alles
<?php
/***************************************************************************
* admin_mass_email.php
* -------------------
* begin : Thu May 31, 2001
* copyright : (C) 2001 The phpBB Group
* email : support@phpbb.com
*
* $Id: admin_mass_email.php,v 1.15.2.7 2003/05/03 23:24:01 acydburn Exp $
*
****************************************************************************/
/***************************************************************************
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
***************************************************************************/
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
//ongewente bezoekers buiten houden
if ( $userdata['user_id'] == ANONYMOUS )
{
redirect(append_sid("login.$phpEx?redirect=mass_email.$phpEx", true));
exit;
}
//mensen die niet in de groep mail zitten redirecten, als ze der wel in zitten kan hij doorgaan met de rest v/h script van de mailpagina.
if ( !$userdata['group_id'] == 3 ) //ik ga er hier even vanuit dan de group id van de mailgroep 3 word. weet alleen niet of de waarde zo goed is.
{
redirect(append_sid("login.$phpEx?redirect=geentoegang.$phpEx", true));
exit;
}
//
// Increase maximum execution time in case of a lot of users, but don't complain about it if it isn't
// allowed.
//
@set_time_limit(1200);
$message = '';
$subject = '';
//
// Do the job ...
//
if ( isset($HTTP_POST_VARS['submit']) )
{
$subject = stripslashes(trim($HTTP_POST_VARS['subject']));
$message = stripslashes(trim($HTTP_POST_VARS['message']));
$error = FALSE;
$error_msg = '';
if ( empty($subject) )
{
$error = true;
$error_msg .= ( !empty($error_msg) ) ? '<br />' . $lang['Empty_subject'] : $lang['Empty_subject'];
}
if ( empty($message) )
{
$error = true;
$error_msg .= ( !empty($error_msg) ) ? '<br />' . $lang['Empty_message'] : $lang['Empty_message'];
}
$group_id = intval($HTTP_POST_VARS[POST_GROUPS_URL]);
$sql = ( $group_id != -1 ) ? "SELECT u.user_email FROM " . USERS_TABLE . " u, " . USER_GROUP_TABLE . " ug WHERE ug.group_id = $group_id AND ug.user_pending <> " . TRUE . " AND u.user_id = ug.user_id" : "SELECT user_email FROM " . USERS_TABLE;
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not select group members', '', __LINE__, __FILE__, $sql);
}
if ( $row = $db->sql_fetchrow($result) )
{
$bcc_list = array();
do
{
$bcc_list[] = $row['user_email'];
}
while ( $row = $db->sql_fetchrow($result) );
$db->sql_freeresult($result);
}
else
{
$message = ( $group_id != -1 ) ? $lang['Group_not_exist'] : $lang['No_such_user'];
$error = true;
$error_msg .= ( !empty($error_msg) ) ? '<br />' . $message : $message;
}
if ( !$error )
{
include($phpbb_root_path . 'includes/emailer.'.$phpEx);
//
// Let's do some checking to make sure that mass mail functions
// are working in win32 versions of php.
//
if ( preg_match('/[c-z]:\\\.*/i', getenv('PATH')) && !$board_config['smtp_delivery'])
{
$ini_val = ( @phpversion() >= '4.0.0' ) ? 'ini_get' : 'get_cfg_var';
// We are running on windows, force delivery to use our smtp functions
// since php's are broken by default
$board_config['smtp_delivery'] = 1;
$board_config['smtp_host'] = @$ini_val('SMTP');
}
$emailer = new emailer($board_config['smtp_delivery']);
$emailer->from($board_config['board_email']);
$emailer->replyto($board_config['board_email']);
for ($i = 0; $i < count($bcc_list); $i++)
{
$emailer->bcc($bcc_list[$i]);
}
$email_headers = 'X-AntiAbuse: Board servername - ' . $board_config['server_name'] . "\n";
$email_headers .= 'X-AntiAbuse: User_id - ' . $userdata['user_id'] . "\n";
$email_headers .= 'X-AntiAbuse: Username - ' . $userdata['username'] . "\n";
$email_headers .= 'X-AntiAbuse: User IP - ' . decode_ip($user_ip) . "\n";
$emailer->use_template('admin_send_email');
$emailer->email_address($board_config['board_email']);
$emailer->set_subject($subject);
$emailer->extra_headers($email_headers);
$emailer->assign_vars(array(
'SITENAME' => $board_config['sitename'],
'BOARD_EMAIL' => $board_config['board_email'],
'MESSAGE' => $message)
);
$emailer->send();
$emailer->reset();
message_die(GENERAL_MESSAGE, $lang['Email_sent'] . '<br /><br />' . sprintf($lang['Click_return_admin_index'], '<a href="' . append_sid("index.$phpEx?pane=right") . '">', '</a>'));
}
}
if ( $error )
{
$template->set_filenames(array(
'reg_header' => 'error_body.tpl')
);
$template->assign_vars(array(
'ERROR_MESSAGE' => $error_msg)
);
$template->assign_var_from_handle('ERROR_BOX', 'reg_header');
}
//
// Initial selection
//
$sql = "SELECT group_id, group_name
FROM ".GROUPS_TABLE . "
WHERE group_single_user <> 1";
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, 'Could not obtain list of groups', '', __LINE__, __FILE__, $sql);
}
$select_list = '<select name = "' . POST_GROUPS_URL . '"><option value = "-1">' . $lang['All_users'] . '</option>';
if ( $row = $db->sql_fetchrow($result) )
{
do
{
$select_list .= '<option value = "' . $row['group_id'] . '">' . $row['group_name'] . '</option>';
}
while ( $row = $db->sql_fetchrow($result) );
}
$select_list .= '</select>';
//
// Generate page
//
include($phpbb_root_path . 'includes/page_header.'.$phpEx);
$template->set_filenames(array(
'body' => 'admin/user_email_body.tpl')
);
$template->assign_vars(array(
'MESSAGE' => $message,
'SUBJECT' => $subject,
'L_EMAIL_TITLE' => $lang['Email'],
'L_EMAIL_EXPLAIN' => $lang['Mass_email_explain'],
'L_COMPOSE' => $lang['Compose'],
'L_RECIPIENTS' => $lang['Recipients'],
'L_EMAIL_SUBJECT' => $lang['Subject'],
'L_EMAIL_MSG' => $lang['Message'],
'L_EMAIL' => $lang['Email'],
'L_NOTICE' => $notice,
'S_USER_ACTION' => append_sid('admin_mass_email.'.$phpEx),
'S_GROUP_SELECT' => $select_list)
);
$template->pparse('body');
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
?>
Geplaatst: 09 apr 2007, 20:32
door Tom V
Heb net een mod gevonden die dat kan (ga hem zelf wel eens instaleren voor het te bekijken)
Page Permissions
Geplaatst: 09 apr 2007, 23:21
door volgensbartjes.nl
hmm ok, hele mod? is het niet te doen met wat ik er in heb gezet? alleen even de juiste waarde er in zetten?
Geplaatst: 10 apr 2007, 06:00
door Coen
volgensbartjes.nl schreef:hmm ok, hele mod? is het niet te doen met wat ik er in heb gezet? alleen even de juiste waarde er in zetten?
Jawel hoor, alleen de MOD die hierboven genoemd word, maakt het mogelijk om het middels het ACP te regelen, wat dus eenvoudiger en gebruiksvriendelijker is!

Geplaatst: 10 apr 2007, 08:14
door volgensbartjes.nl
kan iemand dan misschien alvast wel de juiste gegevens geven? dan kan ik later kijken naar die mod. het forum is al online en wil eigenlijk zo snel mogenlijk die pagina nu werkend hebben

Geplaatst: 10 apr 2007, 09:08
door Coen
volgensbartjes.nl schreef:kan iemand dan misschien alvast wel de juiste gegevens geven? dan kan ik later kijken naar die mod. het forum is al online en wil eigenlijk zo snel mogenlijk die pagina nu werkend hebben

Er zijn nu al twee panklare oplossingen gegeven, wat is het probleem? Welke gegevens wil je hebben, voor welke oplossing?

Geplaatst: 10 apr 2007, 09:23
door volgensbartjes.nl
edit, ik heb hem 13.20 ff aangepast dat niet de hele pagina in de if else zit, maar dat ik er een !$userdata['group_id'] == 3 van heb gemaakt, zodat de code van de rest van de pagina er gewoon achter kan, ipv dat je de mail code tussen de { } zet en de redirect er na... het enige wat ik dus nog moet weten, is de waarde om de groep waar de gebruiker in zit te bepalen goed?
hij doet het nog niet met de code die ik als laatst heb aangepast, ik denk dat ik dus de verkeerde waarde gebruik voor het gebruiken van de group id van de ersoon die de pagina bezoekt....
Geplaatst: 25 apr 2007, 23:23
door volgensbartjes.nl
weet iemand met welke waarde ik een soort group id kan checken? heb geen zin in zon complete toegangs mod...
ook is de mod niet te downloaden zoals vele anderen, sinds dat alles opeens op 3 gericht is op die site lijk je wel niks meer te kunnen vinden voor 2, maargoed, hele mod vind ik dus wat omslachtig als het ook zo moet kunnen, niemand anders hoeft rechten gebruiksvriendelijk aan te passen, alleen ik eenmalig in deze code als het lukt
Geplaatst: 25 apr 2007, 23:32
door Tom V
volgensbartjes.nl schreef:weet iemand met welke waarde ik een soort group id kan checken? heb geen zin in zon complete toegangs mod...
Via een sql zoeken of de gebruiker in de groep zit waar jij op wilt testen, daarna toegang geven tot, anders niet.
volgensbartjes.nl schreef:ook is de mod niet te downloaden zoals vele anderen, sinds dat alles opeens op 3 gericht is op die site lijk je wel niks meer te kunnen vinden voor 2, maargoed, hele mod vind ik dus wat omslachtig als het ook zo moet kunnen, niemand anders hoeft rechten gebruiksvriendelijk aan te passen, alleen ik eenmalig in deze code als het lukt
Al gelezen:
IMPORTANT: How to securely download MODs while the database is unavailable
dan had je deze link gevonden:
http://www.phpbb.com/files/mods/page_pe ... .1.2.2.zip
Geplaatst: 25 apr 2007, 23:42
door volgensbartjes.nl
dark inca schreef:volgensbartjes.nl schreef:weet iemand met welke waarde ik een soort group id kan checken? heb geen zin in zon complete toegangs mod...
Via een sql zoeken of de gebruiker in de groep zit waar jij op wilt testen, daarna toegang geven tot, anders niet.
ik neem aan dat je daar zo iets mee bedoelt toch?
Code: Selecteer alles
if ( !$userdata['group_id'] == 3 ) //ik ga er hier even vanuit dan de group id van de mailgroep 3 word. weet alleen niet of de waarde zo goed is.
{
redirect(append_sid("login.$phpEx?redirect=geentoegang.$phpEx", true));
exit;
}
want op deze manier wordt ook op gebruiker gechecked... maar het werkt niet, dus heb ik denk ik verkeerde enamingen er voor, of misschien dat deze waarde in een eerder scriptje nog opgehaal moet worden?
Geplaatst: 26 apr 2007, 09:22
door Tom V
$userdata['group_id'] bestaat niet.
Code: Selecteer alles
$sql = "SELECT group_id
FROM " . USER_GROUP_TABLE. "
WHERE user_id= '". $userdate['user_id']. "'";
Met deze sql zou je moeten vinden in welke groepen de gebruiker zit.
Geplaatst: 15 mei 2007, 11:00
door volgensbartjes.nl
ik heb het nog geprobeerd op webmastercity,
http://www.webmastercity.nl/forum/viewt ... 189#228189
weet iemand hier misschien hoe dit probleem komt dat hij nu niets weergeeft op die pagina?