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 :

[Système] code non éxécuté


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Inscrit en
    Mars 2004
    Messages
    1 931
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 931
    Par défaut [Système] code non éxécuté
    bonjour,

    lors de l'envoie de mon formulaire, si ça se passe bien j'ai le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    $connectOK=false;
     
    if (!$verifexist)
    {
    $connectOK=true;
    }
    et au tout début de ma page je met le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    <?php 
    			if (empty($connectOK))
    			{
    			   $connectOK = "";
    			}
    			if ($connectOK)
    			{header("Location: ok_client.htm");} 
    ?>
    ce que je ne omprends pas c'est que ce code qui est donc au début de mon fichier n'est pas exécuté... :
    je le met au début car je veux éviter un "already snet" au niveau de ma redirection.


    merci d'avance.

  2. #2
    Membre émérite Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Par défaut
    En fait c'est la variable $connectOk que tu veux envoyer par le formulaire? si c'est bien çà, utilise une autre méthode soit avec un champ caché soit avec une variable de session.

  3. #3
    Membre éprouvé
    Inscrit en
    Mars 2004
    Messages
    1 931
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 931
    Par défaut
    non non pas du tout.
    je veux juste que header location marche alors je l'ai en début de page.
    Mon seul souci est de ne pas faire planter mon header location.

  4. #4
    Membre Expert
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Par défaut
    c'est une blague ?

    déjà le block suivant ne sert strictement à rien :
    if(empty($connectOK))
    {
    $connectOK = "";
    }
    ce qui revient à dire : si $connectOK est vide alors il devient vide ce qui ne veut rien dire...

    ensuite, comment veux-tu que la variable $connectOK contienne quelque chose à ce stade vu que tu ne la renseignes qu'après le test ?
    il est donc tout à fait normal que la redirection ne s'effectue pas...

    la solution serait d'utiliser les variables de session, comme te l'a justement dit Yobs

    ce qui ferait :
    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
     
    <?php
    // attention, la fonction session_start() doit être 
    // présente dans toutes les pages de ton site sinon 
    // tu perds la session enregistrée...
    session_start();
     
    $_SESSION['connectOK']=(!isset($_SESSION['connectOK']))?(false):($_SESSION['connectOK']);
    if( $_SESSION['connectOK']==true ) {
       header("Location: ok_client.php");
       exit();
    }
     
    if (!$verifexist) $_SESSION['connectOK']=true;
    ....
    ....


  5. #5
    Membre éprouvé
    Inscrit en
    Mars 2004
    Messages
    1 931
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 931
    Par défaut
    oui, je comprends ton étonnement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    <?php 
             if (empty($connectOK)) 
             { 
                $connectOK = "";
    je fais cela, car si je ne le fais pas, j'zai une erreur du type varibale connectOK undefine...

    donc je fais cela et l'erreur n'existe plus.
    Donc au premier passage, ma variable est effectivement vide.
    Mais lorsque j'envoie mon formualire, j'aimerais que ce code s'exécute à nouveau et qu'il prenne en compte mon header location.
    Le souci, c'est mon envoie de formulaire est après ce code.
    Donc si je comprend bien, ce code ne s'exécute pas une seconde fois après l'envoie de mon formulaire car il est placé après ce dernier...
    j'espère que vus me suivez

    et si je mets ce code après le formulaire, j'ai une erreur avec un "already
    machin....

    existe-til une solution.

  6. #6
    Membre expérimenté
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Par défaut
    alors pour tester l'existence d'une variable, utilises plutot isset ...
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  7. #7
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Salut

    Plutôt que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
             if (empty($connectOK))
             {
                $connectOK = "";
             }
             if ($connectOK)
             {header("Location: ok_client.htm");}
    Pourquoi ne pas faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
             if (!empty($connectOK))
             {
                header('Location: ok_client.htm');
             }

Discussions similaires

  1. code non managé avec interface managée ...
    Par izbad dans le forum MFC
    Réponses: 6
    Dernier message: 19/12/2005, 16h36
  2. Probléme de code non portable
    Par Stany dans le forum Windows
    Réponses: 2
    Dernier message: 23/08/2005, 11h02
  3. code non éxécutable
    Par abidi_niz dans le forum Langage SQL
    Réponses: 1
    Dernier message: 18/07/2005, 10h03

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