Requete qui ne s'exécute pas toujours ???

cs_b4d Messages postés 29 Date d'inscription dimanche 23 janvier 2005 Statut Membre Dernière intervention 18 mars 2008 - 17 oct. 2006 à 22:51
cs_b4d Messages postés 29 Date d'inscription dimanche 23 janvier 2005 Statut Membre Dernière intervention 18 mars 2008 - 18 oct. 2006 à 14:19
Bonjour tout le monde,

J'ai besoin de votre aide pour me dire ou est le bug dans ce code...
J'ai créé un petit forum et donc, une sorte de petit bbcode... seulement, je l'ai fait pour qu'on travaille directement avec des balises html et non pas des [b] et [i] que je n'aime pas vraiment !
Il y a aussi possibilité d'ajouter des smiley qui apparaissent sous forme :-) et qui sont remplacé ensuite en image... Comme ça j'ai décrit l'éditeur...

Maintenant, le problème, c'est que parfois on envoi des messages et il les enregistre dans la table sans problème mais parfois (1/20 environ) il foire... il enregistre rien!

Voici le code de la page qui recoit les var post:

    $message = nl2br($_POST['message']);
    $sql = 'SELECT * FROM smiley';
    $reponse = requete($sql);
    while ($donnees = mysql_fetch_array($reponse))
    {
        $message = str_replace($donnees['raccourci'], '', $message);
    }
    if ($message == '') // si jamais il venait a y avoir un bug à cause des smiley
    {
        $message = nl2br($_POST['message']);
    }
    $sql = 'INSERT INTO f_message(id, idsujet, idforum, id_user, contenu, fichier) VALUES ("", "'.$_POST['id_sujet'].'", "'.$_POST['id_forum'].'", "'.$_SESSION['id_sess'].'", "'.$message.'", "'.$_POST['fichier'].'")';
    requete($sql);

Requete est une fonctio qui remplace mysql_query... l'erreur ne vient pas de là...

Si quelqu'un sait me dire s'il ya un prob dans mon code ou si c'est a cause du serveur ou autre...
Merci

3 réponses

cs_putch Messages postés 624 Date d'inscription mardi 6 mai 2003 Statut Membre Dernière intervention 14 décembre 2009 1
18 oct. 2006 à 07:56
salut !

a mon avis le probleme vient bien de la requete !
si je saisie le message "je m'appelle putch" ca va planté à cause du ' !

utilise donc la fonction addslashes()
autour des variables de type chaine dans ta requete
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
18 oct. 2006 à 10:47
Ou mysql_real_escape_string () en l'occurence, vu que c'est mysql.
0
cs_b4d Messages postés 29 Date d'inscription dimanche 23 janvier 2005 Statut Membre Dernière intervention 18 mars 2008
18 oct. 2006 à 14:19
Oui, sauf que quand ça plante, c'est pas à cause des apostrophes!
Je ne sais pas pourquoi...
Des message avec des apostrophes, des guillemets, des smiley, ... il y en a plein qui se sont enregistrés!
Et le problème, c'est que comme les messages qui font planter la requète s'enregistre pas, ben je sais pas trouver leur point commun!
0
Rejoignez-nous