Bonjour,

Je suis novice dans le domaine du développement web, je travaille actuellement sur un projet ou je dois crée un créer un forum

1/ J'ai procédé par étape , tout d'abord permettre aux utilisateurs de poster leur messages sur le mur

2/ Permettre aux utilisateurs de répondre aux messages posté sur le mur ( jusque là tout allait bien)

3/ Maintenant, je veux prévenir chaque participant aux forum quand il y a une réponse a son message, je me suis aidé par un petit script que j'ai trouvé sur internet mais je ne comprends pas tout dedans

De plus, j'ai des problèmes d'affichage quand je teste ma page : En effet, le bouton réponse a disparu ( je ne comprends pas pourquoi?)

et dernière petite chose, concernant la base de données, quand un utilisateur veut poster un nouveau sujet et bien j'ai un problème d'ecriture dans ma table, car la valeur de champ réponse est a 1 ( chose que je ne comprends pas du tout car par défaut elle est à 0)

l'erreur qu'il me met est la suivante :
Insertion dans la base de données du site impossible INSERT INTO forum_messages (quand,pseudo,email,message,reponse) VALUES (1246436840,'dgg','sgsg','sgsgg','') Incorrect integer value: '' for column 'reponse' at row 1
le code est le suivant :


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
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
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
 
<?php
/* Mini-forum en PHP */
 
// === CONNEXION A LA BD ===
 
// On teste si on est en local 
$isLocal=($_SERVER["SERVER_NAME"]=="localhost");
 
 
//$isLocal = TRUE;
// Paramètres de connexion en local ou sur site
 
$host = ($isLocal) ? "localhost" : "localhost"; 
$user = ($isLocal) ? "root" : "root"; 
$pass = ($isLocal) ? "mdp" : "mdp"; 
$bdd = ($isLocal) ? "forum" : "forum";
 
// connexion a la base de donnees
 
$link = mysql_connect($host,$user,$pass);
mysql_select_db($bdd); 
 
 
// Variables
 
if(isset($_POST['pseudo']))      $pseudo=$_POST['pseudo'];
else      $pseudo="";
if(isset($_POST['email']))      $email=$_POST['email'];
else      $email="";
if(isset($_POST['message']))      $message=$_POST['message'];
else      $message="";
if(isset($_POST['reponse']))      $reponse=$_POST['reponse'];
else      $reponse="";
 
 
$login=addslashes($pseudo); // addslashes gere les caratères spéciaux dans le champ spécifié
$email=addslashes($email); 
$message=addslashes($message);
 
 
 
/* === AJOUT D'UN MESSAGE EVENTUEL === */
 
if(@$_POST["message"]) {
 
$SQL="INSERT INTO forum_messages (quand,pseudo,email,message,reponse) VALUES (".time().",'".$pseudo."','".$email."','".$message."','".$reponse."')";
$res=mysql_db_query($bdd,$SQL,$link) or die ('Insertion dans la base de données du site impossible '.$SQL.' '.mysql_error()); 
 
 
/*	Réponse = n° auto si message initial	*/  
if(!$_POST["reponse"]) {
      // juste apres l'insertion, on peut récuperer l'id généré 
      $id = mysql_insert_id();
      mysql_query("UPDATE forum_messages SET reponse=".$id." WHERE ID=".$id);
   }
 
/*	Envoi de la réponse par email	*/
 
   if(!$isLocal&&($reponse!="0")) {
      // Gestionnaire ou répondeur du forum
 
//A quoi sert cette adresse , je crée juste une boite mail ?????
      $from = "From: forum@gmail.fr";
 
       // Sujet du mail
      $sujet = "Reponse a votre message posté sur le forum";
      // Sélection des destinataires
      $SQL = "SELECT * FROM forum_messages WHERE email<>'".$email."' AND (reponse=".$reponse." OR ID=".$reponse.") ORDER BY ID DESC";
      $res = mysql_query($SQL) or die(mysql_error());
      $temp=",";
      // Pour chaque adresse
      while($val=mysql_fetch_array($res)) {
         // Déjà envoyé 
         if(!strpos(" ".$temp,",".$val["email"].",")) {
            // Corps du message
$body = "Bonjour ".$val["login"].",\n\n"
   . "Un visiteur a repondu a votre message sur le forum :"
   . "\n".str_repeat("_",40)."\n"
   . $_POST["login"]." >> ".$_POST["message"]
   . "\n".str_repeat("_",40)."\n"
   . "\n en reponse a votre message du ".date("d/m/Y",$val["quand"])." :"
   . "\n".str_repeat("_",40)."\n"
   . $val["message"]
   . "\n".str_repeat("_",40)."\n"
   . "\nPour poursuivre la discussion, veuillez vous rendre à l'adresse\n"
   . "http://".$_SERVER["SERVER_NAME"].$_SERVER["SCRIPT_NAME"]
   . "?post=".$_POST["reponse"]
   ."\n\nA bientot\n";
 
               // Envoi du mail
            mail($val["email"],$sujet,$body,$from);
            // mémorise l'adresse
            $temp .= $val["email"] . ",";
         }
      }
   }
 
}
// === AFFICHAGE DE LA PAGE ===
?>
 
 
<HTML><HEAD>
   <TITLE>Mini-forum DunDal: </TITLE>
 
