Test d'entrée de formulaire

Test d'entrée de formulaire - PHP - Programmation

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

Reply

Marsh Posté le 17-01-2004 à 02:54:40   

Reply

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 :
  1. if ($_POST['variable_recup_de_la_valeur'] == "" ){ echo"champ vide !!"; --> retour vers la page 1; }
  2. else
  3. {echo"super, merci !!"; --> aller page 3; }

Reply

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?

Reply

Marsh Posté le 17-01-2004 à 03:15:51    

rechercher sur header.

Reply

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?

Reply

Marsh Posté le 17-01-2004 à 03:28:33    

Mouarf, marrant qu'Hermes soit le dieu des menteurs dans la mythologie :D
 
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 :
  1. if ($_POST['var'] == '') {
  2.    header("location:page1.php?err=yes" );
  3. } else {
  4. //traitement
  5. }


 
Dans page 1, tu dois juste vérifier si $_POST['err'] existe et si oui afficher ton message d'erreur :

Code :
  1. if (isset($_POST['err'])) {
  2.   echo 'champs vide';
  3. }

Reply

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...

Reply

Marsh Posté le 17-01-2004 à 14:39:54    

Personne?

Reply

Marsh Posté le 17-01-2004 à 16:21:13    

Scien2fik a écrit :

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...


 
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']; ?>" />

Reply

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...

Reply

Marsh Posté le 17-01-2004 à 23:26:33   

Reply

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' , ...

Reply

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...

Reply

Marsh Posté le 18-01-2004 à 02:34:39    

Scien2fik a écrit :

ah! j'ai trouvé pour le probleme d'apostrophe!
mais pas pour le probleme de session...


 
Quand le résultat de tes champs est accepté, il te suffit de faire par exemple : $_SESSION['ma_variable'] = "";


Message édité par Hermes le Messager le 18-01-2004 à 02:34:50
Reply

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 :
  1. unset($_SESSION['ta_variable'])

Reply

Marsh Posté le 18-01-2004 à 02:42:21    

naceroth a écrit :


 
Ne ferme pas la session mais détruit les variables de session concernée
 

Code :
  1. unset($_SESSION['ta_variable'])




 
unset ne marche plus...

Reply

Marsh Posté le 18-01-2004 à 02:49:24    

depuis quand ?
 
('fin là chez moi il fonctionne toujours, et selon le manuel aussi)


Message édité par naceroth le 18-01-2004 à 02:52:23
Reply

Marsh Posté le 18-01-2004 à 02:54:09    

naceroth a écrit :

depuis quand ?
 
('fin là chez moi il fonctionne toujours, et selon le manuel aussi)


 
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.

Reply

Marsh Posté le 18-01-2004 à 05:14:58    

pinaise! vous êtes des pros! ;)
je crois que c'est bon, tout marche! merci!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed