Bonjour,
J'ai voulu "jouer" avec un script de shoutbox trouvé sur www.yensdesign.com, mais je rencontre un soucis : l'appel à la fonction PHP qui sauvegarde ne semble pas se faire correctement.
A l'aide de firebug, je constate que je passe bien pas la fonction d'appel dans le js, mais il ne semble rien se passer côté PHP (j'ai mis quelques lignes très moches de logs pour tester)
le code :
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 $(document).ready(function(){ //global vars var inputUser = $("#shoutboxUser"); var inputMessage = $("#shoutboxMessage"); var loading = $("#shoutboxLoading"); var messageList = $(".shoutboxContent > ul"); //functions function updateShoutbox(){ //just for the fade effect messageList.hide(); loading.fadeIn(); //send the post to shoutbox.php $.ajax({ type: "POST", url: "shoutbox.php", data: "action=update", complete: function(data){ loading.fadeOut(); messageList.html(data.responseText); messageList.fadeIn(2000); } }); } //check if all fields are filled function checkForm(){ if(inputUser.attr("value") && inputMessage.attr("value")) return true; else return false; } //Load for the first time the shoutbox data updateShoutbox(); //on submit event $("#shoutboxForm").submit(function(){ if(checkForm()){ var nick = inputUser.attr("value"); var message = inputMessage.attr("value"); //we deactivate submit button while sending $("#shoutboxSend").attr({ disabled:true, value:"Sending..." }); $("#shoutboxSend").blur(); //send the post to shoutbox.php $.ajax({ type: "POST", url: "shoutbox.php", data: "action=insert&nick=" + nick + "&message=" + message, complete: function(data){ messageList.html(data.responseText); updateShoutbox(); //reactivate the send button $("#shoutboxSend").attr({ disabled:false, value:"Shout it!" }); } }); } else alert("Please fill all fields!"); $("#shoutboxMessage").attr("value") = ""; //we prevent the refresh of the page after submitting the form return false; }); });Oui, bon, ok, je sais que ma manière d'insérer le code dans InsertMessage n'est pas tres sexy, mais bon ...
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 function getContent($num){ $res = mysql_query("SELECT date, user, message FROM shoutbox ORDER BY date DESC LIMIT ".$num); if(!$res) die("Error: ".mysql_error()); else return $res; } function insertMessage($user, $message){ $userToInsert = mysql_real_escape_string(strip_tags($user)); $messageToInsert = mysql_real_escape_string(strip_tags($message)); $dateToInsert = Date('d/m/Y H:i:s'); $idToInsert = 0; $logMsg = ""; $logMsg .= "User = $userToInsert\nMessage = $messageToInsert\nDate = $dateToInsert\n"; $query="SELECT max(id) FROM shoutbox"; $result=mysql_query($query) or die (mysql_error()); while ($row=mysql_fetch_array($result)) { $idToInsert=$row[0]; } $idToInsert = $idToInsert+1; $logMsg .= "Id = $idToInsert\n"; $query = "INSERT INTO shoutbox(id,date, user, message) VALUES('$idToInsert','$dateToInsert', '$userToInsert', '$messageToInsert')"; $res = mysql_query($query); $logMsg .= "Res = $res\n"; if(!$res) { $logMsg .= "Error: ".mysql_error()."/n"; $fp = fopen("logs.txt","a"); fwrite($fp,$logMsg); fclose($fp); die("Error: ".mysql_error()); } else { $fp = fopen("logs.txt","a"); fwrite($fp,$logMsg); fclose($fp); return $res; } } /****************************** MANAGE REQUESTS /******************************/ switch($_POST['action']){ case "update": $res = getContent(20); $result = ""; while($row = mysql_fetch_array($res)){ $result .= "<li><span class='shoutboxUser'>".$row['user']."</span><img src=\"img/shoutbox/bullet.gif\" alt=\"-\" />".$row['message']." <span class=\"shoutboxDate\">(".$row['date'].")</span></li>"; } echo $result; break; case "insert": echo insertMessage($_POST['nick'], $_POST['message']); break; }
Information complémentaire : pas systématique, à savoir que cela est rare en local, mais quasiment la majorité en "prod".
Cela vous inspire t'il ?
Partager