Test d'entrée de formulaire - PHP - Programmation
Marsh Posté le 17-01-2004 à 03:00:09
Tu as deux pages :
page 1 : le formulaire qui pointe vers la page 2.
page 2 : la page de traitement du formulaire qui dit que ça va, ou que ça va pas et renvoie vers la page 1 si ça va pas, ou vers une feuille 3 si tout s'est bien passé.
Dans la page 2, tu testes bêtement comme ça :
Code :
|
Marsh Posté le 17-01-2004 à 03:12:20
ok, je vois, mais comment renvoyer a la page 1 en cas d'erreur ou a la page 3 en cas de réussite?
Marsh Posté le 17-01-2004 à 03:19:41
par pitié!! je suis pas un vrai programmeur moi!! juste un bidouilleur! (et infographiste)
c'est a dire le header?
Marsh Posté le 17-01-2004 à 03:28:33
Mouarf, marrant qu'Hermes soit le dieu des menteurs dans la mythologie
Bref, la solution de notre dieu est presque bonne, sauf que tu ne peux pas faire de redirection après un echo
Donc :
page 1 : le form qui pointe vers la page de test (page 2 si t'es pas trop sûr, page 1 elle-même si t'as l'habitude)
page 2 : le test
Code :
|
Dans page 1, tu dois juste vérifier si $_POST['err'] existe et si oui afficher ton message d'erreur :
Code :
|
Marsh Posté le 17-01-2004 à 03:49:14
merci beaucoup! ça marche!
mais dis moi, ya plusieurs champs a remplir. est-ce qu'il est possible de garder les valeur des champs qui ont été entrées, après que le script ai affiché "champ vide"? afin d'éviter à l'utilisateur de re-rentrer tous les champs s'il a fait une erreur...
Marsh Posté le 17-01-2004 à 16:21:13
Scien2fik a écrit : merci beaucoup! ça marche! |
oui avec des variables de sessions.
Au début de chaque page : session_start();
Dans ta page de traitement, si il manque des choses :
$_SESSION['nom_variable_pour_le_champ'] = $_POST['variable_du_champ'];
Et dans ta page du formulaire, par exemple :
<input type="text" name="nom_variable_a_envoyer" value="<?php echo $_SESSION['nom_variable_pour_le_champ']; ?>" />
Marsh Posté le 17-01-2004 à 23:26:33
C'est parfait, ça marche mais le problème c'est que je sais pas comment fermer la session. A chaque fois que je reviens sur la page du formulaire, les anciennes données sont toujours mémorisées et même si je ferme la page et là réouvre, ça marche pas...
Marsh Posté le 18-01-2004 à 00:33:57
Désolé d'être aussi vérace mais je débute...
quand je rentre un champ avec une apostrophe, il me le prend pas comme si c'étais une erreur de syntaxe dans INSERT INTO :
l'ariege => 'l'ariege' , ...
Marsh Posté le 18-01-2004 à 02:29:30
ah! j'ai trouvé pour le probleme d'apostrophe!
mais pas pour le probleme de session...
Marsh Posté le 18-01-2004 à 02:34:39
Scien2fik a écrit : ah! j'ai trouvé pour le probleme d'apostrophe! |
Quand le résultat de tes champs est accepté, il te suffit de faire par exemple : $_SESSION['ma_variable'] = "";
Marsh Posté le 18-01-2004 à 02:39:53
Scien2fik a écrit : C'est parfait, ça marche mais le problème c'est que je sais pas comment fermer la session. A chaque fois que je reviens sur la page du formulaire, les anciennes données sont toujours mémorisées et même si je ferme la page et là réouvre, ça marche pas... |
Ne ferme pas la session mais détruit les variables de session concernée
Code :
|
Marsh Posté le 18-01-2004 à 02:42:21
naceroth a écrit :
|
unset ne marche plus...
Marsh Posté le 18-01-2004 à 02:49:24
depuis quand ?
('fin là chez moi il fonctionne toujours, et selon le manuel aussi)
Marsh Posté le 18-01-2004 à 02:54:09
naceroth a écrit : depuis quand ? |
En fait, si ça marche encore... J'ai confondu avec le problème suivant :
Citation : unset() détruit les variables var. Notez qu'en PHP 3, unset() retournait toujours TRUE (en fait, la valeur entière 1). unset() n'est plus une véritable fonction : c'est une structure du langage, ce qui fait qu'elle ne retourne pas de valeur. |
Marsh Posté le 18-01-2004 à 05:14:58
pinaise! vous êtes des pros!
je crois que c'est bon, tout marche! merci!
Marsh Posté le 17-01-2004 à 02:54:40
Salut!
j'ai fait un petit formulaire pour ajouter une entrée sur une base de données, et je voulais savoir comment faire pour tester si un certain champ à été rempli, et s'il n'a pas été rempli, le signaler à l'utilisateur... Merci