PUN_MOD || ($pun_user['g_id'] == PUN_MOD && $pun_config['p_mod_ban_users'] == '0')) message($lang_common['No permission']); // Add/edit a ban (stage 1) if (isset($_REQUEST['add_ban']) || isset($_GET['edit_ban'])) { if (isset($_GET['add_ban']) || isset($_POST['add_ban'])) { // If the id of the user to ban was provided through GET (a link from profile.php) if (isset($_GET['add_ban'])) { $add_ban = intval($_GET['add_ban']); if ($add_ban < 2) message($lang_common['Bad request']); $user_id = $add_ban; $result = $db->query('SELECT group_id, username, email FROM '.$db->prefix.'users WHERE id='.$user_id) or error('Impossible de retrouver les informations utilisateur', __FILE__, __LINE__, $db->error()); if ($db->num_rows($result)) list($group_id, $ban_user, $ban_email) = $db->fetch_row($result); else message('Aucun utilisateur enregistré sous cet identifiant (ID).'); } else // Otherwise the username is in POST { $ban_user = trim($_POST['new_ban_user']); if ($ban_user != '') { $result = $db->query('SELECT id, group_id, username, email FROM '.$db->prefix.'users WHERE username=\''.$db->escape($ban_user).'\' AND id>1') or error('Impossible de retrouver les informations utilisateur', __FILE__, __LINE__, $db->error()); if ($db->num_rows($result)) list($user_id, $group_id, $ban_user, $ban_email) = $db->fetch_row($result); else message('Aucun utilisateur enregistré sous ce nom d\'utilisateur. Si vous souhaitez ajouter un bannissement qui ne soit pas lié à un nom d\'utilisateur particulier, laissez la case vide.'); } } // Make sure we're not banning an admin if (isset($group_id) && $group_id == PUN_ADMIN) message('L\'utilisateur '.pun_htmlspecialchars($ban_user).' est un administrateur, il ne peut être bannis. Si vous souhaitez bannir un administrateur, vous devez d\'abord le rétrograder soit modérateur soit utilisateur.'); // If we have a $user_id, we can try to find the last known IP of that user if (isset($user_id)) { $result = $db->query('SELECT poster_ip FROM '.$db->prefix.'posts WHERE poster_id='.$user_id.' ORDER BY posted DESC LIMIT 1') or error('Impossible de retrouver les informations des messages', __FILE__, __LINE__, $db->error()); $ban_ip = ($db->num_rows($result)) ? $db->result($result) : ''; } $mode = 'add'; } else // We are editing a ban { $ban_id = intval($_GET['edit_ban']); if ($ban_id < 1) message($lang_common['Bad request']); $result = $db->query('SELECT username, ip, email, message, expire FROM '.$db->prefix.'bans WHERE id='.$ban_id) or error('Impossible de retrouver les informations de bannissement', __FILE__, __LINE__, $db->error()); if ($db->num_rows($result)) list($ban_user, $ban_ip, $ban_email, $ban_message, $ban_expire) = $db->fetch_row($result); else message($lang_common['Bad request']); $ban_expire = ($ban_expire != '') ? date('Y-m-d', $ban_expire) : ''; $mode = 'edit'; } $page_title = pun_htmlspecialchars($pun_config['o_board_title']).' / Admin / Bannissements'; $focus_element = array('bans2', 'ban_user'); require PUN_ROOT.'header.php'; generate_admin_menu('bans'); ?>

Réglages de bannissement avancés

Bannissement supplémentaire avec IP est adresse e-mail
Nom d'utilisateur Le nom d'utilisateur à bannir.
Adresses IP Une adresse IP ou une plage d'adresses IP que vous souhaitez bannir (ex. 150.11.110.1 ou 150.11.110). Séparez les adresses par des espaces. Si une adresse IP apparaît déjà, il s'agit de la dernière adresse IP connue de l'utilisateur dans la base de données.Cliquez ici pour voir les statistiques IP de cet utilisateur.' ?>
E-mail/domaine L'adresse e-mail ou le domaine e-mail que vous souhaitez bannir (ex. utilisateur@domaine.com ou domaine.com). Pour plus d'informations, voir "Autoriser les adresses e-mail bannies" à la page des Permissions.

Vous devez êtres très vigilant lorsque vous bannissez une plage d'IP car il y a fort probablement plusieurs utilisateurs qui correspondent à la même IP partielle.

Message et échéance d'interdiction
Message d'interdiction Le message qui sera affiché à l'utilisateur banni lorsqu'il visitera les forums.
Échéance d'interdiction La date à laquelle ce bannissement sera automatiquement supprimé (format: AAAA-MM-JJ). Pour supprimer manuellement, laissez ce champ vide.

