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('Unable to fetch user info', __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('Unable to fetch user info', __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('Unable to fetch post info', __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('Unable to fetch ban info', __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.'); else if (strtolower($ban_user) == 'guest' || strtolower($ban_user) == 'invité') message('Vous ne pouvez pas bannir l\'utilisateur "invité"'); // 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('Unable to add ban', __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('Unable to update ban', __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('Unable to delete ban', __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('Unable to fetch ban list', __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"; ?>