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 :

include_once qui ne s'exécute pas


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2014
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2014
    Messages : 253
    Points : 164
    Points
    164
    Par défaut include_once qui ne s'exécute pas
    Bonjour,

    Voici le problème rencontré :
    j'ai un fichier principal.php
    un fichier includes.php
    et un fichier secondaire.php

    includes.php est inclu dans principal.php et secondaire.php

    une fonction spécifique à principal.php contient le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include_once("secondaire.php");
    Et mon script principal.php arrête de s'exécuter à partir de cette ligne.

    Là où je ne trouve pas d'explication c'est que la page secondaire.php s'exécute parfaitement lorsqu'elle n'est pas incluse dans principal.php

    Quelqu'un aurait il une idée ?


    EDIT : L'inclusion se fait via le chemin absolu du fichier depuis la racine du disque dur.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    L'inclusion que tu nous montres ce n'est pas la racine du disque, c'est l'emplacement du script.

    Tu as une erreur quand le script s'arrête ?
    Tu pourrais dans tous les cas utiliser require_once()
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2014
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2014
    Messages : 253
    Points : 164
    Points
    164
    Par défaut
    j'ai volontairement simplifié les écritures de mon code car j'ai fait de nombreuses vérifications et le chemin absolu n'est pas à l'origine de l'erreur donc inutile de surcharger les codes pour expliquer le pb.

    j'ai d'ailleurs essayé la même configuration avec des fichiers supers simplifiés ne contenant que les inclusions et ça marche alors que dans mon programme ça bloque...
    Il doit y avoir une condition d'inclusion que je ne connais pas...

    j'ai essayé require_once() mais rien ne s'affiche non plus .

    Je suis sous php 5.3.28

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu n'as pas répondu pour les erreurs.

    Si tu fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo 'A';
    include_once("secondaire.php");
    echo 'C';
    avec un echo egalement au debut du fichier secondaire.php tu obtiens quoi ?

    j'ai volontairement simplifié les écritures de mon code car j'ai fait de nombreuses vérifications et le chemin absolu n'est pas à l'origine de l'erreur donc inutile de surcharger les codes pour expliquer le pb.
    Je suppose que cette phrase est 3 fois plus longue que ta ligne d'include complète
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2014
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2014
    Messages : 253
    Points : 164
    Points
    164
    Par défaut
    J'ai fait exactement ce que tu dis et il s'affiche :
    A et c'est tout.

    Tout echo en tête du fichier secondaire.php ne s'affiche pas.

    Et si tu me relis tu verras que j'ai répondu en disant que rien ne s'affiche !

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Rien ne s'affiche ça ne signifie pas qu'il n'y a pas d'erreurs. Tu as peut etre un log qui pourrait nous en dire plus.

    Si j'ai bien tout suivi quand tu mets seulement un echo dans ton fichier inclus, tu l'as bien ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre éprouvé Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Points : 1 103
    Points
    1 103
    Par défaut
    comme la dit sabotage si tu mets un echo en debut (et fin) de secondaire.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    echo "A2";
    ...//code de secondaire.php
    echo "B2";
    ?>
    tu obtient quel affichage ? n'a-tu pas un exit; ou un die; dans le code de secondaire.php
    ce message vous a aidé ! Un petit click sur fait toujours plaisir

    "Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent." Bev Littlewood & Lorenzo Strigini

    "Le logiciel, c’est comme le sexe, c’est meilleur quand c’est libre/gratuit." Linus Torvalds

  8. #8
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2014
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2014
    Messages : 253
    Points : 164
    Points
    164
    Par défaut
    non.

    en fait pour débuguer j'ai simplement créé un petit fichier comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
     
    include_once("includes.php");
    test();
     
    function test() {
    	include_once("secondaire.php");
    	echo "hgidflhgsldfglhjlk";
    }
    echo "gfudilsglsdbgsjklbgf";
     
    ?>
    Ce code ne pose aucun problème et affiche : "<texte affiché depuis le fichier secondaire.php>hgidflhgsldfglhjlkgfudilsglsdbgsjklbgf"

    En revanche dans mon programme complet qui contient plusieurs fonctions, variables... la même inclusion ne marche pas du tout et n'affiche rien.

    Je précise que secondaire.php inclut aussi le fichier includes.php :
    include_once("includes.php");

  9. #9
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2014
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2014
    Messages : 253
    Points : 164
    Points
    164
    Par défaut
    Citation Envoyé par patrickbaras Voir le message
    comme la dit sabotage si tu mets un echo en debut (et fin) de secondaire.php
    <?php
    echo "A2";
    ...//code de secondaire.php
    echo "B2";
    ?>

    tu obtient quel affichage ? n'a-tu pas un exit; ou un die; dans le code de secondaire.php
    si j'ai des fonctions "exit(mysqli_error($GLOBALS['base']))" en cas d'erreur de connexions mysql.

  10. #10
    Membre éprouvé Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Points : 1 103
    Points
    1 103
    Par défaut
    faut voir dans le log, tu sais déjà que le soucis vient surement de programme complet
    ce message vous a aidé ! Un petit click sur fait toujours plaisir

    "Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent." Bev Littlewood & Lorenzo Strigini

    "Le logiciel, c’est comme le sexe, c’est meilleur quand c’est libre/gratuit." Linus Torvalds

  11. #11
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2014
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2014
    Messages : 253
    Points : 164
    Points
    164
    Par défaut
    oui c'est là dedans que je cherche...

    j'ai pensé à ne pas surcharger les fonctions entre les différents fichiers, et à priori j'ai vérifié qu'il n'y pas de variable global définie 2 fois.

    où se trouve le log je ne le trouve pas dans le dossier d'installation.

  12. #12
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2014
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2014
    Messages : 253
    Points : 164
    Points
    164
    Par défaut
    j'ajoute que j'ai essayé aussi de faire l'inclusion en tête du fichier principal.php mais cela ne marche pas non plus puisque le fichier principal n'affiche plus rien du tout !

    en fait le problème vient peut être du principal.php (code en conflit avec l'inclusion) ou bien d'un paramètre d'inclusion_once qui génère une erreur...

    merci pour vos idées.

  13. #13
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2014
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2014
    Messages : 253
    Points : 164
    Points
    164
    Par défaut
    en relisant attentivement il me restait une fonction qui portait le même nom dans 2 fichiers : principal et secondaire.
    En supprimant l'une des 2 fonctions j'ai pu débloquer le programme...
    donc ça marche.

    En conclusion pour les inclusions de fichiers bien vérifier qu'il n'y a pas de surcharges de fonctions entre le script principal et les scripts secondaires...

    Merci pour votre aide.

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

Discussions similaires

  1. ms sql server 2000 : ".exe" qui ne s'exécute pas
    Par nyko_kliko dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 08/08/2006, 16h15
  2. Fichier exécutable qui ne s'exécute pas ?!
    Par bnadem35 dans le forum Linux
    Réponses: 4
    Dernier message: 12/07/2006, 11h35
  3. Réponses: 8
    Dernier message: 08/05/2006, 20h40
  4. probleme de requete mysql qui ne s'exécute pas
    Par anto48_4 dans le forum Requêtes
    Réponses: 6
    Dernier message: 23/03/2006, 10h51
  5. [MySQL] requete sql qui ne s'exécute pas
    Par anto48_4 dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 16/03/2006, 09h12

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