Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les tutoriels > Non-Officiels > Site Web > PHP > Systèmes complets > Créer son forum de toutes pièces > Les pages administration > Modérer le forum > Lecture des commentaires

Modérer le forum

Vous devez être inscrit pour pouvoir poster des messages

Page : 1 
Pseudo Commentaire
Page : 1 
Hors ligne arcaon # Posté le 15/02/2007 à 12:45:14 - Ce membre a mis la note : 17
bou!!! J'vous ai fais peur?
Avatar
Groupe : Membres
Salut,

Pas mal du tout ce tuto, je n'ai pas tésté la correction car j'ai fait le TP et que tous à l'air de marcher correctement (ai je n'ai pas beaucoup de temps) ;)
Bon, alors, je pense que ton TP est bien fait, tu présentes et plannifies bien ce qu'il faille faire, bravo :)
Quoique j'ai un peux gallérer pour fermer les topics (pleins de pages à modifier ^^ ), enfin bon, j'ai fini est tous marche :)

Donc je te donne un jolie 17/20, continue comme ça :)

Death Magnetic, nouvelle album de metallica sort le 12 septembre, et son premier single The Day That Never Comes le 22 aout 2008 !!!

Black Ice, nouvelle album d'AC/DC sort le 20 Octobre en Europe, et son premier single, Rock 'N Roll Train le 28 aout !!!
 
Hors ligne Nelson28 # Posté le 15/02/2007 à 17:46:57 - Ce membre a mis la note : 20
Avatar
Groupe : Membres
Super TP j'ai essyaer et n'ayant pas réussi j'ai fais la correction pour ensuite l'etudier !

a part une parenthese oublier et un point virgule aussi il est parfait

20/20 et merci pour ce big tuto
Hors ligne Raul10 # Posté le 15/02/2007 à 20:00:30 - Ce membre n'a pas mis de note
Avatar
Groupe : Membres
Super TP, je met 18/20.

Seulement, j'ai un petit problème... comment être modérateur ou encore administrateur ???

Vous cherchez une musique de la série télévisé Grey's Anatomy ?
Alors venez visiter Grey's Anatomy Soundtracks : LE site qui regroupe toutes les musiques de la série à succès !

Grey's Anatomy Soundtracks *


* Site disponible en trois langues : Français, Anglais et Italien. Si vous êtes interessé par ce site et que vous souhaitez m'aider, contacter moi par MP


 
Hors ligne Snipefire # Posté le 15/02/2007 à 21:25:37 - Ce membre n'a pas mis de note
Avatar
Groupe : Membres
Citation : Pas de titre
a part une parenthese oublier et un point virgule aussi il est parfait


Dis la ligne, afin qu'il puisse le corriger facilement :)
Hors ligne Nelson28 # Posté le 15/02/2007 à 21:32:20 - Ce membre a mis la note : 20
Avatar
Groupe : Membres
je lui es envoyer par mp car il l'as demander

