Pb envoi de formulaire à base de données
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 ... :roll: ).
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:
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:
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