IP ou une adresse e-mail.'); // Validate IP/IP range (it's overkill, I know) if ($ban_ip != '') { $ban_ip = preg_replace('/[\s]{2,}/', ' ', $ban_ip); $addresses = explode(' ', $ban_ip); $addresses = array_map('trim', $addresses); for ($i = 0; $i < count($addresses); ++$i) { $octets = explode('.', $addresses[$i]); for ($c = 0; $c < count($octets); ++$c) { $octets[$c] = (strlen($octets[$c]) > 1) ? ltrim($octets[$c], "0") : $octets[$c]; if ($c > 3 || preg_match('/[^0-9]/', $octets[$c]) || intval($octets[$c]) > 255) message('Vous avez saisi une IP/plage d\'IP incorrecte.'); } $cur_address = implode('.', $octets); $addresses[$i] = $cur_address; } $ban_ip = implode(' ', $addresses); } require PUN_ROOT.'include/email.php'; if ($ban_email != '' && !is_valid_email($ban_email)) { if (!preg_match('/^[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/', $ban_email)) message('L\'adresse e-mail (ex. utilisateur@domaine.com) ou le domaine d\'adresse e-mail (ex. domaine.com) que vous avez saisi est incorrect.'); } if ($ban_expire != '' && $ban_expire != 'Never') { $ban_expire = strtotime($ban_expire); if ($ban_expire == -1 || $ban_expire <= time()) message('Vous avez saisi une date d\'échéance incorrecte. Le format doit être AAAA-MM-JJ et la date doit-être d\'au moins un jour dans le futur.'); } else $ban_expire = 'NULL'; $ban_user = ($ban_user != '') ? '\''.$db->escape($ban_user).'\'' : 'NULL'; $ban_ip = ($ban_ip != '') ? '\''.$db->escape($ban_ip).'\'' : 'NULL'; $ban_email = ($ban_email != '') ? '\''.$db->escape($ban_email).'\'' : 'NULL'; $ban_message = ($ban_message != '') ? '\''.$db->escape($ban_message).'\'' : 'NULL'; if ($_POST['mode'] == 'add') $db->query('INSERT INTO '.$db->prefix.'bans (username, ip, email, message, expire) VALUES('.$ban_user.', '.$ban_ip.', '.$ban_email.', '.$ban_message.', '.$ban_expire.')') or error('Impossible d\'ajouter le bannissement', __FILE__, __LINE__, $db->error()); else $db->query('UPDATE '.$db->prefix.'bans SET username='.$ban_user.', ip='.$ban_ip.', email='.$ban_email.', message='.$ban_message.', expire='.$ban_expire.' WHERE id='.intval($_POST['ban_id'])) or error('Impossible de modifier le bannissement', __FILE__, __LINE__, $db->error()); // Regenerate the bans cache require_once PUN_ROOT.'include/cache.php'; generate_bans_cache(); redirect('admin_bans.php', 'Bannissement '.(($_POST['mode'] == 'edit') ? 'modifié' : 'ajouté').'. Redirection ...'); } // Remove a ban else if (isset($_GET['del_ban'])) { confirm_referrer('admin_bans.php'); $ban_id = intval($_GET['del_ban']); if ($ban_id < 1) message($lang_common['Bad request']); $db->query('DELETE FROM '.$db->prefix.'bans WHERE id='.$ban_id) or error('Impossible de supprimer le bannissement', __FILE__, __LINE__, $db->error()); // Regenerate the bans cache require_once PUN_ROOT.'include/cache.php'; generate_bans_cache(); redirect('admin_bans.php', 'Bannissement supprimé. Redirection ...'); } $page_title = pun_htmlspecialchars($pun_config['o_board_title']).' / Admin / Bannissement'; $focus_element = array('bans', 'new_ban_user'); require PUN_ROOT.'header.php'; generate_admin_menu('bans'); ?>

Nouveau bannissement

Ajouter un bannissement
Nom d'utilisateur
Le nom d'utilisateur à bannir (insensible à la casse). La page suivante vous permettra d'entrer une adresse IP et/ou une adresse e-mail de votre choix. Si vous souhaitez bannir une adresse IP, une plage d'adresses IP ou une adresse e-mail, laissez simplement ce champ vide.

Bannissements actuels

query('SELECT id, username, ip, email, message, expire FROM '.$db->prefix.'bans ORDER BY id') or error('Impossible de retrouver la liste des bannissements', __FILE__, __LINE__, $db->error()); if ($db->num_rows($result)) { while ($cur_ban = $db->fetch_assoc($result)) { $expire = format_time($cur_ban['expire'], true); ?>
Date d'échéance :
Nom d'utilisateur
E-mail
IP/plage d'IP
Motif

Modifier - Supprimer

Aucun bannissement à lister.

'."\n"; ?>