(desoler je suis nouveau j'ai pas penser a le dire ici)
je le met pour ce qui veule le temps que se soit corriger

pour editer sur poster.php

Code : PHP
$text_edit = br2nl($data2['post_texte']; //on utilise la fonction créée dans le fichier fonction (pensez à l'inclure)


Code : PHP


$text_edit = br2nl($data2['post_texte']); //on utilise la fonction créée dans le fichier fonction (pensez à l'inclure)


pour l'autre je me rappelle plus j'edite si je retrouve desoulé :(
Hors ligne Talus # Posté le 17/02/2007 à 18:24:32 - Ce membre a mis la note : 13
タルス
Avatar
Groupe : Membres
Citation : WorldEdit
Compliqué tout ça... on peut pas tout simplement faire comme pour la fonction code et utiliser nl2br à l'affichage ?

C'est malheureusement plus lent et beaucoup moins performant. A vrai dire il faudrait faire la même chose pour la fonction code mais ça devient un peu compliqué, à vous de voir si vous êtes motivé :p .

... C'est quoi ce tissu d'anneries, là ? Pour la (pauvre) BDD SQL, c'est beaucoup plus de contraintes de "nl2br-isé" à l'entrée qu'a la sortie. De même pour le serveur.
Surtout que ta fonction, disons qu'elle ne fera pas l'effet prévue. En effet, elle remplacera tes <br /> (ou pas /) par des blancs, et non aps des sauts delignes. La fonction correcte serait :

Code : PHP
funtion br2nl($txt){
    return str_replace(array('<br />', '<br>'), "\n", $txt);
}


13 pour l'intention.
 
Hors ligne General Vans # Posté le 17/02/2007 à 18:47:34 - Ce membre n'a pas mis de note
Avatar
Groupe : Membres
Non la fonction nl2br ajoute des <br /> mais garde les sauts de ligne donc il faut simplement remplacer les <br /> par des espaces.
Tu n'as cas essayer tu verras.

Sinon on m'a toujours assuré que parser à l'affichage était une mauvaise chose pour la performance du code mais j'ai jamais vraiment testé à vrai dire.
Donc si tu as plus d'infos ça serait cool

Image utilisateur
Foncez y ! Un site pour partager son savoir scientifique

Je précise que je suis très peu disponible donc ne m'en voulez pas si je mets du temps à réagir aux MP :(
 
Hors ligne Talus # Posté le 17/02/2007 à 22:43:03 - Ce membre a mis la note : 13
タルス
Avatar
Groupe : Membres
Justement, les <br (/)> pesent plus lourds pour la BDD (car plus de caractères). Donc plus long à charger pour le pauvre serveur qui tourne derrière. Et surtout,ca limite pas mal de possibilités =)

Certains sites (comme le SdZ, je pense) le font à l'entrée, car sinon, il est vrai qu'a l'affichage,c e serait (peut-être) un peu suicidaire, vu le nombre de visions. MAis sauf que je pense que ceux qui s'aideront de ton tutorial n'en seront jamais là =)
 
Hors ligne arcaon # Posté le 15/05/2007 à 12:00:17 - Ce membre a mis la note : 17
bou!!! J'vous ai fais peur?
Avatar
Groupe : Membres
Salut,

Bon, je le redis, très bon tuto, mais j'ai vue une erreur:
Code : PHP
echo'Vous avez choisi de supprimer un post. Cependant ce post est le premier du topic. Voulez vous supprimer le topic ? <br />
<a href="./postok.php?action=delete_topic&t='
.$topic.'">oui</a> - <a href="./voirtopic.php?t='.topic.'">non</a>';


T'as oublié un '$' dans <a href="./voirtopic.php?t='.topic.'">.

Code : PHP
echo'Vous avez choisi de supprimer un post. Cependant ce post est le premier du topic. Voulez vous supprimer le topic ? <br />
<a href="./postok.php?action=delete_topic&t='
.$topic.'">oui</a> - <a href="./voirtopic.php?t='.$topic.'">non</a>';

Death Magnetic, nouvelle album de metallica sort le 12 septembre, et son premier single The Day That Never Comes le 22 aout 2008 !!!

Black Ice, nouvelle album d'AC/DC sort le 20 Octobre en Europe, et son premier single, Rock 'N Roll Train le 28 aout !!!
 
Hors ligne hugo125 # Posté le 13/06/2007 à 17:14:24 - Ce membre a mis la note : 16
Pourquoi faire simple ?
Groupe : Membres
Salut,
Un très bon TP. J'ai trouvé une erreur qui n'a pas encore été corrigée : il y a une parenthèse de trop dans :

Citation : [PhP] => postok.php
$requete_last_post = mysql_query("SELECT COUNT(*)
AS last_post
FROM forum_topic
WHERE topic_last_post = '".$post."'"));


Il faut mettre :
Citation : [PhP] => postok.php
$requete_last_post = mysql_query("SELECT COUNT(*)
AS last_post
FROM forum_topic
WHERE topic_last_post = '".$post."'");


Merci de le corriger GeneralVans, et bonne continuation pour ce très bon tuto !
Hugo125

PS : 16/20
Hors ligne DidWi # Posté le 18/06/2007 à 23:57:43 - Ce membre a mis la note : 17
Groupe : Membres
Bonjour,

Voila, en réalisant le Tp pour modérer mon forum, j'ai eu un problème, dans la page voirtopic, je n'arrive pas à bien coder pour que le modérateur et le créateur du post puissent supprimer le topic.
Voila code que j'ai utilisé :
Code : PHP
if (!verif_auth($data1['auth_modo'])&& $data2['post_createur'] != $_SESSION['id'])
{

Alors quand je le mets, je ne voie plus le lien pour supprimer ni le lien pour éditer. J'ai essayer de changer le code, de déplacer etc. mais sans résultat...
Manipe essayé :
Code : PHP
if (verif_auth($data1['auth_modo'])&& $_SESSION['id'] == $data2['post_createur'])
{

Code : PHP
if (!verif_auth($data1['auth_modo'])&& $data2['post_createur'] == $_SESSION['id'])
{

aucun de marche pourquoi ?

Sinon bravo pour cette belle création ;) j'en suis content...

L'art c'est l'art la beauté c'est l'art qui est accomplie... www.andregarcia.fr.nf
 
Hors ligne ocelote # Posté le 17/07/2007 à 17:25:43 - Ce membre n'a pas mis de note
Groupe : Membres
Pour completer la remarque d'arcaon, non seulement il a oublier le "$" mais la variable "$topic" est vide a ect endroit : (page postok.php)

Code : PHP
case "delete": //Si on veut supprimer le post
        //On récupère la valeur de p
        $post = (int) $_GET['p'];
        $requete1 = mysql_query('
        SELECT post_createur, post_texte, forum_id, auth_modo
        FROM forum_post
        LEFT JOIN forum_forum ON forum_post.post_forum_id = forum_forum.forum_id
        WHERE post_id='
.$post.'');
        $data1 = mysql_fetch_assoc($requete1);
        $topic = $data1['topic_id'];


il a oublier de sélectionner 'topic_id'

il faut donc écrire :
Code : PHP
case "delete": //Si on veut supprimer le post
        //On récupère la valeur de p
        $post = (int) $_GET['p'];
        $requete1 = mysql_query('
        SELECT post_createur, post_texte, forum_id, auth_modo, topic_id
        FROM forum_post
        LEFT JOIN forum_forum ON forum_post.post_forum_id = forum_forum.forum_id
        WHERE post_id='
.$post.'');
        $data1 = mysql_fetch_assoc($requete1);
        $topic = $data1['topic_id'];


cela dit tres bon tuto qui permet d'englober pas mal de connaissance ;)
je me permet pas de donner une note :)
a +
 
Hors ligne monpapson # Posté le 10/09/2007 à 15:23:35 - Ce membre a mis la note : 20
Avatar
Groupe : Membres
Salut
Félicitation, ton tuto déchirrree :lol: , tous est bien expliqués et je comprend très bien, bref il y a rien à dire, 20/20 :)
Merci pour ce super tuto

Citation : Anonyme
Les validos sont très sympatiques, les modos...grrr...ça p**, les admins sont le coeur même du site, les newsers sont en quelques sortes les poumons du site.

Ca coule de source : Testez votre niveau en informatique !
 
Hors ligne dakaro # Posté le 01/11/2007 à 21:48:14 - Ce membre a mis la note : 19
Avatar
Groupe : Membres
super tuto,seulement jai un problème,
chaqu emembre peut deplacer un topic :/
et chaque membre peut repondre a un topic quand il est locker :/
Serai tu m'expliquer pourquoi?
voici ma page postok:

19/20
lol désolé qu emon message est si lng mais c'est le code qui est si long ^^

Edit ! M@X ! : Attention à l'orthographe, le sms n'est pas autorisé et ton code est beaucoup trop long. Je te rappelle que tu as le forum pour toutes questions ou problèmes, les commentaires ne sont pas là pour sa ;) .
Premier et dernier avertissement.

Envie de réaliser un projet sérieux ? Alors Magic Park est fait pour vous !


 
Hors ligne big_nay # Posté le 27/04/2008 à 14:22:11 - Ce membre a mis la note : 19
si je peux,j'aide
Avatar
Groupe : Membres
Franchement bravo pour le travail que tu as du fournir afin de faire ce tutorial. Les explications sont claires et précises et en plus ça marche à merveille (sauf si on se goure en remplaçant les liens ou les images^^). En plus les améliorations proposé sont très intéressantes. Bref un tutorial comme je voudrais en voir plus souvent.

Je pense que tu mérite amplement ton 19/20
Hors ligne Foxi 31 # Posté le 27/05/2008 à 18:09:29 - Ce membre a mis la note : 15
foxi31.free.fr
Avatar
Groupe : Membres
Un petit oubli
Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
<?php
case "delete": //Si on veut supprimer le post
        //On récupère la valeur de p
        $post = (int) $_GET['p'];
        $requete1 = mysql_query('
        SELECT post_createur, post_texte, forum_id, auth_modo,
        FROM forum_post
        LEFT JOIN forum_forum ON forum_post.post_forum_id = forum_forum.forum_id
        WHERE post_id='.$post.'');
        $data1 = mysql_fetch_assoc($requete1);
        $topic = $data1['topic_id'];
        $forum = $data1['forum_id'];

Manque topic_id dans $requete1 à rajouter après SELECT car il est utilisé après pour définir $topic.
 
Hors ligne EvilKirby95 # Posté le 04/06/2008 à 19:56:29 - Ce membre n'a pas mis de note
Avatar
Groupe : Membres
Euh je comprends pas la. Pourquoi lorsque je ne suis pas connecté ( en modo ), les options de de verrouilage et de déplacement apparaissent quand même ?
Hors ligne cypher666 # Posté le 24/06/2008 à 14:42:27 - Ce membre n'a pas mis de note
Heu....
Avatar
Groupe : Membres
Superbe tuto, malgré quelques erreurs: ^^

En voici une par exemple: :lol:
Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
<?php
if ($data3['topic_locked'] == 1) // Topic verrouillé !
{
echo'<a href="./postok.php?action=unlock&t='.$amp;topic.'">   
<img src="./images/unlock.gif" alt="deverrouiller" 
title="Déverrouiller ce sujet" /></a>';
}
else //Sinon le topic est déverrouillé !
{
echo'<a href="./postok.php?action=lock&amp;t='.$topic.'">
<img src="./images/lock.gif" alt="verrouiller" 
title="Verrouiller ce sujet" /></a>';
}
?>


Je ne met pas la correction (très simple) pour éviter un bete copier/collé

Sinon, corrige les problèmes de sécurité pour que ton tuto soit valide et que l'on ai pas besoin d'aller voir dans les commentaires pour trouver la version valide ^^

Merci d'avance :)


Quand vous allez sur un site amateur, cliquez sur les publicités, ça rapporte de l'argent au webmaster et vous ça ne vous coûte rien :)
Image utilisateur



 
Hors ligne DrTanK25 # Posté le 28/08/2008 à 01:32:00 - Ce membre n'a pas mis de note
Groupe : Membres
bonjour,
déjà très bon tuto ensuite je ne suis pas arriver a faire le TP j'ai donc recopier la correction pour voir comment il fallait faire et la j'ai un problème il m'affiche une erreur que je ne comprend pas :(

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\wamp\www\Forum\postok.php on line 284

ce qui correspond a cette partie de code :

Code : PHP
1
2
3
4
//On met à jour la valeur de topic_last_post
                        mysql_query("UPDATE forum_topic
                        SET topic_last_post = $data4['post_id']
                        WHERE topic_last_post = $post");


Je ne comprends vraiment pas d'ou sa vient alors si vous pouviez m'aider

Merci d'avance
Hors ligne remise # Posté le 31/08/2008 à 13:51:14 - Ce membre a mis la note : 17
Zéro tu es, zéro tu resteras ?
Avatar
Groupe : Membres
Salut :)

Eh béh ! Ce TP m'a fait le plus grand bien !
Même si je réécrivais toujours les codes que tu proposais à ma façon, ce Tp m'a permis de me mettre en plein dans le code.
Je veux dire que, au lieu de survoler les codes, je me suis forcé à bien chercher, et franchement, j'en ai bien bavé ^^

Bref, j'ai pas réussi à réaliser toutes les options, j'ai donc fait comme d'habitude pour celles que je n'arrivais pas :
J'ai réécris à ma sauce.

En tout cas, grâce à ce TP, je comprends beaucoup mieux le système de fonctionnement du forum :D

Bravo à toi, t merci pour tot le temps qu tu as dû y passer !
Je te donne donc 17/20 :D


[PS] Bouh ! L'énorme faut de français dans e code de déplacement sur le commentaire de deux ptites lignes :
Code : PHP
1
2
3
<?php
//Il faut également vérifié qu'on a pas déplacé un post qui été
//l'ancien premier post du forum (champ forum_last_post_id)

Je dis pas que je suis un pro en aurthaugraffe, mais les erreurs de participes passé, j'aime pas :p (surtout quand y'en a 2 sur la même ligne ^^ )

Citation : Les shadoks
C'est en essayant continuellement que l'on finit par réussir. Donc, en d'autres termes, plus ça rate, et plus on a de chances que ça marche
 
Hors ligne DrTanK25 # Posté le 21/09/2008 à 23:04:29 - Ce membre n'a pas mis de note
Groupe : Membres
Bonsoir je tenais a vous informer d'une erreur même de plusieurs erreur de concaténation au niveau des requête de la correction du TP.
Elle se trouve dans le page postok pour le cas de la suppression :
Code : PHP
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
<?php
case "delete": //Si on veut supprimer le post
        //On récupère la valeur de p
        $post = (int) $_GET['p'];
        $requete1 = mysql_query('
        SELECT post_createur, post_texte, forum_id, topic_id, auth_modo
        FROM forum_post
        LEFT JOIN forum_forum ON forum_post.post_forum_id = forum_forum.forum_id
        WHERE post_id='.$post.'');
        $data1 = mysql_fetch_assoc($requete1);
        $topic = $data1['topic_id'];
        $forum = $data1['forum_id'];
       
        //Ensuite on vérifie que le membre a le droit d'être ici 
        //(soit le créateur soit un modo/admin)
        if (!verif_auth($data1['auth_modo']))
        {
                // Si cette condition n'est pas remplie ça va barder :o
                echo'<p>Vous n\'avez aucun droit d\'être ici</p></div></body></html>';
                exit();
        }
        else //Sinon ça roule et on continue
        {
                //Ici on vérifie plusieurs choses :
                //est-ce un premier post ? Dernier post ou post classique ?
 
                $requete_first_post = mysql_query("SELECT COUNT(*)
                AS first_post
                FROM forum_topic
                WHERE topic_first_post = $post");
 
                $requete_last_post = mysql_query("SELECT COUNT(*)
                AS last_post
                FROM forum_topic
                WHERE topic_last_post = $post");
               
                $first_post = mysql_fetch_assoc($requete_first_post);
                $last_post = mysql_fetch_assoc($requete_last_post);
               
               
                //On distingue maintenant les cas
                if ($first_post['first_post'] != 0) 
                //Si le message est le premier
                {
 
                        //Les autorisations ont changé !
                        if (!verif_auth($data1['auth_modo']))
                        {
                                echo'<p>
                                Vous n\'avez aucun droit d\'être ici</p></div></body></html>';
                                exit();
                        }
                        //Il faut s'assurer que ce n'est pas une erreur
 
                        echo'<p>Vous avez choisi de supprimer un post.
                        Cependant ce post est le premier du topic. 
                        Voulez vous supprimer le topic ? <br />
             <a href="./postok.php?action=delete_topic&amp;t='.$topic.'">oui</a> 
                        - <a href="./voirtopic.php?t='.$topic.'">non</a></p>';
 
                     
                }
 
                elseif ($last_post['last_post'] != 0) 
                //Si le message est le dernier
 
                {
 
                        //On supprime le post
                        mysql_query("DELETE FROM forum_post
                        WHERE post_id = '".$post."'");
                       
                        //On modifie la valeur de topic_last_post pour cela on
                        //récupère l'id du plus récent  message de ce topic
                        $requete4 = mysql_query('SELECT post_id
                        FROM forum_post
                        WHERE topic_id = '.$topic.'
                        ORDER BY post_id DESC
                        LIMIT 0,1');
                        $data4 = mysql_fetch_assoc($requete4);
 
                        //On fait de même pour forum_last_post_id
                        $requete5 = mysql_query('SELECT post_id
                        FROM forum_post
                        WHERE post_forum_id = '.$forum.'
                        ORDER BY post_id DESC
                        LIMIT 0,1');
                        $data5 = mysql_fetch_assoc($requete5);
                       
                        //On met à jour la valeur de topic_last_post
                        mysql_query("UPDATE forum_topic
                        SET topic_last_post = $data4['post_id']
                        WHERE topic_last_post = $post");
 
                        //On enlève 1 au nombre de messages du forum et on met à       
                        //jour forum_last_post
                        mysql_query("UPDATE forum_forum
                        SET forum_post = forum_post - 1,
                        forum_last_post_id = $data5['post_id']
                        WHERE forum_id = $forum");
 
                        //On enlève 1 au nombre de messages du topic
                        mysql_query("UPDATE forum_topic
                        SET  topic_post = topic_post - 1
                        WHERE topic_id = $topic");
                       
                        //On enlève 1 au nombre de messages du membre
                        mysql_query("UPDATE forum_membres
                        SET  membre_post = membre_post - 1
                        WHERE membre_id = $data1['post_createur']");
 
                        //Enfin le message
                        echo'<p>Le message a bien été supprimé !<br />
                        Cliquez <a href="./voirtopic.php?t='.$topic.'">ici</a> 
                        pour retourner au topic<br />
                        Cliquez <a href="./index.php">ici</a> 
                        pour revenir à l index du forum</p>';
 
                }
 
                elseif ($last_post['last_post'] == 0 
                && $first_post['first_post'] == 0) // Si c'est un post classique
 
                {
 
                        //On supprime le post
                        mysql_query("DELETE FROM forum_post
                        WHERE post_id = $post");
                       
                        //On enlève 1 au nombre de messages du forum
                        mysql_query("UPDATE forum_forum
                        SET  forum_post = forum_post - 1
                        WHERE forum_id ='".$forum."'");
                       
                        //On enlève 1 au nombre de messages du topic
                        mysql_query("UPDATE forum_topic
                        SET  topic_post = topic_post - 1
                        WHERE topic_id = $topic");
                       
                        //On enlève 1 au nombre de messages du membre
                        mysql_query("UPDATE forum_membres
                        SET  membre_post = membre_post - 1
                        WHERE membre_id = $data1['post_createur']");
                       
                        //Enfin le message
                        echo'<p>Le message a bien été supprimé !<br />
                        Cliquez <a href="./voirtopic.php?t='.$topic.'">ici</a> pour retourner au topic<br />
                        Cliquez <a href="./index.php">ici</a> pour revenir à l index du forum</p>';
                }
               
        }
break;
?>

Correction :
Code : PHP
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
case "delete": //Si on veut supprimer le post
        //On récupère la valeur de p
        $post = (int) $_GET['p'];
        $requete1 = mysql_query('
        SELECT post_createur, post_texte, forum_id, topic_id, auth_modo
        FROM forum_post
        LEFT JOIN forum_forum ON forum_post.post_forum_id = forum_forum.forum_id
        WHERE post_id='.$post.'');
        $data1 = mysql_fetch_assoc($requete1);
        $topic = $data1['topic_id'];
        $forum = $data1['forum_id'];
       
        //Ensuite on vérifie que le membre a le droit d'être ici 
        //(soit le créateur soit un modo/admin)
        if (!verif_auth($data1['auth_modo']))
        {
                // Si cette condition n'est pas remplie ça va barder :o
                echo'<p>Vous n\'avez aucun droit d\'être ici</p></div></body></html>';
                exit();
        }
        else //Sinon ça roule et on continue
        {
                //Ici on vérifie plusieurs choses :
                //est-ce un premier post ? Dernier post ou post classique ?
 
                $requete_first_post = mysql_query("SELECT COUNT(*)
                AS first_post
                FROM forum_topic
                WHERE topic_first_post = $post");
 
                $requete_last_post = mysql_query("SELECT COUNT(*)
                AS last_post
                FROM forum_topic
                WHERE topic_last_post = $post");
               
                $first_post = mysql_fetch_assoc($requete_first_post);
                $last_post = mysql_fetch_assoc($requete_last_post);
               
               
                //On distingue maintenant les cas
                if ($first_post['first_post'] != 0) 
                //Si le message est le premier
                {
 
                        //Les autorisations ont changé !
                        if (!verif_auth($data1['auth_modo']))
                        {
                                echo'<p>
                                Vous n\'avez aucun droit d\'être ici</p></div></body></html>';
                                exit();
                        }
                        //Il faut s'assurer que ce n'est pas une erreur
 
                        echo'<p>Vous avez choisi de supprimer un post.
                        Cependant ce post est le premier du topic. 
                        Voulez vous supprimer le topic ? <br />
             <a href="./postok.php?action=delete_topic&amp;t='.$topic.'">oui</a> 
                        - <a href="./voirtopic.php?t='.$topic.'">non</a></p>';
 
                     
                }
 
                elseif ($last_post['last_post'] != 0) 
                //Si le message est le dernier
 
                {
 
                        //On supprime le post
                        mysql_query("DELETE FROM forum_post
                        WHERE post_id = '".$post."'");
                       
                        //On modifie la valeur de topic_last_post pour cela on
                        //récupère l'id du plus récent  message de ce topic
                        $requete4 = mysql_query('SELECT post_id
                        FROM forum_post
                        WHERE topic_id = '.$topic.'
                        ORDER BY post_id DESC
                        LIMIT 0,1');
                        $data4 = mysql_fetch_assoc($requete4);

 
                        //On fait de même pour forum_last_post_id
                        $requete5 = mysql_query('SELECT post_id
                        FROM forum_post
                        WHERE post_forum_id = '.$forum.'
                        ORDER BY post_id DESC
                        LIMIT 0,1');
                        $data5 = mysql_fetch_assoc($requete5);

                       
                        //On met à jour la valeur de topic_last_post
                        mysql_query("UPDATE forum_topic
                        SET topic_last_post = '".$data4['post_id']."'
                        WHERE topic_last_post = '".$post."'");
 
                        //On enlève 1 au nombre de messages du forum et on met à       
                        //jour forum_last_post
                        mysql_query("UPDATE forum_forum
                        SET forum_post = '.forum_post - 1.',
                        forum_last_post_id = '".$data5['post_id']."'
                        WHERE forum_id = '".$forum."'");
 
                        //On enlève 1 au nombre de messages du topic
                        mysql_query("UPDATE forum_topic
                        SET  topic_post = topic_post - 1
                        WHERE topic_id = $topic");
                       
                        //On enlève 1 au nombre de messages du membre
                        mysql_query("UPDATE forum_membres
                        SET  membre_post = membre_post - 1
                        WHERE membre_id = '".$data1['post_createur']."'");
 
                        //Enfin le message
                        echo'<p>Le message a bien été supprimé !<br />
                        Cliquez <a href="./voirtopic.php?t='.$topic.'">ici</a> 
                        pour retourner au topic<br />
                        Cliquez <a href="./index.php">ici</a> 
                        pour revenir à l index du forum</p>';
 
                }
 
                elseif ($last_post['last_post'] == 0 
                && $first_post['first_post'] == 0) // Si c'est un post classique
 
                {
 
                        //On supprime le post
                        mysql_query("DELETE FROM forum_post
                        WHERE post_id = $post");
                       
                        //On enlève 1 au nombre de messages du forum
                        mysql_query("UPDATE forum_forum
                        SET  forum_post = forum_post - 1
                        WHERE forum_id ='".$forum."'");
                       
                        //On enlève 1 au nombre de messages du topic
                        mysql_query("UPDATE forum_topic
                        SET  topic_post = topic_post - 1
                        WHERE topic_id = $topic");
                       
                        //On enlève 1 au nombre de messages du membre
                        mysql_query("UPDATE forum_membres
                        SET  membre_post = membre_post - 1
                        WHERE membre_id = '".$data1['post_createur']."'");
                       
                        //Enfin le message
                        echo'<p>Le message a bien été supprimé !<br />
                        Cliquez <a href="./voirtopic.php?t='.$topic.'">ici</a> pour retourner au topic<br />
                        Cliquez <a href="./index.php">ici</a> pour revenir à l index du forum</p>';
                }
               
        }
break;
Hors ligne soifran # Posté le 24/09/2008 à 21:02:08 - Ce membre n'a pas mis de note
Avatar
Groupe : Membres
Ce ne sont pas des erreurs, ça marche très bien en le laissant comme il est ;)
Hors ligne DrTanK25 # Posté le 29/09/2008 à 18:11:05 - Ce membre n'a pas mis de note
Groupe : Membres
ben cher moi sa ne marche pas ^^

Vous devez être inscrit pour pouvoir poster des messages

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 256 Zéros connectés | Requêtes SQL 8 requêtes | Temps de génération de la page : Total (SQL) 0.0523s (0.0335s)