Livre d'or

Fermé
didinux - 25 sept. 2009 à 09:59
jjsteing Messages postés 1669 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 - 27 sept. 2009 à 17:25
Bonjour,

je voulais coder mon livre d'or seul. Mais je rencontre des problèmes pour l'affichage des messages.
Je m'expliquer :
-Quand j'actualise ma page un message est posté (je ne veux pas)
- Et j'ai fais un test en javascript qui ouvre une fenetre quand les champs ne sont pas rempli, donc quand je clique sur envoyer avec les champs les message d'erreur apparraisse et aucun message n'est poster (c'est bien)
Mais quand suite après avoir fais ca je re clique sur envoyer en renseignant els champs correctement et bien mon message est envoyer et poster. Mais le message d'avant sans renseignement des champs est poster aussi. (c'est un problème)

si vous avez des solutions je serai ravie de votre aide
merci
Nuxcarenis

3 réponses

jjsteing Messages postés 1669 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
25 sept. 2009 à 10:04
bonjour..

plusieurs solutions :

deja, desactiver le bouton envoyer si il n y a pas au moins 3 caracteres par exemples...

Apres, le fait qu il t envoie le formulaire vide et celui rempli, cela vient de la facon de coder.. donc, balance ton code ;)

J ais mon livre d or qui fonctionne .. je pourrais te rebalancer une partie de mes sources si tu veux ;)

tu peux le consulter sur jjsteing.u7n.org en bas, au milieu, 'livre d or' ou 'guest book' (celon la langue ;) )
0
voici mon code enfin une partit : merci de ton aide.

<form id="formulaire" method="post" action="<?php $PHP_SELF;?>" >
<input type="hidden" name="ajout" value="true">
...
</form>

//si il a deja etait poste
if(isset($_POST['ajout']))
$ajout=true;
else
$jout=false;

if($ajout){
echo "Dejà traité";
}
// On récupère les données postées

//On vérifit que les champs ne sont pas vide
// création requete
//affichage des posts.
0
jjsteing Messages postés 1669 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 181
27 sept. 2009 à 17:25
ok, Bon, le plus simple c est que te file mon code, et tu l adapte ;)

PHP :

<?php
//Verifie si un post en cours
if (!isset($_POST["Nom"])){
	//affiche la page pour envoyer le message
	$Html.="<a href='#NewMessage'>Nouveau message</a><br>";
	$result=SQL("SELECT * from `guestbook` ORDER BY `guestbook`.`id` DESC;");
	while ($GB = mysql_fetch_array($result)) {

$txtSmiley=array(":)" , ":D" , ";)" , ":b" , ":l" , ":'(" , ":@" , "?:" , ":o" , "!:");
$Smiley=array("<img src='Images/Smileys/Heureux.gif'>",
	"<img src='Images/Smileys/Mdr.gif'>",
	"<img src='Images/Smileys/Clin_d_oeil.gif'>",
	"<img src='Images/Smileys/Bravo.gif'>",
	"<img src='Images/Smileys/Love.gif'>",
	"<img src='Images/Smileys/Triste.gif'>",
	"<img src='Images/Smileys/Enerve.gif'>",
	"<img src='Images/Smileys/Interrogation.gif'>",
	"<img src='Images/Smileys/Etonne.gif'>",
	"<img src='Images/Smileys/Idee.gif'>"
	);
$GB[3]=str_replace($txtSmiley,$Smiley,$GB[3]);
$GB[1]=str_replace($txtSmiley,$Smiley,$GB[1]);
		
	   $Html.= "N°".$GB[0]." - ".$GB[1]." (".date('d-m-Y', $GB[2])."):<br>";
	   $Html.="<table><td><dd></td><td>".nl2br($GB[3])."</td></table><br>";
	   $Html.= "__________________________________________________________________________<br>";
	}

	$Html.="<br><a name='NewMessage'></a>";

	$Html.="<table>";

	$Html.="<td>Nom : </td><td><input name='Nom' id='Nom' type='text' onkeyup='EnabledBtnEnvMess()' size=40></td><tr>";

	$Html.="<td></td><td align='center'>";
	$Html.="<a href='#' onclick=AjoutSmileys('&nbsp:)&nbsp')><img src='Images/Smileys/Heureux.gif'></a> ";
	$Html.="<a href='#' onclick=AjoutSmileys('&nbsp:D&nbsp')><img src='Images/Smileys/Mdr.gif'></a> ";
	$Html.="<a href='#' onclick=AjoutSmileys('&nbsp\;)&nbsp')><img src='Images/Smileys/Clin_d_oeil.gif'></a> ";
	$Html.="<a href='#' onclick=AjoutSmileys('&nbsp:b&nbsp')><img src='Images/Smileys/Bravo.gif'></a> ";
	$Html.="<a href='#' onclick=AjoutSmileys('&nbsp:l&nbsp')><img src='Images/Smileys/Love.gif'></a> ";
	$Html.="<a href='#' onclick=AjoutSmileys('&nbsp:\'(&nbsp')><img src='Images/Smileys/Triste.gif'></a> ";
	$Html.="<a href='#' onclick=AjoutSmileys('&nbsp:@&nbsp')><img src='Images/Smileys/Enerve.gif'></a> ";
	$Html.="<a href='#' onclick=AjoutSmileys('&nbsp?:&nbsp')><img src='Images/Smileys/Interrogation.gif'></a> ";
	$Html.="<a href='#' onclick=AjoutSmileys('&nbsp:o&nbsp')><img src='Images/Smileys/Etonne.gif'></a> ";
	$Html.="<a href='#' onclick=AjoutSmileys('&nbsp!:&nbsp')><img src='Images/Smileys/Idee.gif'></a>";
	$Html.="</td><tr>";

	$Html.="<td>Message : </td><td><textarea id='Message' cols=70 rows=10 name='Message' onkeyup='EnabledBtnEnvMess()'></textarea></td>";
	
	$Html.="</table><br>";
	$Html.='<input name="EnvMess" id="EnvMess" type="submit" value="Envoyer" disabled="true">';

}else{
//Ajoute le post dans la BD
	$requete = "INSERT INTO `".NomBaseSql."`.`guestbook` (`Nom` ,`Date`,`Message`) VALUES";
	$requete.="('".$_POST["Nom"]."','".time()."','".$_POST["Message"]."')";
	$result=SQL($requete);
//Recharge cette page pour afficher le nouveau post	
	header('location: index.php?id=1');
}
?>


JS :

function AjoutSmileys(smiley){
document.getElementById('Message').value += smiley;
}

function EnabledBtnEnvMess(){
	if (document.getElementById('Nom').value.length > 2 &&  document.getElementById('Message').value.length > 2){
		document.getElementById('EnvMess').disabled=false;
	}else{
		document.getElementById('EnvMess').disabled=true;
	}
}
0