Max747
Messages postés258Date d'inscriptionvendredi 11 juillet 2014StatutMembreDernière intervention11 janvier 2024
-
17 nov. 2022 à 10:59
Max747
Messages postés258Date d'inscriptionvendredi 11 juillet 2014StatutMembreDernière intervention11 janvier 2024
-
21 nov. 2022 à 09:03
Bonjour,
Sur mon "livre d'or", je ne peux plus utiliser certaines options telles la suppressions de messages, ou bannissements d'IP.
Voici sa présentation de la partie administration du site en image:
Et voici le script de la page accueil.php pour l'administrateur:
<?php
// Quelques variables
$template_titre = "Accueil"; // Titre de la page
$template_aide = strtolower($template_titre); // Fichier aide
$template_impromptu = 1; // Afficher JSimpromptu
require ("include/template/header.php"); // Head
require ('../include/classes/livor.class.php'); // Classe livre d'or
require ('../include/classes/pagination.class.php'); // Classe pagination
// ********************************************* Messages en attente de validation
/*$sql_count_message_a_valider = $connexion->prepare("SELECT count(id) AS nb_message_a_valider FROM ".$prefixe_tables."livor_messages WHERE message_valide = 1");*/
$sql_count_message_a_valider = $connexion->prepare("SELECT count(id) AS nb_message_a_valider FROM livor_messages WHERE message_valide = 1");
$sql_count_message_a_valider->setFetchMode(PDO::FETCH_OBJ);
$sql_count_message_a_valider->execute();
$row_count_message_a_valider = $sql_count_message_a_valider->fetch();
// ********************************************* Pagination
$sql_count = $connexion->prepare("SELECT count(id) AS nbEnr FROM livor_messages WHERE message_valide = 0");
//$sql_count = $connexion->prepare("SELECT count(id) AS nbEnr FROM ".$prefixe_tables."livor_messages WHERE message_valide = 0");
$sql_count->setFetchMode(PDO::FETCH_OBJ);
$sql_count->execute();
$row_count = $sql_count->fetch();
$nombre_de_sujet_par_page = $row_config->nbre_message_par_page;
// Options
$options = array(
'nb_datas' => $row_count->nbEnr,
'data_per_page' => $nombre_de_sujet_par_page,
'nb_link_per_page' => 5,
'url' => $_SERVER['PHP_SELF'].'?',
'var_page' => 'page'
);
$pagination = new Pagination($options);
$pagination->separator = '';
if ($_GET['page'] != "") { $page_en_cours = $_GET['page']; } else { $page_en_cours = 1; }
$nombre_de_page = ceil($pagination->nb_datas / $nombre_de_sujet_par_page);
// Requete d'affichage des messages
$sql = $connexion->prepare("SELECT * FROM livor_messages WHERE message_valide = '0' ORDER BY id DESC LIMIT " . $pagination->start_offset . ", " . $pagination->data_per_page);
$sql->setFetchMode(PDO::FETCH_OBJ);
$sql->execute();
require ("include/template/body.php"); // Body
require ("include/noscript.php");
// ********************************************* ERREURS/SUUCCES MISE A JOUR AUTOMATIQUE
if (isset($_SESSION['error_maj1'])) {
echo $_SESSION['error_maj1'];
}
if (isset($_SESSION['error_maj2'])) {
echo $_SESSION['error_maj2'];
}
if (isset($_SESSION['error_maj3'])) {
echo $_SESSION['error_maj3'];
}
if (isset($_SESSION['error_maj4'])) {
echo $_SESSION['error_maj4'];
}
if (isset($_SESSION['succes_maj'])) {
// ********************************************* MAJ BDD
// Changement de version
$version = 9;
$update = $connexion->prepare("UPDATE livor_config SET version = ? WHERE id_config = 1");
$update->execute(array($version));
echo $_SESSION['succes_maj'];
}
// ********************************************* MESSAGES A VALIDER
if ($row_count_message_a_valider->nb_message_a_valider != 0) {
?>
<div class="erreur"><a href="valider_messages.php">Il y a <?php echo $row_count_message_a_valider->nb_message_a_valider; ?> message(s) à valider.</a></div>
<?php
}
// ********************************************* MODIFICATION D'UNE REPONSE
if ( $_GET['reponse'] == 'ok' ) {
?>
<div class="succes">La réponse a été enregistrée avec succès.</div>
<?php
}
// ********************************************* MODIFICATION D'UNE REPONSE
if ( $_GET['modif'] == 'okr' ) {
?>
<div class="succes">La réponse a été modifiée avec succès.</div>
<?php
}
// ********************************************* MODIFICATION D'UN MESSAGE
if ( $_GET['modif'] == 'ok' ) {
?>
<div class="succes">Le message a été modifié avec succès.</div>
<?php
}
// ********************************************* SUPPRESSION D'UN MESSAGE
/*var_dump($_GET['action']); */
/*exit("<br/> Stop");*/
if ( $_GET['action'] == 'sup' ) {
$delete = $connexion->prepare("DELETE FROM livor_messages WHERE id = '" . $_GET['id'] . "'");
$delete->execute();
$optimize = $connexion->prepare("OPTIMIZE TABLE livor_messages");
$optimize->execute();
?>
<div class="succes">Le message a été supprimé avec succès !!! Peut être devrez vous actualiser la page... </div>
<?php
}
// ********************************************* SUPPRESSION D'UNE REPONSE
if ($_GET['action'] == 'suprep' ) {
$delete = $connexion->prepare("DELETE FROM livor_reponses WHERE id_reponse = '" . $_GET['id'] . "'");
$delete->execute();
//$optimize = $connexion->prepare("OPTIMIZE TABLE ".$prefixe_tables."livor_reponses");
$optimize = $connexion->prepare("OPTIMIZE TABLE livor_reponses");
$optimize->execute();
?>
<div class="succes">La réponse a été supprimée avec succès !!! Peut être devrez vous actualiser la page... </div>
<?php
}
// ********************************************* BANNISSEMENT D'UNE IP
if ( $_GET['action'] == 'ban' ) {
// Requête d'insertion
$id = NULL;
$insert = $connexion->prepare("INSERT INTO livor_ip (id_ip,ip) VALUES (?,?)");
$insert->bindParam(1, $id);
$insert->bindParam(2, $_GET['ip']);
$insert->execute();
?>
<div class="succes">L'IP a été bannie avec succès !!!</div>
<?php
}
?>
<!-- PAGINATION -->
<div class="contour_pagination">
<table width="100%" border="0" cellspacing="0" cellpadding="5">
<tr>
<td class="affichage_page_X_sur_Y"><?php echo "Page " . $page_en_cours . " sur " . $nombre_de_page . ""; // affichage page X sur Y ?></td>
<td class="page_en_cours">Page en cours : <?php echo $page_en_cours; ?></td>
<td class="nombre_de_sujet">Nombre de message : <?php echo $pagination->nb_datas; ?></td>
<td class="pagination"><?php echo $pagination->getFirstLinks() . $pagination->getLinks() . $pagination->getLastLinks(); ?></td>
</tr>
</table>
</div>
<!-- AFFICHAGE DU LIVRE D'OR -->
<?php
// Affichage des messages
while( $row = $sql->fetch() ) {
$sql_reponse = $connexion->prepare("SELECT * FROM livor_reponses WHERE message_id = '".$row->id."'");
$sql_reponse->setFetchMode(PDO::FETCH_OBJ);
$sql_reponse->execute();
$row_reponse = $sql_reponse->fetch();
// Si résultat est différent de zéro
if ( $sql_reponse->rowCount() != 0 ) {
$reponse_admin = $row_reponse->reponse;
}
else {
$reponse_admin = "";
}
// Instentiation de la classe
$Classe_Livre_dor = new Livre_dor($row->nom, $row->email, $row->site, $row->ville_pays, $row->time, $row->note, $row->message, $query, $admin = 'o', $reponse_admin);
?>
<div class="les_messages">
<!-- AFFICHAGE NOM + EMAIL + SITE -->
<div class="nom"><strong>
<?php echo $Classe_Livre_dor->afficher_nom(); ?></strong>
<?php echo $Classe_Livre_dor->afficher_email(); ?>
<?php echo $Classe_Livre_dor->afficher_site();?>
</div>
<!-- Modification message -->
<div class="date"><a href="modifier.php?id=<?php echo $row->id; ?>
&page=<?php echo $_GET['page']; ?>"><img src="images/modifier.png" alt="Modifier le message" title="Modifier le message" width="16" height="16" /></a>
<!-- Supprimer message -->
<a onclick="return confirmsupmessage(<?php echo $row->id; ?>,<?php echo $page_en_cours ; ?>)" href="accueil.php"><img src="images/supprimer.png" alt="Supprimer le message de [<?php echo $Classe_Livre_dor->afficher_nom(); ?>]" title="Supprimer le message de [<?php echo $Classe_Livre_dor->afficher_nom(); ?>]" width="16" height="16" /></a>
<!-- Banir IP -->
<a onclick="return confirmban('<?php echo $row->ip; ?>','<?php echo $page_en_cours ; ?>')" href="accueil.php"><img src="images/bannir_ip.png" alt="Bannir l'IP [<?php echo $row->ip; ?> de <?php echo $Classe_Livre_dor->afficher_nom(); ?>]" title="Bannir l'IP [<?php echo $row->ip; ?> de <?php echo $Classe_Livre_dor->afficher_nom(); ?>]" width="16" height="16" /></a>
<!-- Lorsque Admin n'a pas encore répondu à un message -->
<?php if ($reponse_admin == "") { ?>
<a href="repondre.php?id=<?php echo $row->id; ?>&page=<?php echo $_GET['page']; ?>"><img src="../images/commun/admin.png" alt="Répondre à ce message" title="Répondre à ce message" width="16" height="16" /></a><?php } ?>
<!--DATE-->
<?php echo $Classe_Livre_dor->afficher_date(); ?>
</div>
<!-- VILLE/PAYS + NOTE -->
<div class="note"><?php echo $Classe_Livre_dor->afficher_ville_pays(); ?>
<?php echo $Classe_Livre_dor->afficher_note(); ?>
</div>
<!-- Modification du message Admin par celui ci -->
<div class="le_message">
<?php echo $Classe_Livre_dor->afficher_message();
if ($reponse_admin != "") { ?>
<div class="reponse"><div class="droite"><a href="modifier_reponse.php?id=<?php echo $row_reponse->id_reponse; ?>
&page=<?php echo $_GET['page']; ?>"><img src="images/modifier.png" alt="Modifier la réponse" title="Modifier la réponse" width="16" height="16" /></a>
<!-- Suppression de la réponse de l'admi par lui même -->
<a onclick="return confirmsupreponse(<?php echo $row_reponse->id_reponse; ?><?php echo $page_en_cours ; ?>)" href="accueil.php"><img src="images/supprimer.png" alt="Supprimer la réponse" title="Supprimer la réponse" width="16" height="16" /></a></div><span class="gras">Réponse de l'administrateur : </span><?php echo $Classe_Livre_dor->afficher_reponse(); ?></div><?php } ?></div>
</div>
<div class="centrer"><p><a href="#hautdepage"><img src="../images/commun/haut_page_gauche.gif" alt="Haut de page" title="Haut de page" width="16" height="13" />Haut de page<img src="../images/commun/haut_page_droite.gif" alt="Haut de page" title="Haut de page" width="16" height="13" /></a></p></div>
<?php
}
?>
<!-- PAGINATION -->
<div class="contour_pagination">
<table width="100%" border="0" cellspacing="0" cellpadding="5">
<tr>
<td class="affichage_page_X_sur_Y"><?php echo "Page " . $page_en_cours . " sur " . $nombre_de_page . "";// affichage page X sur Y ?></td>
<td class="page_en_cours">Page en cours : <?php echo $page_en_cours; ?></td>
<td class="nombre_de_sujet">Nombre de message : <?php echo $pagination->nb_datas; ?></td>
<td class="pagination"><?php echo $pagination->getFirstLinks() . $pagination->getLinks() . $pagination->getLastLinks(); ?></td>
</tr>
</table>
</div>
<script>
function confirmsupmessage(id,page) {
$.prompt('ATTENTION : LA SUPPRESSION EST IRREVERSIBLE !!!\n\nEtes-vous sûr de vouloir supprimer ce message ?',{
show:'dropIn',
buttons:[{title: 'Supprimer',value:true},{title: 'Annuler',value:false}],
submit: function(v,m,f){
if (v != false) {
document.location.href="accueil.php?id="+id+"&page="+page+"&action=sup";
}
}
});
return false ;
}
function confirmsupreponse(id,page)
$.prompt('ATTENTION : LA SUPPRESSION EST IRREVERSIBLE !!!\n\nEtes-vous sûr de vouloir supprimer cette réponse ?',{
show:'dropIn',
buttons:[{title: 'Supprimer',value:true},{title: 'Annuler',value:false}],
submit: function(v,m,f){
if (v != false) {
document.location.href="accueil.php?id="+id+"&page="+page+"&action=suprep";
}
}
});
return false ;
}
function confirmban(ip,page) {
$.prompt('Etes-vous sûr de vouloir bannir cette IP ?',{
show:'dropIn',
buttons:[{title: 'Bannir',value:true},{title: 'Annuler',value:false}],
submit: function(v,m,f){
if (v != false) {
document.location.href="accueil.php?ip="+ip+"&page="+page+"&action=ban";
}
}
});
return false ;
}
</script>
<?php
var_dump($_GET['action']);
require ("include/template/footer.php"); // Footer
?>
En ce qui me concerne, en prenant l'exemple de la suppression d'un message inséré dans le livre par un utilisateur, je n'y parviens plus en cliquant sur l'icône représentée par l'image ci dessus.
C'est à dire plus exactement au niveau du script à la ligne 193 par onclick
Car en fait pour supprimer ce message, il faudrait que la condition en ligne 109 soit vraie.
Mais celle ci ne peut l' être comme l'indique cette image:
crée par le script de la ligne 107 (ligne 2 ci dessous) de ce même fichier que voici:
// ********************************************* SUPPRESSION D'UN MESSAGE
var_dump($_GET['action']);
/*exit("<br/> Stop");*/
if ( $_GET['action'] == 'sup' ) {
$delete = $connexion->prepare("DELETE FROM livor_messages WHERE id = '" . $_GET['id'] . "'");
$delete->execute();
$optimize = $connexion->prepare("OPTIMIZE TABLE livor_messages");
$optimize->execute();
?>
<div class="succes">Le message a été supprimé avec succès !!! Peut être devrez vous actualiser la page... </div>
<?php
}
Il ne m'est plus possible aussi de bannir les adresses IP indésirables ainsi que d'effacer mes réponses éventuelles à certains utilisateurs de mon livre.
Je compte sur votre aide pour résoudre au moins deux de ces problèmes. Car seul, je n'y parviens pas malgré ces quelques investigations de ma part.
jordane45
Messages postés38173Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention10 mai 20244 665 20 nov. 2022 à 19:31
Ta fonction JS attend 2 paramètres
function confirmsupreponse(id,page){
Lorsque tu fais appel à cette fonction dans ton code php ( à la ligne 221 ) tu as mis les deux variables... mais tu as oublié de les séparer par une virgule