Recharger une page sans rejour les données ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Recharger une page sans rejour les données ?

par DocType » 24 août 2006, 23:07

j'ai beaucoup de mal à comprendre ton script...pleins de fonctions ne sont pas présentes, on ne sait même pas ce qu'est $valtchat !
Par où commencer ?
Un exemple ? ok...
<?php
if (isset($_POST["pseudo"]) and isset($_POST["message"]))	
{
	//requete et message apparaissant lors de la validation
}
else	
{
	?>
	<form action="monfichier.php" method="post">
	<input type="text" name="pseudo" />
	<textarea name="message"></textarea>
	<input type="submit" />
	</form>
	<?
}
?>
ou
<?php
if (isset($_POST["pseudo"]) and isset($_POST["message"]))	
{
	//requete et message apparaissant lors de la validation
}
?>
<form action="monfichier.php" method="post">
<input type="text" name="pseudo" />
<textarea name="message"></textarea>
<input type="submit" />
</form>

Me semble que tu codais en java toi avant vu tes syntaxes...

par stephnane » 24 août 2006, 22:23

Yipee ! Vla mon code :

Page principale (mapage.php):

Code : Tout sélectionner

<!doctype html public "-//W3C//DTD HTML 4.0 //EN"> <html> <head> <title>Ma page à debugger</title> <LINK href="mystyle.css" type=text/css rel=stylesheet> <meta http-equiv="refresh" content="45;url=live.php"> </head> <body>
<?php

require('fonctions.php');
require('valeurs.php');
require('table.php');

$readcki=1;
if(isset($valtchat)){
	ajoutLigne(addslashes($user_chp),addslashes($tch_line));
}

echo "<CENTER><img src='imag/title2.jpg' alt='' border='0' ></CENTER>";


echo "<CENTER>";

tchat($user_chp);
br();

echo "</CENTER>";

?>

Code : Tout sélectionner

</body> </html>


Page fonctions.php :
// Ajout d'une ligne
function ajoutLigne($cur_user,$tline){
    $connexion=ConnectSel(SERVEUR,NOM,PWD,BASE);
    $requete="INSERT INTO `live_tchat` ( `date_line` , `line`, `user` ) "
				."VALUES ( '".time()."' , '$tline','$cur_user')";
    $resultat=PasserReq($requete,$connexion);
}

function tchat($cur_user)
{
// Début formulaire
debutForm('userlive','mapage.php');  // Je sais, c'est pas propre mais bon ...

// Afficher le champ utilisateur pré-entré le cas echéant.
if ($cur_user == "")
	$curuser="Invité";
else
    $curuser=$cur_user;
inputText("Pseudo : ",'user_chp',20,20,$curuser);
br();

        $connexion=ConnectSel(SERVEUR,NOM,PWD,BASE);
	$requete="select * from live_tchat group by date_line desc";
	$resultat=PasserReq($requete,$connexion);
    echo "<TEXTAREA NAME='AFFTCHAT' ROWS='16' COLS='55' CLASS='bgcol_white' readonly>";

	while ($tch=mysql_fetch_object($resultat))
	{
		echo date('H:i',$tch->date_line)." ".stripslashes($tch->user)."> ".stripslashes($tch->line)."\n";
  	}

    echo "</TEXTAREA>\n";
    br();

inputText("",'tch_line',60,100);
br();

// Afficher le bouton Valider
inputSub("valtchat","Ecrire");
finForm();
}

par DocType » 24 août 2006, 21:55

<<Début de ma page caché>>

$readcki=1;
if(isset($valtchat)){
ajoutLigne(addslashes($user_chp),addslashes($tch_line));
}
}

echo "<CENTER><img src='imag/title2.jpg' alt='' border='0' ></CENTER>";


// Cette fonction ci-dessous affiche un formulaire vide avec 3 champs texte et un submit de base. Le script appelé par le formulaire est la page dont le code est sous vos yeux ... Ce que je ne veux pas qui soit rejoué lors du rechargement, c'est cette fameuse fonction ajoutLigne(...) qui insère les données des champs dans ma base

tchat($user_chp);
=> 1) code entre balises php pour le respect de tous afin de faciliter la lecture
=> 2) ca commence à être intéressant, mais des bribes de code fournies ici et là ne servent à rien. Fournis le code pile poil comme il est dans ta page, en remplaçant les informations perso par dautres infos.

par stephnane » 24 août 2006, 21:54

oubliez les erreurs de syntaxe du genre mes doubles crochets, c'est une erreur de recopie.

Steph

par DocType » 24 août 2006, 21:52

De façon générale, dans une page, tu as un formulaire et la page de script est ta page de départ (celle qui contient ton formulaire).
Lorsque tu valides, la page lance les fonctions qui vont bien pour insérer les donnée et affiche de nouveau le formulaire...
De façon générale, il faut savoir que rien n'est général. On veut bien aider les personnes sur phpfrance, mais un minimum de données doit nous parvenir. Comment veux-tu corriger ton code (oui oui, c'est bien le corriger qu'il faut faire!) si on ne l'a pas sous les yeux?... :roll:
Ma question est : peut-on empecher de recharger les données quand on appuie sur "recharger la page" dans mon browser ..
Ma question est : comment fais-tu pour arriver à recharger les données de ton formulaire (telle est la réponse à ta question) ?

N'hésites pas à forunir ton code, et normalement en quelques coups d'oeil on comprendra le soucis :wink:

par Invité » 24 août 2006, 21:51

<<Début de ma page caché>>

$readcki=1;
if(isset($valtchat)){
ajoutLigne(addslashes($user_chp),addslashes($tch_line));
}
}

echo "<CENTER><img src='imag/title2.jpg' alt='' border='0' ></CENTER>";


// Cette fonction ci-dessous affiche un formulaire vide avec 3 champs texte et un submit de base. Le script appelé par le formulaire est la page dont le code est sous vos yeux ... Ce que je ne veux pas qui soit rejoué lors du rechargement, c'est cette fameuse fonction ajoutLigne(...) qui insère les données des champs dans ma base

tchat($user_chp);

par Stéphnane » 24 août 2006, 21:45

Lol ...

De façon générale, dans une page, tu as un formulaire et la page de script est ta page de départ (celle qui contient ton formulaire).

Lorsque tu valides, la page lance les fonctions qui vont bien pour insérer les donnée et affiche de nouveau le formulaire...

Ma question est : peut-on empecher de recharger les données quand on appuie sur "recharger la page" dans mon browser ..

Bon, d'accord, je vais essayer de mettre du code ;-))

par DocType » 24 août 2006, 21:34

avec le code ces serait mieux, car j'ai pour ma part laisser mon détecteur de pensée au boulot...
ça doit être une mauvaise redirection. J'attends ton code :roll:

Recharger une page sans rejour les données ?

par Stéphnane » 24 août 2006, 21:28

Bonjour.

J'ai des données dans un formulaire, que j'insère dans une base MySQL. Quand je valide la page, les données sont bien entrées dans la base et ma page se recharge, sans les données dans mon formulaire, les champs sont vidés (fonctionnement normal et obligatoire pour moi).
Cependant, quand je recharge ma page, les données validées précédemment sont ré-insérées.

Quelqu'un aurait-il une astuce pour éviter ça (unset des variables ?? autre chose ??)

Merci bcp par avance !

Stephnane