</HEAD><BODY bgcolor="#FFFFFF"><center>
<SCRIPT language="Javascript">
<!--     
	   function repond(num) {
         test=true
         with(document.form1) {
            // vérification du champ message
            if(message.value=="") {
               alert("Le champ message est vide!")
               message.focus()
               test=false
            }
            // vérification du champ email
            var reg = /^[a-z0-9._-]+@[a-z0-9.-]{2,}[.][a-z]{2,3}$/
            if(reg.exec(email.value)==null) {
               alert("Votre email est invalide !")
               email.focus()
               test=false
            }
            // vérification du champ login
            reg = /^[A-Za-z0-9_-]{3,}$/
            if(reg.exec(pseudo.value)==null) {
               alert("Votre pseudo est invalide !")
               pseudo.focus()
               test=false
            }
            reponse.value=num
            if(test) submit()
         }
      }
-->
</SCRIPT>
 
 
 
   <!-- Formulaire de saisie -->
 
<table>
      <form method="post" action="index2.php" name="form1">
         <tr>
            <td align=right>Pseudo</td><td>
               <input name="pseudo" maxlength=15>
            </td><td rowspan=3>
               <textarea name="message" cols=60 rows=5
                  ></textarea>
            </td>
         </tr><tr>
            <td align=right>Email</td><td>
               <input name="email" maxlength=50>
            </td>
         </tr><tr>
            <td colspan=2 align=center>
               <input type="submit" value="Nouveau sujet">
               <input type="hidden" name="reponse"> 
            </td>
         </tr>
      </form>
</table> 
 
 
<!-- Affichage des messages -->
 
<table border=1 cellspacing=0 cellpadding=5 width=100%>
 
<?php
// Requête de sélection des messages
$SQL = "SELECT * FROM forum_messages ORDER BY reponse DESC,ID";
$res = mysql_query($SQL) or die(mysql_error());
$i=0;
// Tant qu'il y a des messages
while($val=mysql_fetch_array($res)) { $i++;
   // Nouveau sujet 
   if(($val["reponse"]==$val["ID"])) {
      if($i>1) echo "</td></tr>";
      echo "<tr><td>";
      // Bouton "Répondre"
      echo "<button onclick='repond(".$val["ID"].")'>"
         . "Répondre</button> ";
   } else {
      echo "<hr size=1>";
   }
   echo "<br>";
   // Ecrit la date du message
   echo date("d/m/Y H:i:s",$val["quand"]);
   // Ecrit le login de l'auteur
   echo " - ".$val["pseudo"];
   echo "<br>";
   // Ecrit le message, n'autorise pas les code html ;)
   echo htmlentities($val["message"]);
}
?>
 
 
</table>
 
</center></BODY></HTML>
 
 
<?php
// === DECONNEXION ===
mysql_close();
 
?>
Je ne sais pas si j'étais assez claire dans mes explications
Si je ne l'ai pas été assez merci de me poser vos questions^^
Je vous remercie d'avance pour votre aide.