Bonjour, voila je me permet de vous envoyer ce message car j'ai un soucis avec mes pages php que je n'arrive pas a regler, et je suis venu vous demander votre aide si vous le voulez bien .
Je vous met mes 4 pages x) (désolé si il y a autant de pages) cest pour mon forum que je cree
Je vous ai mis les commentaire en php
index. php
insert_reponse.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <html> <head> <title>Index de notre forum</title> </head> <body> <!-- on place un lien permettant d'accéder à la page contenant le formulaire d'insertion d'un nouveau sujet --> <a href="./insert_sujet.php">Insérer un sujet</a> <br /><br /> <?php // on se connecte à notre base de données $base = mysql_connect ('serveur', 'login', 'password'); mysql_select_db ('nom_base', $base) ; // préparation de la requete $sql = 'SELECT id, auteur, titre, date_derniere_reponse FROM forum_sujets ORDER BY date_derniere_reponse DESC'; // on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die) $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); // on compte le nombre de sujets du forum $nb_sujets = mysql_num_rows ($req); if ($nb_sujets == 0) { echo 'Aucun sujet'; } else { ?> <table width="500" border="1"><tr> <td> Auteur </td><td> Titre du sujet </td><td> Date dernière réponse </td></tr> <?php // on va scanner tous les tuples un par un while ($data = mysql_fetch_array($req)) { // on décompose la date sscanf($data['date_derniere_reponse'], "%4s-%2s-%2s %2s:%2s:%2s", $annee, $mois, $jour, $heure, $minute, $seconde); // on affiche les résultats echo '<tr>'; echo '<td>'; // on affiche le nom de l'auteur de sujet echo htmlentities(trim($data['auteur'])); echo '</td><td>'; // on affiche le titre du sujet, et sur ce sujet, on insère le lien qui nous permettra de lire les différentes réponses de ce sujet echo '<a href="./lire_sujet.php?id_sujet_a_lire=' , $data['id'] , '">' , htmlentities(trim($data['titre'])) , '</a>'; echo '</td><td>'; // on affiche la date de la dernière réponse de ce sujet echo $jour , '-' , $mois , '-' , $annee , ' ' , $heure , ':' , $minute; } ?> </td></tr></table> <?php // on libère l'espace mémoire alloué pour cette requête mysql_free_result ($req); // on ferme la connexion à la base de données. mysql_close (); ?> </body> </html>
insert_sujet.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 // on teste si le formulaire a été soumis if (isset ($_POST['go']) && $_POST['go']=='Poster') { // on teste le contenu de la variable $auteur if (!isset($_POST['auteur']) || !isset($_POST['message']) || !isset($_GET['numero_du_sujet'])) { $erreur = 'Les variables nécessaires au script ne sont pas définies.'; } else { if (empty($_POST['auteur']) || empty($_POST['message']) || empty($_GET['numero_du_sujet'])) { $erreur = 'Au moins un des champs est vide.'; } // si tout est bon, on peut commencer l'insertion dans la base else { // on se connecte à notre base de données $base = mysql_connect ('serveur', 'login', 'password'); mysql_select_db ('nom_base', $base) ; // on recupere la date de l'instant présent $date = date("Y-m-d H:i:s"); // préparation de la requête d'insertion (table forum_reponses) $sql = 'INSERT INTO forum_reponses VALUES("", "'.mysql_escape_string($_POST['auteur']).'", "'.mysql_escape_string($_POST['message']).'", "'.$date.'", "'.$_GET['numero_du_sujet'].'")'; // on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die) mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error()); // préparation de la requête de modification de la date de la dernière réponse postée (dans la table forum_sujets) $sql = 'UPDATE forum_sujets SET date_derniere_reponse="'.$date.'" WHERE id="'.$_GET['numero_du_sujet'].'"'; // on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die) mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error()); // on ferme la connexion à la base de données mysql_close(); // on redirige vers la page de lecture du sujet en cours header('Location: lire_sujet.php?id_sujet_a_lire='.$_GET['numero_du_sujet']); // on termine le script courant exit; } } } ?> <html> <head> <title>Insertion d'une nouvelle réponse</title> </head> <body> <!-- on fait pointer le formulaire vers la page traitant les données --> <form action="insert_reponse.php?numero_du_sujet=<?php echo $_GET['numero_du_sujet']; ?>" method="post"> <table> <tr><td> Auteur : </td><td> <input type="text" name="auteur" maxlength="30" size="50" value="<?php if (isset($_POST['auteur'])) echo htmlentities(trim($_POST['auteur'])); ?>"> </td></tr><tr><td> Message : </td><td> <textarea name="message" cols="50" rows="10"><?php if (isset($_POST['message'])) echo htmlentities(trim($_POST['message'])); ?></textarea> </td></tr><tr><td><td align="right"> <input type="submit" name="go" value="Poster"> </td></tr></table> </form> <?php if (isset($erreur)) echo '<br /><br />',$erreur; ?> </body> </html>
lire_sujet.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <?php // on teste si le formulaire a été soumis if (isset ($_POST['go']) && $_POST['go']=='Poster') { // on teste la déclaration de nos variables if (!isset($_POST['auteur']) || !isset($_POST['titre']) || !isset($_POST['message'])) { $erreur = 'Les variables nécessaires au script ne sont pas définies.'; } else { // on teste si les variables ne sont pas vides if (empty($_POST['auteur']) || empty($_POST['titre']) || empty($_POST['message'])) { $erreur = 'Au moins un des champs est vide.'; } // si tout est bon, on peut commencer l'insertion dans la base else { // on se connecte à notre base $base = mysql_connect ('serveur', 'login', 'password'); mysql_select_db ('nom_base', $base) ; // on calcule la date actuelle $date = date("Y-m-d H:i:s"); // préparation de la requête d'insertion (pour la table forum_sujets) $sql = 'INSERT INTO forum_sujets VALUES("", "'.mysql_escape_string($_POST['auteur']).'", "'.mysql_escape_string($_POST['titre']).'", "'.$date.'")'; // on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die) mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error()); // on recupère l'id qui vient de s'insérer dans la table forum_sujets $id_sujet = mysql_insert_id(); // lancement de la requête d'insertion (pour la table forum_reponses $sql = 'INSERT INTO forum_reponses VALUES("", "'.mysql_escape_string($_POST['auteur']).'", "'.mysql_escape_string($_POST['message']).'", "'.$date.'", "'.$id_sujet.'")'; // on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die) mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error()); // on ferme la connexion à la base de données mysql_close(); // on redirige vers la page d'accueil header('Location: index.php'); // on termine le script courant exit; } } } ?> <html> <head> <title>Insertion d'un nouveau sujet</title> </head> <body> <!-- on fait pointer le formulaire vers la page traitant les données --> <form action="insert_sujet.php" method="post"> <table> <tr><td> Auteur : </td><td> <input type="text" name="auteur" maxlength="30" size="50" value="<?php if (isset($_POST['auteur'])) echo htmlentities(trim($_POST['auteur'])); ?>"> </td></tr><tr><td> Titre : </td><td> <input type="text" name="titre" maxlength="50" size="50" value="<?php if (isset($_POST['titre'])) echo htmlentities(trim($_POST['titre'])); ?>"> </td></tr><tr><td> Message : </td><td> <textarea name="message" cols="50" rows="10"><?php if (isset($_POST['message'])) echo htmlentities(trim($_POST['message'])); ?></textarea> </td></tr><tr><td><td align="right"> <input type="submit" name="go" value="Poster"> </td></tr></table> </form> <?php // on affiche les erreurs éventuelles if (isset($erreur)) echo '<br /><br />',$erreur; ?> </body> </html>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <html> <head> <title>Lecture d'un sujet</title> </head> <body> <?php if (!isset($_GET['id_sujet_a_lire'])) { echo 'Sujet non défini.'; } else { ?> <table width="500" border="1"><tr> <td> Auteur </td><td> Messages </td></tr> <?php // on se connecte à notre base de données $base = mysql_connect ('serveur', 'login', 'password'); mysql_select_db ('nom_base', $base) ; // on prépare notre requête $sql = 'SELECT auteur, message, date_reponse FROM forum_reponses WHERE correspondance_sujet="'.$_GET['id_sujet_a_lire'].'" ORDER BY date_reponse ASC'; // on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die) $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); // on va scanner tous les tuples un par un while ($data = mysql_fetch_array($req)) { // on décompose la date sscanf($data['date_reponse'], "%4s-%2s-%2s %2s:%2s:%2s", $annee, $mois, $jour, $heure, $minute, $seconde); // on affiche les résultats echo '<tr>'; echo '<td>'; // on affiche le nom de l'auteur de sujet ainsi que la date de la réponse echo htmlentities(trim($data['auteur'])); echo '<br />'; echo $jour , '-' , $mois , '-' , $annee , ' ' , $heure , ':' , $minute; echo '</td><td>'; // on affiche le message echo nl2br(htmlentities(trim($data['message']))); echo '</td></tr>'; } // on libère l'espace mémoire alloué pour cette reqête mysql_free_result ($req); // on ferme la connection à la base de données. mysql_close (); ?> <!-- on ferme notre table html --> </table> <br /><br /> <!-- on insère un lien qui nous permettra de rajouter des réponses à ce sujet --> <a href="./insert_reponse.php?numero_du_sujet=<?php echo $_GET['id_sujet_a_lire']; ?>">Répondre</a> <?php } ?> <br /><br /> <!-- on insère un lien qui nous permettra de retourner à l'accueil du forum --> <a href="./index.php">Retour à l'accueil</a> </body> </html>
Aidez moi svp,
Coordialement Kunchikii,
Partager