Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/09/2006, 15h22   #1
Invité régulier
 
Inscription : août 2006
Messages : 12
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 12
Points : 5
Points : 5
Par défaut Formulaire : conserver contenu des champs

Bonjour,

Sur chacun de mes formulaires, je passe par une page de récapitulation des infos entrées avant d'effectivement envoyer ces infos. Sur cette page, j'ai un bouton "Modifier les infos" qui revient sur la page précédente (avec un history.go(-1)).

Le hic, c'est que parfois, les champs du formulaires sont réinitialisés, parfois les informations rentrées sont conservées. Au début, je pensais que ça dépendait certainement du navigateur mais en fait, ça dépend du formulaire Certains conservent les données, d'autres non. Quelqu'un a une explication ? Et mieux, une soluce ?

Je viens de penser à un truc : si l'accès à une page est protégé, je suppose qu'il est normal qu'un history.go(-1) sur cette page efface toutes les données précédemment rentrées ?
jersey_girl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2006, 15h52   #2
Membre Expert
 
Avatar de zoom61
 
Homme Vincent ...
Passionné d'informatique
Inscription : janvier 2005
Messages : 1 217
Détails du profil
Informations personnelles :
Nom : Homme Vincent ...
Âge : 39
Localisation : France, Haute Vienne (Limousin)

Informations professionnelles :
Activité : Passionné d'informatique
Secteur : Industrie

Informations forums :
Inscription : janvier 2005
Messages : 1 217
Points : 1 506
Points : 1 506
Envoyer un message via Yahoo à zoom61 Envoyer un message via Skype™ à zoom61
Salut,

Dans tes formulaires utilises tu la donnée value="...". Elle permet de mettre une valeur à un champ.

@+.
__________________
N'oubliez pas le Tag :

C'est en parvenant à nos fins par l'effort, en étant prêt à faire le sacrifice de profits immédiats en faveur du bien-être d'autrui à long terme, que nous parviendrons au bonheur caractérisé par la paix et le contentement authentique. [Dalaï Lama]
Je ne réponds pas aux messages privés s'ils sont liés à une question du forum

Mon site sur Developpez.com
zoom61 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2006, 17h33   #3
Membre régulier
 
Inscription : mai 2006
Messages : 60
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : mai 2006
Messages : 60
Points : 73
Points : 73
Envoyer un message via Skype™ à Tiois
Salut, moi je te conseillerais tout simplement de valider les données sur la meme page que ton formulaire original. Par exemple, si tu as une page index.php avec ton formulaire à remplir par l'utilisateur, fais ton POST sur ce meme fichier, et valide les données dans l'entête du fichier comme suit :

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
 
<?php
//Supposant que tu as un bouton submit ayant le nom "submit"...
if ($_POST['submit']) {<blockquote>//Tu valide le code ici
//Tu set une variable te disant s'il y a des erreurs dans les données saisies par l'utilisateur.. par exemple :
if (!$nom) {<blockquote>$msg = "Entrez un nom<br />";
</blockquote>}
 
if ($msg) {<blockquote>$msg = "Veuillez corriger les erreurs suivantes :<br />";
</blockquote>} else {<blockquote> //Ici, s'il n'y a pas d'erreur, tu passes à la page suivante.. sinon tu réaffiches ton formulaire qui est plus bas dans le code
 
header("Location: ta_page.php");
exit();</blockquote>}
</blockquote>}
 
?>
<!-- Pour réafficher les données du formulaire, tu fais comme suis.. -->
<html>
...
 
<?php if ($msg) { ?>
<span class="error"><?php echo($msg) ?></span>
<?php } ?>
 
<input type="text" name="nom" value="<? echo(stripslashes($_POST['nom'])); ?>">
 
...
</html>
J'espère que ça va régler ton problème !
Tiois est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2006, 20h06   #4
Membre chevronné
 
Avatar de kankrelune
 
Inscription : décembre 2005
Messages : 766
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 766
Points : 745
Points : 745
Je ne dirais qu'une chose... SESSIONS... .. .

@ tchaOo°
kankrelune est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2006, 20h44   #5
Membre régulier
 
Avatar de elitemedia
 
Inscription : août 2006
Messages : 115
Détails du profil
Informations personnelles :
Localisation : Suisse

Informations forums :
Inscription : août 2006
Messages : 115
Points : 92
Points : 92
Quelle que soit ta solution, n'utilise pas javascript tant que ton application ne fonctionne pas sans erreur.

Je veux dire qu'il faut ajouter du JS uniquement pour rendre confortable la navigation ou l'utilisation de ton application, mais d'abord celle-ci doit fonctionner et avoir été testée sans JS.

J'ajoute également que pour les redirections et renvois de pages, tu ferais mieux d'utiliser la fonction header de PHP avec un truc du genre :

Code :
1
2
3
4
5
6
7
8
if(!headers_sent())
{
    header('Location: http://www.tonsite.com/tapage.php');
    exit;
} else {
    include_once('tapage.php');
    exit;
}
elitemedia est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h21.


 
 
 
 
Partenaires

Hébergement Web