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 :

pourquoi $_POST existe pas ?


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 495
    Billets dans le blog
    1
    Par défaut pourquoi $_POST existe pas ?
    Bonjour,
    mon code est basé sur l'existence de $_POST['user_name'] (if (isset($_POST['user_name']))) et je ne comprends pas pourquoi cette condition n'est pas valide.

    index.php :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     <p>Bienvenue sur le mini site consacré aux villes. </p>
                <?php include('user_authent.php');?>
                <?php require('inc_menu.php'); ?>

    user_authent.php :
    Code php : 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
      <?php
                if (!isset($_POST['user_name'])) { ?>
                <p>
                  Pour commencer, merci de vous identifier :<p/>
     
                  <form method="POST" action="">
                    <input type="text" name="user_name" />
                    <input type="submit" name ="submit_user_name" value="votre nom" />
                </form>
    <?php }
    else {
        $user_nom = $_POST['user_name'];
      ?>
        <p>Utilisez le menu de navigation pour consulter les pages du site ou rechercher <a href="search.php?name=<?= $user_nom ?>">ici</a>. <br>
        Bonne visite !</p>
     <?php } ?>

    dans villes.php :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo "include menu<br/>"; var_dump($_POST); include("inc_menu.php"); ?>

    inc_menu.php :
    Code php : 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
     
     <?php
                $result = $mysqli->query('SELECT ville_id, ville_nom FROM villes');
                while ($row = $result->fetch())
                {
                    $villes[$row['ville_id']] =$row['ville_nom'];
                }
                ?>
     
    <?php if (isset($_POST['user_name'])) { ?>
            <ul>
                <li><a href="index.php">Accueil</a></li>
                <?php foreach($villes as $id => $ville) : ?>
                <li><a href="villes.php?id=<?php echo $id ?>"><?php echo $ville ?></a></li>
                <?php endforeach ?>
            </ul>
     <?php } ?>

    Quand je vais dans villes.php, cela affiche ça :
    include menu
    array(0) { }
    Pourtant, m'étant déjà identifié donc passé dans user_authent.php, l'action du formulaire aurait du créer une variable $_POST, non ?

  2. #2
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 495
    Billets dans le blog
    1
    Par défaut
    En l'absence de solution, j'ai modifié le code pour ne plus avoir le souci. Tant pis pour ce mystère...

  3. #3
    Membre Expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 797
    Par défaut
    Bonjour

    Sauf erreur (j'ai un doute toutefois) tes variables postées sont accessibles uniquement dans la page qui reçoit la soumission du formulaire et donc user_authent.php uniquement.

    Ici tu souhaites récupérer la variable dans un autre script... $_POST n'est pas $_SERVER (accessible partout).

  4. #4
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 495
    Billets dans le blog
    1
    Par défaut
    Moi aussi, j'ai un doute ; j'étais même persuadé d'autre chose. Pour clarifier la chose, j'ai fait une recherche et trouvé un site qui dit autre chose :
    Ils sont super globaux, et donc on peut les atteindre de n’importe où dans le programme (même dans une fonction).
    vu dans http://www.oujood.com/php/variable-g...ost-de-php.php

  5. #5
    Membre Expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 797
    Par défaut
    "n'importe où dans le programme", est-ce qu'il faut comprendre programme par le script lui-même ou n'importe quel script, le doute reste pour moi.

  6. #6
    Membre Expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 797
    Par défaut Clean code
    Note : lorsqu'on fait un include d'un fichier, logiquement, il n''est pas attendu qu'un code s'exécute. C'est un concept aussi certainement pas une règle obligatoire.

    En clair : include, c'est charger un fichier. Ensuite, par exemple, tu appelles une fonction qui se trouve dans le fichier.

    Et cela répondrait à ton problème... Tu appellerais la fonction avec, comme paramètre, ta variable. Ce faisant ton code sera plus "propre", le risque de bugs potentiels étant alors moindre..

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 01/03/2016, 20h17
  2. Pourquoi il n'existe pas de framework/bibliothèques orientés "métier"?
    Par kisitomomotene dans le forum Débats sur le développement - Le Best Of
    Réponses: 31
    Dernier message: 26/04/2012, 19h04
  3. Pourquoi les objets courbés n'existent pas ?
    Par bricechris dans le forum Moteurs 3D
    Réponses: 24
    Dernier message: 09/05/2011, 10h09
  4. Pourquoi ai-je une erreur lors d'une recherche si la valeur n'existe pas ?
    Par blackndoor dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 17/03/2009, 12h22
  5. Pourquoi option execution Format Word existe pas?
    Par jeffidf dans le forum Cognos
    Réponses: 5
    Dernier message: 13/03/2009, 16h41

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