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 :

Plusieurs exécutions à la fois ?


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 6
    Par défaut Plusieurs exécutions à la fois ?
    Bonjour à tous,

    Je suis confronté à un problème qui ne m'avait jamais choqué jusqu'à maintenant mais qui est terriblement gênant pour ce que j'ai besoin de faire.

    La structure de mon site est simple, une page index ou dessus je dis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    $ok = array('accueil' => 'accueil.php',
    		'contact' => 'contact.php',
    		'recherche' => 'recherche.php');
     
      if ( (isset($_GET['page'])) && (isset($ok[$_GET['page']])) ) {
        include($ok[$_GET['page']]);
      } else {
        include('accueil.php');
      }
     
    ?>
    Donc vous comprenez que j'inclue la page qui correspond à ce qui passe par l'url, et si il n'y a rien, l'accueil.

    Hors si je place un script sur la page accueil.php et que je vais directement sur monsite.com?page=contact : Le script sur la page d'accueil sera exécute, et deux fois en plus !

    Pour m'en assurer j'ai mis une ligne qui m'envoi un mail de test lors de son exécution sur la page "accueil.php" et le verdict est sans appel : Peu importe la page appelée, le mail arrive dans ma boite !


    Savez-vous ce que j'ai raté dans l'histoire ?

    Merci par avance

  2. #2
    Membre Expert
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 149
    Par défaut
    T'as dû rater le visiteur qui a visité l'autre page au même moment que toi.
    Une condition if ne pose aucun problème, c'est du solide.
    C'est soit l'un soit l'autre mais les deux ne s'exécutent pas.

    Tu veux t'en convaincre ? Remplaces ta ligne d'envoi d'email par un echo bien flashi.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 6
    Par défaut
    Citation Envoyé par transgohan Voir le message
    T'as dû rater le visiteur qui a visité l'autre page au même moment que toi.
    Une condition if ne pose aucun problème, c'est du solide.
    C'est soit l'un soit l'autre mais les deux ne s'exécutent pas.

    Tu veux t'en convaincre ? Remplaces ta ligne d'envoi d'email par un echo bien flashi.
    Le site est protégé par un htaccess/htpasswd donc impossible :/ Le truc c'est que si j'execute n'importe quelle page du serveur, même hors de cet "if", le problème survient et le mail me parvient.

    A ne rien y comprendre :/

  4. #4
    Membre Expert
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 149
    Par défaut
    Dans ce cas c'est que ton bout de code d'envoi de mail est mal placé ou bien que la page accueil.php est inclue ailleurs une seconde fois.
    Car ce n'est pas le script que tu nous montres qui occasionne ce problème ça c'est certain.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 6
    Par défaut
    Citation Envoyé par transgohan Voir le message
    Dans ce cas c'est que ton bout de code d'envoi de mail est mal placé ou bien que la page accueil.php est inclue ailleurs une seconde fois.
    Car ce n'est pas le script que tu nous montres qui occasionne ce problème ça c'est certain.
    Alors je ne sais pas trop quoi montré alors vu que je n'ai aucune piste^^
    Le script accueil est inclus nul part ailleurs et le fait qu'il s'envoi deux fois me semble louche ?
    Si je vais sur site.com?page=accueil pour moi le script présent sur cette fameuse page d'accueil ne devrait être exécuté qu'une seule fois :/

    C'est un mutualisé chez Hiwit, j'utilise l'url rewriting, pas de rapport j'imagine ?

  6. #6
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    Cela parait assez tordu c'est vrai.
    Le truc c'est que si j'execute n'importe quelle page du serveur, même hors de cet "if", le problème survient et le mail me parvient.
    Attention, si le code se trouve en-dehors du "if", c'est qu'il est dans ce fichier index.php, et comme tout passe passe par celui-ci, c'est totalement normal.
    Le index.php est un point d'entrée.
    Il faut que le code soit dans le fichier accueil.php et pas ailleurs (code d’envoi de mail).

    J'ai déjà eu un truc peut être pas totalement identique, faut voir, mais pas loin.
    C'était dû à des URLs mal faites, et cela provoquait des doubles appels au index.php

    As tu de la Réécriture d'URL ou quelque chose de particulier dans le .htaccess (à part l'authentification) ?

    Essai avec du code le plus basique possible, c'est à dire en supprimant (au minimum) tous les Css, JS, et autre, aussi bien dans le <head> (link, script, etc ...) que dans index.php que accueil.php, et les autres s'il y en a (footer, etc ...).
    En somme, ne conserver que le HTML minimum et des affichages juste pour voir.


    Aussi, théoriquement tu devrais avoir ton site chez toi en local afin de le développer avant de le mettre en ligne.
    Si c'est le cas, as tu le même problème ?
    Si c'est le cas toujours (en local), au lieu d'envoyer un mail, tu pourrait créer un fichier de test et faire une écriture dedans pour connaitre le nombre d'appel qu'il a, avec file_put_contents() par exemple.

    As tu Firebug d'installé (dans FF) où un outil dans le même genre ?
    Si c'est le cas, cela peu fournir une piste en regardant le nombre de requêtes HTTP effectuées lors de l'affichage d'une page.

  7. #7
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Par défaut
    il faut utiliser array_key_exists en lieu et place de isset($ok[$_GET['page']]), de plus il serait judicieux de vérifier que le fichier existe, et d'inclure toutes ses fonctionnalités dans un système de routage MVC


    cela dit si tu utilise dans ton htaccess

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule !\.(js|ico|gif|jpg|png|pdf|css|mp3|swf|htm|html)$ index.php  [QSA,L]
    ce qui est très bien, c'est normal que toutes les pages execute index.php

Discussions similaires

  1. makefile ... comment faire plusieurs exécutables !
    Par fregate dans le forum Systèmes de compilation
    Réponses: 9
    Dernier message: 18/12/2005, 16h14
  2. Script qui s'exécute 2 fois!
    Par franculo_caoulene dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 07/12/2005, 09h48
  3. Réponses: 9
    Dernier message: 29/09/2005, 09h38
  4. creation de plusieur table à la fois .
    Par donny dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 19/05/2005, 11h31
  5. [Composant] Drag & Drop de plusieurs valeurs à la fois
    Par slowpoke dans le forum Composants VCL
    Réponses: 3
    Dernier message: 23/12/2003, 10h26

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