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 qui fait planter un script


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    441
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 441
    Points : 143
    Points
    143
    Par défaut include qui fait planter un script
    Bonjour,

    dans l'arborescence de mon site web, je crée un fichier config.php où je déclare un certain nombre de variables.
    J'ai ailleurs un script sql qui utilise certaines valeurs constantes, et donc je voudrais déclarer ces constantes dans config.php, et déclarer config.php dans mon script.

    Si les constantes sont écrites en dur dans mon script, tout marche bien, mais si je met :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include ($_SERVER['DOCUMENT_ROOT'].'/config/config.php');
    au début de mon script, ça ne marche plus, j'ai une page blanche.

    une solution ?

    Merci,

    Nico

  2. #2
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 838
    Points
    2 838
    Par défaut
    avant ton include(), écris ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ini_set('display_errors', 1);
    error_reporting(E_ALL ^ E_NOTICE);
    C'est probablement le chemin vers ton fichier qui n'est pas correct.... avec error_reporting() comme ceci, tu devrais normalement voir l'erreur retournée...

    Tiens nous au courant

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    441
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 441
    Points : 143
    Points
    143
    Par défaut
    ça ne change rien, j'ai toujours une page blanche, et aucun message d'erreur.
    en plus, pour l'instant, j'utilise toujours les constantes en dur dans le script, c'est juste le fait de mettre le include qui fait planter.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?php 
    ini_set('display_errors', 1);
    error_reporting(E_ALL ^ E_NOTICE);
    include ($_SERVER['DOCUMENT_ROOT'].'/config/config.php');
    include ('database.php');
     
    	$parametre = $_GET['parametre'];
    ...........
    en plus, j'ai un autre include après (include ('database.php'), qui lui ne fait pas planter !!

    Nico

  4. #4
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 838
    Points
    2 838
    Par défaut
    hmmm vérifions donc ^^

    à la place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include ($_SERVER['DOCUMENT_ROOT'].'/config/config.php');
    essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (file_exists($_SERVER['DOCUMENT_ROOT'].'/config/config.php')) { 
         echo "OK"; 
    } else {
         echo "KO";
    }
    Si tu vois bien "OK" c'est que l'erreur est dans le fichier que tu include() à ce moment-là, donnes-nous le code qui est dans config.php

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    441
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 441
    Points : 143
    Points
    143
    Par défaut
    c'est KO

    Nico

  6. #6
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 838
    Points
    2 838
    Par défaut
    Citation Envoyé par DiverSIG Voir le message
    c'est KO

    Nico
    Okay ! Le problème vient bien du chemin de l'include... fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $_SERVER['DOCUMENT_ROOT'].'/config/config.php';
    Afin de vérifier le chemin que tu donnes et compares avec le chemin que tu as sur ton serveur pour accéder au fichier

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    441
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 441
    Points : 143
    Points
    143
    Par défaut
    une bonne nouvelle :
    il manquait effectivement un niveau dans le chemin du fichier

    un mauvaise nouvelle :
    j'ai toujours une page blanche quand je met le include.
    voici mon fichier config.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?php
    // paramètres généraux du site
    define ('IMG_DIR'  , $_SERVER['DOCUMENT_ROOT'].'/img/');
     
    // paramètres de connexion à la base
    define ('DB_SERVER'  , 'localhost');
    define ('DB_USER'    , 'root'     );
    define ('DB_PASSWORD', ''         );
    define ('DB_BASE'    , 'mybase'   );
    ?>

    Nico

  8. #8
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 838
    Points
    2 838
    Par défaut
    hmm le file_exists() te dit OK maintenant ?

    Pcq dans ton include() il n'y a pas d'erreur...

    Ne pourrais-tu pas activer l'affichage des erreurs ? Débugger avec les display_error Off c'est insane...
    Si tu ne peux pas, je te conseille lors de bugs du genre de tester en local avec Wamp par exemple...

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    441
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 441
    Points : 143
    Points
    143
    Par défaut
    je travaille actuellement en local avec wampserver !

    d'ailleurs à ce propos (c'est pour cela qu'il manquait un niveau dans l'arborescence de mon fichier config), j'ai wampserver installé sur mon pc, dans c:\wamp\www\, j'ai crée un répertoire mysite, et dans ce répertoire, j'ai toute l'arborescence de mon site.
    et $_SERVER['DOCUMENT_ROOT'] me renvoie c:\wamp\www\, est-ce qu'il n'y aurait pas une variable globale qui renvoie directement c:\wamp\www\mysite ?

    > Débugger avec les display_error Off c'est insane...
    peux-tu détailler? je suis pas très au fait de ces choses là, je fais du php que depuis une semaine ...

    Nico

  10. #10
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 838
    Points
    2 838
    Par défaut
    Citation Envoyé par DiverSIG Voir le message
    je travaille actuellement en local avec wampserver !

    d'ailleurs à ce propos (c'est pour cela qu'il manquait un niveau dans l'arborescence de mon fichier config), j'ai wampserver installé sur mon pc, dans c:\wamp\www\, j'ai crée un répertoire mysite, et dans ce répertoire, j'ai toute l'arborescence de mon site.
    et $_SERVER['DOCUMENT_ROOT'] me renvoie c:\wamp\www\, est-ce qu'il n'y aurait pas une variable globale qui renvoie directement c:\wamp\www\mysite ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    // dirname(__FILE__) => retourne le dossier du fichier en cours (pour ne pas avoir de problème lors d'include() dans un include()
    // exemple :
    include(dirname(__FILE__).'/../parent.php'); // include la page dans le dossier parent
    include(dirname(__FILE__).'fichier.php'); // include la page dans le dossier courant
    include(dirname(__FILE__).'/enfantFolder/enfant.php'); // include la page dans le dossier enfant
    Citation Envoyé par DiverSIG Voir le message
    > Débugger avec les display_error Off c'est insane...
    peux-tu détailler? je suis pas très au fait de ces choses là, je fais du php que depuis une semaine ...
    Il s'agit d'une option de php.ini
    display_errors On

    et petit conseil toujours dans le même fichier :
    error_reporting = E_ALL & ~E_NOTICE


    NB : par contre c'est bizarre, par défaut à l'installation de WAMP la configuration est :
    display_errors On
    error_reporting = E_ALL

    donc tu devrais voir les erreurs :s

Discussions similaires

  1. Réponses: 6
    Dernier message: 29/07/2010, 10h49
  2. [AJAX] Script qui fait planter IE6
    Par bassimgouzi dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 15/08/2008, 19h19
  3. 56k qui fait planter le PC
    Par Spack dans le forum Périphériques
    Réponses: 4
    Dernier message: 03/10/2005, 19h35
  4. probleme de requette qui fait planter powergres
    Par fehmitn dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 15/09/2004, 18h48
  5. Réponses: 12
    Dernier message: 16/03/2004, 14h21

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