IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Pas d'action, tant que le formulaire n'est pas rempli


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Février 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Intégrateur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2014
    Messages : 11
    Points : 7
    Points
    7
    Par défaut Pas d'action, tant que le formulaire n'est pas rempli
    Bonsoir
    Que manque-t-il au code suivant pour que l'on reste sur la page du formulaire "formulaire.php", tant que celui-ci n'est pas rempli ?
    Pourquoi ce code, au lieu de prendre en compte la condition préliminaire, ouvre-t-il tout de suite "reponse.php"?
    Quelqu'un peut-il m'aider ?

    formulaire.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    <?php
    if (!empty($_POST)) { 
    	extract($_POST);
    	$valid = true;							
    		if (empty($nom)) { $valid=false; $erreur_nom='Vous devez inscrire votre nom!'; }		
    	} 	
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>RESTER SUR LE FORMULAIRE OU ENVOYER LA REPONSE</title>
    </head>
    <body>
    <h3>Formulaire</h3> 
    	<form name="devis" method="POST" action="reponse.php">
    		Saisissez votre nom <input type="text" name="nom" />
    		<input type="submit" name="valider" value="Réponse">
    	</form>
    </body>
    </html>
    reponse.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
     
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>RESTER SUR LE FORMULAIRE OU ENVOYER LA REPONSE</title>
    </head>
     
    <body>
    <h3>Réponse</h3> 
    <?php
    	if (isset($_POST['valider'])) {
    		$nom = $_POST['nom'];
    		echo 'Salut '.$nom.'!';
    	}
    ?>
    </body>
    </html>

  2. #2
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2012
    Messages : 17
    Points : 23
    Points
    23
    Par défaut
    Le code PHP est exécuté au chargement de ta page. Donc, une fois chargée, il ne peux plus être interpréter. Si tu veux empêcher la validation du formulaire, il faut te pencher vers le JavaScript.

  3. #3
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    Ou alors mettre ton code PHP en haut de la page reponse.php
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Février 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Intégrateur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2014
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Merci pour vos réponses
    mais, en utilisant Javascript dans ce cas précis, certains navigateurs n'afficheront-ils pas une Alerte demandant si l'on veut activer Javascript ? (J'évite toujours Javascript à cause de cela).
    Si vous me dites qu'il n'y a aucun risque, je tenterais Javascript après avoir essayé la solution de Spartacusply qui est probablement la plus simple.
    Alors : risque ou pas ?

  5. #5
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    L'un n'empêche pas l'autre. Dans tous les cas il te faudra une vérification côté serveur qui est indispensable du fait en effet que certains utilisateurs peuvent naviguer avec javascript désactivé justement.

    Après rien ne t'empêche de faire une vérification js également, c'est quand même plus agréable à la navigation (avec des effets sympas, des ptites infobulles qui clignotent, tousatousa quoi).
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Février 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Intégrateur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2014
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Merci, Spartacusply
    Je ne peux malheureusement pas me repencher sur le problème avant ce soir.
    Bonne journée

  7. #7
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2012
    Messages : 17
    Points : 23
    Points
    23
    Par défaut
    J'ajouterais que la simple vérification côté serveur, dans le cas d'une page de traitement différente, t'obligeras à remplir dynamiquement le formulaire, ou bien de proposer un formulaire vide en avertissant l'utilisateur qu'il y avait une erreur et que du coup, il doit remplir tous les champs à nouveau. Ergonomiquement, il est quand même préférable d'utiliser JS en amont.

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Février 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Intégrateur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2014
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Voilà quatre jours que je patauge dans la semoule !
    Elle ressemblerait à quoi, la formule magique sans JavaScript qui au tout début du script de reponse.php renverrait à formulaire.php, lorsque $nom est vide ?
    Parmi mes tentatives infructueuses, dans reponse.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    29
     
    <?php
    if (empty($nom)) {
    	//$valid = false; 
    	echo "<href='formulaire.php'>";
    	//$erreur_nom='Vous devez inscrire votre nom!'; 
    	}		
    ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
     
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>RESTER SUR LE FORMULAIRE OU ENVOYER LA REPONSE</title>
    </head>
     
    <body>
    <h3>Réponse</h3> 
    <?php
    	if (isset($_POST['valider'])) {
    	$nom = $_POST['nom'];		
    		if (!empty($_POST)) { 
    		extract($_POST);
    		$valid = true;							
    		}
    		echo 'Salut '.$nom.'!';
    	}
    ?>
    </body>
    </html>

  9. #9
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    La balise href n'existe pas en HTML :

    Une redirection en php se fait comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header('Location: mapage.php');
    Une simple recherche dans google t'aurait donné des milliers de résultat https://www.google.fr/#q=redirection+php
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  10. #10
    Membre éprouvé Avatar de Shuty
    Homme Profil pro
    Ingénieur en développement
    Inscrit en
    Octobre 2012
    Messages
    630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur en développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 630
    Points : 1 174
    Points
    1 174
    Par défaut
    Citation Envoyé par Spartacusply Voir le message
    La balise href n'existe pas en HTML :

    Une redirection en php se fait comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header('Location: mapage.php');
    Une simple recherche dans google t'aurait donné des milliers de résultat https://www.google.fr/#q=redirection+php
    A placer avant ta sortie (echo, print, etc...)
    Agence web Dim'Solution, créateur de solutions numériques
    Sites internet, ecommerce, logiciels, applications mobiles, référencement (SEO), plugin Prestashop, Magento, WordPress, Joomla!...

    Cours de trading gratuit | Envoyer des sms gratuitement | Envoyer des fax gratuitement | Plateforme de Fax à l'international

  11. #11
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    En tout début de script, il n'y a aucune raison pour que la variable $nom existe...

    Citation Envoyé par Alvastar
    certains navigateurs n'afficheront-ils pas une Alerte demandant si l'on veut activer Javascript ?
    Non, aucune raison. Cela ne se produit que si tu utilises IE en protocole file:.

    Citation Envoyé par Alvastar
    J'évite toujours Javascript à cause de cela
    Les croyances... difficile de lutter contre. Moi, je ne parle pas aux femmes parce qu'il parait qu'elles n'ont pas d'âme...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Février 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Intégrateur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2014
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Merci à tous, pour votre aide.
    En effet, avec header, ça marche mieux.
    Quant à cette croyance, Bovino m'en a libéré (mais pour ce qui est des femmes, méfiance, quand même).

    Bonne soirée à tous

  13. #13
    Futur Membre du Club
    Homme Profil pro
    Intégrateur Web
    Inscrit en
    Février 2014
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Intégrateur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2014
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    (comme Colombo
    Euh, une dernière petite question: ce petit rajout de code, à l'attention des oublieux, vous le mettriez où (et dans formulaire.php ou dans reponse.php) ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $erreur_nom = 'Vous devez inscrire votre nom!';
    	if (isset($erreur_nom)) echo $erreur_nom;
    C'est bon, j'ai trouvé (et pour ceux qui s'intéresseront au problème, c'est dans formulaire.php) !

Discussions similaires

  1. MySQL n'est pas reconnu en tant que commande interne
    Par momobulle dans le forum Installation
    Réponses: 4
    Dernier message: 14/03/2012, 22h58
  2. vba tant que cellule active n'est pas ma cellule
    Par elise1983 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/09/2008, 22h34
  3. Réponses: 2
    Dernier message: 01/04/2008, 13h22
  4. [Continuum] CVS n'est pas reconnu en tant que commande
    Par domyclas dans le forum Intégration Continue
    Réponses: 10
    Dernier message: 11/10/2007, 11h54
  5. Réponses: 2
    Dernier message: 01/11/2006, 22h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo