FORMULAIRE

bobcarter Messages postés 20 Statut Membre -  
bobcarter Messages postés 20 Statut Membre -
Bonjour !!
je fais une pti test en creant un forum en php et je me sers d'un fichier texte pr stocker tous les messges( je sais que c'est pas pratique , c juste un teste).
Alors qd kelkun ecrit un forum les valeurs des champs recuperées par les variables s'affichent normalement dans la page de forum mais j'ai remarqué que lorsqu'on actualise le site sans le fermer , l'affichage des valeurs des champs saisies en derniere position se repete au fur et à mesure qu'on clique sur actrualiser.je vous laisse mon scripts.merci d avance pour voitre aide.

<html>
<body>
<form action=forum.php method=post>
nom<input type=text name=nom value=""> <br>
message<textarea name="mes" value=""></textarea> <br>
<input type=submit value=valider name=val>
</form>

<?

$fichier="forumfiche.txt";
if(isset($mes) && isset($nom) && $nom!="" && $mes!="")
{
$pointeur=fopen($fichier,"r+");
$ancien=fread($pointeur,filesize($fichier));
$mes=htmlspecialchars($mes);
$mes=stripslashes(nl2br($mes));
$avis="$nom<br>$mes<br>";
rewind($pointeur);
fputs($pointeur,"$avis \n $ancien") ;

fclose($pointeur);

}

readfile($fichier);

?>

</body>
</html>

2 réponses

ShaoShiva Messages postés 106 Statut Membre 18
 
C'est normal, à chaque fois que tu actualise ta page, tu reéxécute le code et tu réinsères les données récupérées par la méthode post.

1) Met des doubles quotes dans tes balises html, comme ceci:
<form action="forum.php" method="post">
nom<input type="text" name="nom"> <br/>
message<textarea name="mes"></textarea> <br/>
<input type="submit" value="valider" name="val">
</form>

2) Récupère tes variables post avec $_POST['variable']

3) Aère un peu ton code, ça ne te coute rien ;-)
0
bobcarter Messages postés 20 Statut Membre
 
Merci pour les critiques

comment faire pour eviter que le code se reexécute afin d'empecher la reinsertion des données récupérées par la méthode post à chaque fois que j'actualise ma page?
0
ShaoShiva Messages postés 106 Statut Membre 18
 
Tu utilises les sessions:
Tu vérifie que la variable $_SESSION['verif'] est définie, si elle ne l'est pas, tu éxécute le code, et à la fin du code tu définie cette variable: $_SESSION['verif'] = 'ok';
Donc si le gars fait un reload, la variable sera définie et le code ne seras pas reéxécuté.
Tu peux aussi faire un header en fin de page qui le redirigeras vers une autre page, sans qu'il ne s'en rende compte.
0
bobcarter Messages postés 20 Statut Membre
 
Salut! youpiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii!
je t'ecris juste pr te remercier pour ton aide.franchement tu m 'as bcp aidé, ça fesé un mois que je galerai pers en pouvait m'aider.mon forum marche super super bien sans probleme.J'ai essayé avec le header, c tres simple et super efficace.j'ai trop le moral ,j peux evolué à present avec mon php.
Merci merci

A bientot!
0