Bonjour !

Voilà je me suis fait un petit blog sur mon site avec possibilité pour les visiteurs de laisser des commentaires...

Mon problème est que l'envoi du commentaire à la base de données ne fonctionne qu'une fois sur 2 ( et je suis gentil ... ).

Après divers tests je pense que c'est du a un problème de formatage du texte (retour à la ligne, Majuscule, caractères spéciaux, etc... ) mais je n'en suis pas sûr.

Je vous donne mon code...

Formulaire (poster.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
 
 
<form action="photos/writephotos.php?idphoto=<?php echo $idphoto; ?>" method="post">
<div>
            <strong>Pseudo</strong>
	    <br/>
            <input size="30" type="text" name="pseudo" />
            <br/><br/>
            <strong>Mail</strong>
            <br/>
            <input size="30" type="text" name="mail" />
            <br/><br/>
            <strong>Commentaire</strong>
            <br/>
            <textarea cols="60" rows="15" name="message"></textarea>
            <br/>
            <input type="submit" value="Envoyer"/>
</div>
</form>
Envoi à la base de données (writephotos.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
 
 
$pseudo=htmlentities($_POST['pseudo']);
$commentaire=htmlentities($_POST['message']);
$email = htmlentities($_POST['mail']);
 
//Retour à la ligne et stripslashes
$commentaire=stripslashes(nl2br($commentaire));
 
//Login et message non vide
if (trim($commentaire)=="" || trim($pseudo)=="")
{
        echo "Vous devez remplir les champs 'pseudo' et 'commentaire'!";
        exit;
}
else {
 
$heure = date("H:i");
$jour = date("d/m/Y");
$date = $jour." a ".$heure;
include("_connexion.php");
mysql_select_db ("photoscomm", $base) ; 
$sql="INSERT INTO photoscomm (idphoto, date, com, email, pseudo) VALUES ('$idphoto','$date', '$commentaire', '$email', '$pseudo')";
mysql_query($sql, $base);
 
}
echo "Merci $pseudo, ton commentaire a bien été bien enregistré.<br>";
 
?>
Vu que ça marche une fois sur 2 c'est qu'a priori c'est pas trop faux ^^
Je signal également dans quel type de champs sont stockées les données dans ma base :
idphoto, int 128 unsigned
date, varchar 128 latin1_general_ci
com, text latin1_general_ci
email, varchar 128 latin1_general_ci
pseudo, varchar 128 latin1_general_ci

Voilà j'éspere avoir été assez clair et complet.
Merci