Aller au menu - Aller au contenu

Poster

Pour accéder à cette section
Connectez-vous !
connexion_rpx
Page Précédente  1  2  3  4  5 
Pseudo Commentaire
Page Précédente  1  2  3  4  5 
Hors ligne soft_57 # Posté le 27/05/2011 à 15:05:16

trompé.
Hors ligne larnak # Posté le 04/07/2011 à 16:32:02
Avatar

Avis : Très bon

Ville : Drancy
Pays : France métropolitaine
Études : IUT Orsay

Super tuto, pas encore totalement terminé mais ça ne serait tarder :)
Pour l'instant aucun bug rencontré...
Très bonne explications, en plus pile ce que je voulais faire, donc que du bonheur :)

Image utilisateur
 
Hors ligne Hell-AstiK # Posté le 11/07/2011 à 00:04:39
Avatar

Ville : Lafenasse
Pays : France métropolitaine

Attention a la page poster.php
a la 1er requêtes, tu n'a pas sélectionner forum_id et tu t'en sert dans le code, donc = erreur.

Voici la bonne requêtes :
Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
<?php
if (isset($_GET['f']))
{
    $forum = (int) $_GET['f'];
    $query= $db->prepare('SELECT forum_name, auth_view, auth_post, auth_topic, auth_annonce, auth_modo, forum_id
    FROM forum_forum WHERE forum_id =:forum');
    $query->bindValue(':forum',$forum,PDO::PARAM_INT);
    $query->execute();
    $data=$query->fetch();
    echo '<p><i>Vous êtes ici</i> : <a href="./index.php">Index du forum</a> --> 
    <a href="./voirforum.php?f='.$data['forum_id'].'">'.stripslashes(htmlspecialchars($data['forum_name'])).'</a>
    --> Nouveau topic</p>';
}

--- --- --- --- ---
[81] ^^
Image utilisateur
 
Hors ligne lefandordinateur # Posté le 01/09/2011 à 11:38:17
Avatar

Très bon tutoriel 18/20

Il y a 10 types de personnes dans le monde : celles qui comprennent le binaire, et celles qui ne le comprennent pas.
 
Hors ligne el.serda # Posté le 12/09/2011 à 12:30:19

salut les zero donc voila je bloque sur la prtie "poster.php" .
Premierement tres dur de capter ou mettre le bbcode ... ou alor j'comprend plus le français oO

et pour se qui est de poster.php sans le javascript il me met pas le formulaire sur la page mais l'erreur comme quoi je devrai etre connecter >< faut vraiment s'acrocher avec se tuto ( on se demande si il a été relu par son auteur ...) si quelqu'un pouvait m'expliquer comment faire pour le bbcode et le debut de la page poster.php sa serait tros cool car la ... le php monte a la tete ^^
Hors ligne slydevis # Posté le 09/11/2011 à 12:01:08
Avatar

Bonjour j'ai un problème sur postok.php lorsque je créer un nouveau post j'ai une erreur de ce type :

Parse error: syntax error, unexpected $end in C:\wamp\www\site a moi\forum\postok.php on line 177

Le problème c'est que j'ai regarder le code plusieur fois et je ne vois pas de variable $end de plus a la ligne 177 j'ai la balise </html> donc je ne voit pas ou est le problème

voici mon code :

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
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
<?php
//Cette fonction doit être appelée avant tout code html
session_start();

//On donne ensuite un titre à la page, puis on appelle notre fichier debut.php
$titre = "Poster";
include("includes/debut.php");
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
</head>

<body>
<div id="banniere"></div>
<div id="corps_forum">

<?php
//Maintenant, on se connecte à la base de données
include("includes/identifiants.php");
mysql_connect($adresse, $nom, $motdepasse);
mysql_select_db($database);
//On récupère la valeur de la variable action
$action = htmlspecialchars($_GET['action']);

// Si le membre n'est pas connecté, il est arivé ici par erreur
if (!isset($_SESSION['pseudo']))
{
echo'<p>Erreur : Vous n êtes plus connecté</p>';
}
else //Sinon on lance la suite
{

switch($action)
{
//Premier cas : nouveau topic
case "nouveautopic":
//On passe le message dans une série de fonction
$message = mysql_real_escape_string($_POST['message']);
$mess = mysql_real_escape_string($_POST['mess']);

//Pareil pour le titre
$titre = mysql_real_escape_string($_POST['titre']);

//ici seulement, maintenant qu'on est sur qu'elle existe, on récupère la valeur de la variable f
$forum = (int) $_GET['f'];
$temps = time();

if (empty($message) || empty($titre))
{
echo'<p>Votre message ou votre titre est vide, cliquez <a href="./poster.php?action=nouveautopic&amp;f='.$forum.'">ici</a> pour recommencer</p>';
}
else //Si jamais le message n'est pas vide
{
?>
<?php
//On entre le topic dans la base de donnée en laissant
//le champ topic_last_post à 0
mysql_query("INSERT INTO forum_topic
(forum_id, topic_titre, topic_createur, topic_vu, topic_time, topic_genre, topic_last_post, topic_post)
VALUES('".$forum."', '".$titre."', '".intval($_SESSION['id'])."', '1', '".$temps."','".$mess."', '0', '0'  )")
or die ("Un problème est survenu lors de l'envoi du message");

$nouveautopic = mysql_insert_id();

//Puis on entre le message
mysql_query("INSERT INTO forum_post
(post_id, post_createur, post_texte, post_time, topic_id, post_forum_id)
VALUES(',' ,'".intval($_SESSION['id'])."', '".$message."', '".$temps."', '".$nouveautopic."', '".$forum."')")
or die ("Un problème est survenu lors de l'envoi du message");

$nouveaupost = mysql_insert_id();

//Ici on update comme prévu la valeur de topic_last_post et de topic_first_post
mysql_query("UPDATE forum_topic
SET topic_last_post = '".$nouveaupost."',
topic_first_post = '".$nouveaupost."'
WHERE topic_id = '".$nouveautopic."'")
or die ("Un problème est survenu lors de l'envoi du message");


//Enfin on met à jour les tables forum_forum et forum_membres
mysql_query("UPDATE forum_forum
SET forum_post = forum_post + 1 ,
forum_topic = forum_topic + 1,
forum_last_post_id = '".$nouveaupost."'
WHERE forum_id = '".$forum."'")
or die ("Un problème est survenu lors de l'envoi du message");

mysql_query("UPDATE forum_membres
SET membre_post = membre_post + 1
WHERE membre_id = '".intval($_SESSION['id'])."'")
or die ("Un problème est survenu lors de l'envoi du message");

//Et un petit message
echo'<p>Votre message a bien été ajouté!<br /><br />Cliquez <a href="./index.php">ici</a> pour revenir à l index du forum<br />Cliquez <a href="./voirtopic.php?t='.$nouveautopic.'">ici</a> pour le voir</p>';
}
break; //Houra !
?>

<?
//Deuxième cas : répondre
case "repondre":
//On passe le message dans une série de fonction
$message = mysql_real_escape_string($_POST['message']);


//ici seulement, maintenant qu'on est sur qu'elle existe, on récupère la valeur de la variable t
$topic = (int) $_GET['t'];
$temps = time();

if (empty($message))
{
echo'<p>Votre message est vide, cliquez <a href="./poster.php?action=repondre&amp;t='.$topic.'">ici</a> pour recommencer</p>';
}
else //Sinon, si le message n'est pas vide
{

//On récupère l'id du forum
$requete2 = mysql_query('SELECT forum_id, topic_post
FROM forum_topic
WHERE topic_id = "'.$topic.'"');

$data2= mysql_fetch_assoc($requete2) or die ("Une erreur semble être survenue lors de l'envoi du message");
$forum = $data2['forum_id'];

//Puis on entre le message
mysql_query("INSERT INTO forum_post
(post_id, post_createur, post_texte, post_time, topic_id, post_forum_id)
VALUES(',' ,'".intval($_SESSION['id'])."', '".$message."', '".$temps."', '".$topic."', '".$forum."')")
or die ("Une erreur semble avoir survenu lors de l'envoi du message");

$nouveaupost = mysql_insert_id();

//On change un peu la table forum_topic
mysql_query("UPDATE forum_topic
SET topic_post = topic_post + 1,
topic_last_post = '".$nouveaupost."'
WHERE topic_id ='".$topic."'")
or die ("Une erreur semble avoir survenu lors de l'envoi du message");

//Puis même combat sur les 2 autres tables
mysql_query("UPDATE forum_forum
SET forum_post = forum_post + 1 ,
forum_last_post_id = '".$nouveaupost."'
WHERE forum_id = '".$forum."'")
or die ("Une erreur semble avoir survenu lors de l'envoi du message");

mysql_query("UPDATE forum_membres
SET membre_post = membre_post + 1
WHERE membre_id = '".intval($_SESSION['id'])."'")
or die ("Une erreur semble avoir survenu lors de l'envoi du message");

//Et un petit message
$nombreDeMessagesParPage = 15;
$nbr_post = $data2['topic_post']+2;
$page = ceil($nbr_post / $nombreDeMessagesParPage);
echo'<p>Votre message a bien été ajouté!<br /><br />
Cliquez <a href="./index.php">ici</a> pour revenir à l index du forum<br />
Cliquez <a href="./voirtopic.php?t='.$topic.'&amp;page='.$page.'#p_'.$nouveaupost.'">ici</a> pour le voir</p>';
}
break;
?>

<?
default;
echo'<p>Cette action est impossible</p>';
}//Fin du Switch
} //Fin du else, le membre est connecté
mysql_close();
?>
</div>
</body>
</html>
Pouvez vous m'aider s'il vous plait car je débute en php/mysql
Hors ligne minijackson # Posté le 06/12/2011 à 21:02:36
Programmeur de vos rêves
Avatar

Je poste ici dans l'intention de donner mon propre fichier de conversion bbcode => html (qui je pense est plutôt avancé). Voici un exemplaire exhaustif de toutes les balises prises en charges :
Secret (cliquez pour afficher)
<p>Test de l'injection HTML</p>
[u]je suis souligné,[/u]
[color=red]je suis en rouge,[/color]
[b]je suis en gras,[/b]
[i]je suis en italique,[/i]
[s]je suis barré[/s]
[strike]et encore barré,[/strike]
[color=aqua]moi en aqua,[/color]
[color=#FF8844]moi en #FF8844,[/color]
[color=rgb(100,20,30)]moi en rgb,[/color]
[color=rgba(10,20,30,0.4)]moi en rgba,[/color]
[color=hsl(40,30%,20%)]moi en hsl,[/color]
[color=hsla(40,30%,20%,0.1)]moi en hsla[/color]
[url=http://www.siteduzero.com]url V.1[/url]
url V.2 :[url]http://www.siteduzero.com/[/url]
img V.1[img]http://www.gif-image.com/M/maggie-simpson/gif-image-maggie-simpson-1.gif[/img]
img+lien[url=http://www.siteduzero.com/][img]http://www.gif-image.com/M/maggie-simpson/gif-image-maggie-simpson-1.gif[/img][/url]
[hr]
[quote]Texte cité 1[/quote]
[quote=minijackson]Texte cité 2[/quote]
[hr]
[size=5px]écrit petit[/size]
[size=5em]écrit gros ![/size]
[left]à gauche[/left]
[right]à droite[/right]
[center]au centre[/center]
[justify]justifié[/justify]
[scroll]texte défilant[/scroll]
[updown]text défilant 2 ![/updown]
[blur]dirty Diana[/blur]
[spoiler]Coucou ![/spoiler]
[hide=cherchez-moi !]Zut, vous m'avez trouvé :'-([/hide]
x[sub]2[/sub] = 3x[sup]3[/sup]


Et voici l'ensemble des RegEx en php (remarquez la longueur de la RegEx des couleurs ;) ) :

Secret (cliquez pour afficher)
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
<?php
if(isset($_POST['Submit']) && isset($_POST['bbcode']))
{
	$bbcode = htmlspecialchars($_POST['bbcode']);
	$bbcode = preg_replace('#\n#isU', '<br />', $bbcode);							//Entrées
	$bbcode = preg_replace('#\[hr\]#isU', '<hr />', $bbcode);						//Lignes de sépraration
	$bbcode = preg_replace('#\[b\](.+)\[/b\]#isU', '<strong>$1</strong>', $bbcode);				//Gras
	$bbcode = preg_replace('#\[i\](.+)\[/i\]#isU', '<em>$1</em>', $bbcode);					//Italique
		//Coloré
	$bbcode = preg_replace('#\[color=(aqua|black|blue|fuchsia|grey|green|lime|maroon|navy|olive|purple|red|silver|teal|white|yellow|\#[0-9a-f]{3}|\#[0-9a-f]{6}|rgb\((?:[01]?\d{1,2}|2[0-5]{2}),(?:[01]?\d{1,2}|2[0-5]{2}),(?:[01]?\d{1,2}|2[0-5]{2})\)|rgba\((?:[01]?\d{1,2}|2[0-5]{2}),(?:[01]?\d{1,2}|2[0-5]{2}),(?:[01]?\d{1,2}|2[0-5]{2}),(?:0\.\d+|1)\)|hsl\((?:[01]?\d{1,2}|2[0-5]{2}),(?:100|0{0,}\d{1,2})%,(?:100|0{0,}\d{1,2})%\)|hsla\((?:[01]?\d{1,2}|2[0-5]{2}),(?:100|0{0,}\d{1,2})%,(?:100|0{0,}\d{1,2})%,(?:0\.\d+|1)\))\](.+)\[/color\]#isU', '<span style="color:$1;">$2</span>', $bbcode);
	$bbcode = preg_replace('#\[u\](.+)\[/u\]#isU', '<ins>$1</ins>', $bbcode);				//Souligné
	$bbcode = preg_replace('#\[s\](.+)\[/s\]#isU', '<del>$1</del>', $bbcode);				//Barré V.1
	$bbcode = preg_replace('#\[strike\](.+)\[/strike\]#isU', '<del>$1</del>', $bbcode);			//Barré V.2
	$bbcode = preg_replace('#\[img\](.+)\[/img\]#isU', '<img src="$1" />', $bbcode);			//Image
	$bbcode = preg_replace('#\[url=(.+)\](.+)\[/url\]#isU', '<a href="$1">$2</a>', $bbcode);		//Url V.1
	$bbcode = preg_replace('#\[url\](.+)\[/url\]#isU', '<a href="$1">$1</a>', $bbcode);			//Url V.2
	$bbcode = preg_replace('#\[quote\](.+)\[/quote\]#isU', '<span class="c">Citation</span><cite>$1</cite>', $bbcode);//Citation V.1
	$bbcode = preg_replace('#\[quote=(.+)\](.+)\[/quote\]#isU', '<span class="c">Citation de : <strong>$1</strong></span><cite>$2</cite>', $bbcode);//Citation V.2
	$bbcode = preg_replace('#\[size=(\d+(?:px|em|%))\](.+)\[/size\]#isU', '<span style="font-size:$1;">$2</span>', $bbcode);//Taille texte
	$bbcode = preg_replace('#\[right\](.+)\[/right\]#isU', '<span class="right">$1</span>', $bbcode);	//À droite
	$bbcode = preg_replace('#\[left\](.+)\[/left\]#isU', '<span class="left">$1</span>', $bbcode);		//À gauche
	$bbcode = preg_replace('#\[center\](.+)\[/center\]#isU', '<span class="center">$1</span>', $bbcode);	//Au centre
	$bbcode = preg_replace('#\[justify\](.+)\[/justify\]#isU', '<span class="justify">$1</span>', $bbcode);	//Justifié
	$bbcode = preg_replace('#\[scroll\](.+)\[/scroll\]#isU', '<marquee>$1</marquee>', $bbcode);		//Texte défilant horizontal
	$bbcode = preg_replace('#\[updown\](.+)\[/updown\]#isU', '<marquee direction="up" style="height:75px;">$1</marquee>', $bbcode);//Text défilant horizontal
	$bbcode = preg_replace('#\[blur\](.+)\[/blur\]#isU', '<span class="blur">$1</span>', $bbcode);		//Sale
		//Spoiler
	$bbcode = preg_replace('#\[spoiler\](.+)\[/spoiler\]#isU', '<span><span onclick="spoiler(this);" class="spoiler">Spoiler :</span><span class="hidden" style="display:none;">$1</span></span>', $bbcode);
		//"Hidder"
	$bbcode = preg_replace('#\[hide=(.+)\](.+)\[/hide\]#isU', '<span><span onclick="spoiler(this);" class="spoiler">$1</span><span class="hidden" style="display:none;">$2</span></span>', $bbcode);
	$bbcode = preg_replace('#\[sub\](.+)\[/sub\]#isU', '<sub>$1</sub>', $bbcode);				//Indice
	$bbcode = preg_replace('#\[sup\](.+)\[/sup\]#isU', '<sup>$1</sup>', $bbcode);				//Exposant
		
	echo $bbcode;
	}
?>



et pour le css du bbcode (pas terrible mais je poste quand même) :

Secret (cliquez pour afficher)
Code : CSS
 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
/*
bbCode Stylesheet
by minijackson
*/


cite, span.hidden{
	text-indent:20px;	/*Alinéa*/
	
	border-radius:0px 0px 10px 10px;
	-moz-border-radius:0px 0px 10px 10px;
	
	padding:7px;
	
	min-height:50px;
	background-color:#DDD;
	display:block;
}
span.c, span.spoiler{
	padding:2px;

	text-indent:7px;

	border-radius:15px 15px 0px 0px / 20px 20px 0px 0px;
	-moz-border-radius:15px 15px 0px 0px / 20px 20px 0px 0px;
	
	background-color:#AAA;
	display:block;
}
span.c:hover, span.spoiler:hover{
	background-color:#CCC;
}
span.center{
	display:block;
	text-align:center;
}
span.left{
	display:block;
	text-align:left;
}
span.right{
	display:block;
	text-align:right;
}
span.justify{
	display:block;
	text-align:justify;
}
span.blur{
	text-shadow: 1px -2px 1px #88421D;
}


GNU/Linux en force !

Image utilisateur
Image utilisateur
Image utilisateur
Images de DeviantDark : Voir la source
 
Hors ligne kolia60 # Posté le 28/12/2011 à 22:27:05

Bonsoir à tous,

J'ai suivi le super tuto de Tadzoa du début à la fin et le forum fonctionne parfaitement... enfin presque.

Sans que je ne l'explique, de temps en temps (trop souvent à mon goût), certains post sont affublés d'un "post_createur" inexistant.

Pour rappel, ce champ "post_createur" dans la table "forum_post" correpond à l'id du membre ayant posté.

Or, avec moins de 50 membres, certains post sont affublés d'un "post_createur" supérieur à 1000 !!!

Du coup, on ne sait pas qui poste...

Sans rentrer dans les méandres des pages du tuto, je souhaitais savoir si vous avez déjà rencontré ce genre de pb ou si vous avez une piste pouvant m'aider.
Hors ligne thebbo # Posté le 13/01/2012 à 23:38:24

Bonjour,
voila quand je poste une réponsee rien ne s' affiche pourtan il dise vous avez bien poster une reponse

voila le code qui beug je pense

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
<?php case "repondre":
    $message = $_POST['message'];

    //ici seulement, maintenant qu'on est sur qu'elle existe, on récupère la valeur de la variable t
    $topic = (int) $_GET['t'];
    $temps = time();
	$query=$db->prepare('SELECT topic_locked FROM forum_topic WHERE topic_id = :topic');
    $query->bindValue(':topic',$topic,PDO::PARAM_INT);
    $query->execute(); 
    $data=$query->fetch();
    if ($data['topic_locked'] != 0)
    {
        erreur(ERR_TOPIC_VERR); //A vous d'afficher un message du genre : le topic est verrouillé qu'est ce que tu fous là !?
    }
    $query->CloseCursor();

    if (empty($message))
    {
        echo'<p>Votre message est vide, cliquez <a href="poster.php?action=repondre&amp;t='.$topic.'">ici</a> pour recommencer</p>';
    }
    else //Sinon, si le message n'est pas vide
    {

        //On récupère l'id du forum
        $query=$db->prepare('SELECT forum_id, topic_post FROM forum_topic WHERE topic_id = :topic');
        $query->bindValue(':topic', $topic, PDO::PARAM_INT);    
        $query->execute();
        $data=$query->fetch();
        $forum = $data['forum_id'];

        //Puis on entre le message
        $query=$db->prepare('INSERT INTO forum_post
        (post_createur, post_texte, post_time, topic_id, post_forum_id)
        VALUES(:id,:mess,:temps,:topic,:forum)');
        $query->bindValue(':id', $id, PDO::PARAM_INT);   
        $query->bindValue(':mess', $message, PDO::PARAM_STR);  
        $query->bindValue(':temps', $temps, PDO::PARAM_INT);  
        $query->bindValue(':topic', $topic, PDO::PARAM_INT);   
        $query->bindValue(':forum', $forum, PDO::PARAM_INT); 
        $query->execute();

        $nouveaupost = $db->lastInsertId();
        $query->CloseCursor(); 

        //On change un peu la table forum_topic
        $query=$db->prepare('UPDATE forum_topic SET topic_post = topic_post + 1, topic_last_post = :nouveaupost WHERE topic_id =:topic');
        $query->bindValue(':nouveaupost', (int) $nouveaupost, PDO::PARAM_INT);   
        $query->bindValue(':topic', (int) $topic, PDO::PARAM_INT); 
        $query->execute();
        $query->CloseCursor(); 

        //Puis même combat sur les 2 autres tables
        $query=$db->prepare('UPDATE forum_forum SET forum_post = forum_post + 1 , forum_last_post_id = :nouveaupost WHERE forum_id = :forum');
        $query->bindValue(':nouveaupost', (int) $nouveaupost, PDO::PARAM_INT);   
        $query->bindValue(':forum', (int) $forum, PDO::PARAM_INT); 
        $query->execute();
        $query->CloseCursor(); 

        $query=$db->prepare('UPDATE forum_membres SET membre_post = membre_post + 1 WHERE membre_id = :id');
        $query->bindValue(':id', $id, PDO::PARAM_INT); 
        $query->execute();
        $query->CloseCursor(); 

        //Et un petit message
        $nombreDeMessagesParPage = 15;
        $nbr_post = $data['topic_post']+1;
        $page = ceil($nbr_post / $nombreDeMessagesParPage);
        echo'<p>Votre message a bien été ajouté!<br /><br />
        Cliquez <a href="index.php">ici</a> pour revenir à l index du forum<br />
        Cliquez <a href="voirtopic.php?t='.$topic.'&amp;page='.$page.'#p_'.$nouveaupost.'">ici</a> pour le voir</p>';
    }//Fin du else
    break;  ?>



alor je les modifier et la l' erreu et carément différente c' est Parse error: syntax error, unexpected T_VARIABLE in /dns/com/olympe-network/oxygeneteam/postok.php on line 155

voila le code modifier je ne voi pas la différence


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
<?php case "repondre":
    $message = $_POST['message'];

    //ici seulement, maintenant qu'on est sur qu'elle existe, on récupère la valeur de la variable t
    $topic = (int) $_GET['t'];
    $temps = time();
	$query=$db->prepare('SELECT topic_locked FROM forum_topic WHERE topic_id = :topic');
    $query->bindValue(':topic',$topic,PDO::PARAM_INT);
    $query->execute(); 
    $data=$query->fetch();
    if ($data['topic_locked'] != 0)
    {
        erreur(ERR_TOPIC_VERR); //A vous d'afficher un message du genre : le topic est verrouillé qu'est ce que tu fous là !?
    }
    $query->CloseCursor();

    if (empty($message))
    {
        echo'<p>Votre message est vide, cliquez <a href="poster.php?action=repondre&amp;t='.$topic.'">ici</a> pour recommencer</p>';
    }
    else //Sinon, si le message n'est pas vide
    {

        //On récupère l'id du forum
        $query=$db->prepare('SELECT forum_id, topic_post FROM forum_topic WHERE topic_id = :topic');
        $query->bindValue(':topic', $topic, PDO::PARAM_INT);    
        $query->execute();
        $data=$query->fetch();
        $forum = $data['forum_id'];

        //Puis on entre le message
         $query=$db->prepare('INSERT INTO forum_post
        (post_createur, post_texte, post_time, topic_id, post_forum_id)
        VALUES(:id,:mess,:temps,:topic,:forum)');
        $query->bindValue(':id', $id, PDO::PARAM_INT);   
        $query->bindValue(':mess', $message, PDO::PARAM_STR);  
        $query->bindValue(':temps', $temps, PDO::PARAM_INT);  
        $query->bindValue(':topic', $topic, PDO::PARAM_INT);   
        $query->bindValue(':forum', $forum, PDO::PARAM_INT); 
        $query->execute()

        $nouveaupost = $db->lastInsertId();
        $query->CloseCursor(); 

        //On change un peu la table forum_topic
        $query=$db->prepare('UPDATE forum_topic SET topic_post = topic_post + 1, topic_last_post = :nouveaupost WHERE topic_id =:topic');
        $query->bindValue(':nouveaupost', (int) $nouveaupost, PDO::PARAM_INT);   
        $query->bindValue(':topic', (int) $topic, PDO::PARAM_INT); 
        $query->execute();
        $query->CloseCursor(); 

        //Puis même combat sur les 2 autres tables
        $query=$db->prepare('UPDATE forum_forum SET forum_post = forum_post + 1 , forum_last_post_id = :nouveaupost WHERE forum_id = :forum');
        $query->bindValue(':nouveaupost', (int) $nouveaupost, PDO::PARAM_INT);   
        $query->bindValue(':forum', (int) $forum, PDO::PARAM_INT); 
        $query->execute();
        $query->CloseCursor() 

        $query=$db->prepare('UPDATE forum_membres SET membre_post = membre_post + 1 WHERE membre_id = :id');
        $query->bindValue(':id', $id, PDO::PARAM_INT); 
        $query->execute();
        $query->CloseCursor(); 

        //Et un petit message
        $nombreDeMessagesParPage = 15;
        $nbr_post = $data['topic_post']+1;
        $page = ceil($nbr_post / $nombreDeMessagesParPage);
        echo'<p>Votre message a bien été ajouté!<br /><br />
        Cliquez <a href="./index.php">ici</a> pour revenir à l index du forum<br />
        Cliquez <a href="./voirtopic.php?t='.$topic.'&amp;page='.$page.'#p_'.$nouveaupost.'">ici</a> pour le voir</p>';
    }//Fin du else
    break; ?>
Hors ligne hendyhdi # Posté le 30/01/2012 à 20:10:03

Avis : Bon

t'a vérifier si t'avais mal défini les table de ta base de donée psk défois les beug vienne qu'on défini mal la base de donée dans son script

:p
Hors ligne hendyhdi # Posté le 30/01/2012 à 20:18:04

Avis : Bon

et en passant j'ai un gros problème avec la suprimation des topic et le plus gros est le problème avec l'affichage des pseudo dans se qu'on poste (quand on écrit un topic le pseudo du l'auteur ne veux pas s'afficher) help svp !!!
Hors ligne Villa Flore # Posté le 23/03/2012 à 00:49:39

Bonjour,
Une erreur dans le tutoriel :
Il est écrit, dans la page "poster.php", lors de l'enregistrement d'une réponse :
Code : PHP
1
2
3
4
5
//On entre le topic dans la base de données en laissant
        //le champ topic_last_post à 0
        $query=$db->prepare('INSERT INTO forum_topic
        (forum_id, topic_titre, topic_createur, topic_vu, topic_time, topic_genre)
        VALUES(:forum, :titre, :id, 1, :temps, :mess)');

Or, pour l'enregistrement d'un élément (INSERT INTO), il est nécessaire de donner une valeur à TOUS les éléments de l'enregistrement.

Il faut donc écrire, dans la page :
Code : PHP
1
2
3
4
5
//On entre le topic dans la base de données en laissant
        //le champ topic_last_post à 0
        $query=$db->prepare('INSERT INTO forum_topic
        (forum_id, topic_titre, topic_createur, topic_vu, topic_time, topic_genre, TOPIC_LAST_POST, TOPIC_FIRST_POST, TOPIC_POST)
        VALUES(:forum, :titre, :id, 1, :temps, :mess)');

Il manque en effet les trois champs : TOPIC_LAST_POST, TOPIC_FIRST_POST, TOPIC_POST.

Sinon, la réponse ne s'enregistre pas :lol:

Ceci est sans doute dû au fait que ces trois champs ont été ajoutés par la suite à la table FORUM_TOPIC, après que le tutoriel ait été monté.

De plus :
Pour la compréhension du programme, il est judicieux de renommer dans les tables "forum_topic" et "forum_post" les champs suivants :
- table forum_topic : "forum_id" en "topic_forum_id"
- table forum_post" : "topic_id" en "post_topic_id"
pour la compréhension du programme.
Cela évite de mettre à chaque fois "forum_topic.topic_id" ou "forum_post.topic_id".
On met directement "topic_id" (quand la valeur concerne la table "forum_topic") ou "post_topic_id" (quand la valeur concerne la table "forum_post").
Bien sûr, il faut mettre à jour chacun des programmes :p

Beaucoup de petites erreurs de ce type, mais ceci permet de se pencher sur le programme et de bien saisir tout son fonctionnement.
Par exemple, j'ai compris le fonctionnement de la programmation avec PDO. Je vais maintenant me pencher sur un tutoriel PDO pour approfondir.

Merci.

On n'hérite pas de la terre de ses parents ... On l'emprunte à ses enfants (Saint-Exupéry) ... Protégeons la ...
 
Hors ligne Villa Flore # Posté le 23/03/2012 à 12:57:47

Oups ! un oubli dans le message précédent :

. . . Il faut donc écrire, dans la page :
--------------------------------------------------------------------------------------------------
//On entre le topic dans la base de données en laissant le champ topic_last_post à 0
_ _ _ _ $query=$db->prepare('INSERT INTO forum_topic
_ _ _ _ (forum_id, topic_titre, topic_createur, topic_vu, topic_time, topic_genre, topic_last_post, topic_first_post, topic_post)
_ _ _ _ VALUES(:forum, :titre, :id, 1, :temps, :mess, 0 , 0 , 0)');
--------------------------------------------------------------------------------------------------
. . . Eh oui ;)

On n'hérite pas de la terre de ses parents ... On l'emprunte à ses enfants (Saint-Exupéry) ... Protégeons la ...
 
Pour accéder à cette section
Connectez-vous !
connexion_rpx