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 :

autoload veut pas marcher


Sujet :

Langage PHP

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 381
    Points : 5 732
    Points
    5 732
    Billets dans le blog
    1
    Par défaut autoload veut pas marcher
    Bonjour,

    je crée une nouvelle discussion pour avoir un titre juste...

    Je me suis inspiré du code que me conseillait rawsrc dans https://www.developpez.net/forums/d1...-post-sharp11/ mais ça veut pas :
    Fatal error: Class 'bdd\PDOCalendar' not found in C:\wamp64\www\vhstest031217\index.php on line 8
    voici mon code :
    index.php (à la racine)) :
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    <?php
    include "autoloader/autoloader.php";
    $rep=$_GET['rep'];
    $page=$_GET['page'];
     
    use bdd\PDOCalendar;
     
    $bdd = PDOCalendar::getPDO();
    ?>
    <!DOCTYPE html>
    <html lang="fr">
    <head>
    <title>index</title>
    <link href="css/style-menu2.css" rel="stylesheet"/>
    <meta charset="UTF-8"/>
    <!--[if lt IE 9]>
    <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
    </head>
    <body>
    <?php 	require_once((__DIR__).'/_includes/html0-topPHP.php'); // INIT + FONCTIONS et autres config en PHP ?>
    <header>
    <?php include("entete.php"); ?>
    </header>
    <nav>
    <?php include("menu3.php"); ?>
    </nav>
    <SCRIPT LANGUAGE="JavaScript">
    <?php $adresse=$rep."/".$page.".php";?>
    document.location.href="<?php echo $adresse;?>";
    </SCRIPT>
     
     
    </body>
    </html>

    autoloader.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
    18
    19
    20
    21
    22
    23
    <?php
     
    define('DIR_ROOT', __DIR__.DIRECTORY_SEPARATOR);
     
    $autoloader = function($full_class_name) {
        // on prépare le terrain : on remplace le séparteur d'espace de nom par le séparateur de répertoires du système
        $name = str_replace('\\', DIRECTORY_SEPARATOR, $full_class_name);
        // on construit le chemin complet du fichier à inclure :
        // il faut que l'autoloader soit toujours à la racine du site
        $path = DIR_ROOT.$name.'.php';
     
        // on vérfie que le fichier existe et on l'inclut
        // sinon on passe la main à une autre autoloader (return false)
        if (is_file($path)) {
            include $path;
            return true;
        } else {
            return false;
        }
    };
     
    spl_autoload_register($autoloader);
    ?>

    menu3.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
     <div class="page">
    <ul class="menu">
     
    <li ><a href="../index.php?rep=accueil&page=accueil">Accueil</a></li>
     
     
    <li><a href="#">Photos</a>
    	<ul>
     
    		<li><a href="#" class="plus">Evénements</a>
    				<ul class="col_2 col3_decal">
    					<li><a href="../index.php?rep=CPF_2015&page=CPF_2015">Championnats de France ski nordique handisport 2015</a></li>
    					<li><a  ="../index.php?rep=bessans2017&page=bessans17">Marathon de Bessans 2017</a></li>
    				</ul>
    		</li>
    etc
    Quel est le souci ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  2. #2
    Membre éclairé
    Femme Profil pro
    Autre
    Inscrit en
    Janvier 2017
    Messages
    335
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Janvier 2017
    Messages : 335
    Points : 715
    Points
    715
    Par défaut
    Bonjour,
    On a :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    include "autoloader/autoloader.php";
    Par conséquent, dans "autoloader.php" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    define('DIR_ROOT', __DIR__.DIRECTORY_SEPARATOR);
    ...
    $path = DIR_ROOT.$name.'.php';
    $path contiendra le dossier "autoloader".
    Or, je suppose que le dossier "bdd" n'est pas dans "autoloader".

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 381
    Points : 5 732
    Points
    5 732
    Billets dans le blog
    1
    Par défaut
    excellent. J'ai corrigé dans autoloader.php define('DIR_ROOT', dirname(__DIR__).DIRECTORY_SEPARATOR); et y a plus d'erreur
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  4. #4
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut laurentSc

    Si tu suivais précisément les instructions données, tu éviterais bien des écueils...
    Regarde ce qui est écrit dans l'autoloader :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    // on construit le chemin complet du fichier à inclure :
    // il faut que l'autoloader soit toujours à la racine du site
    $path = DIR_ROOT.$name.'.php';
    Si tu ranges le fichier autloader.php dans le répertoire autoloader, tu n'es plus à la racine du site...

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 381
    Points : 5 732
    Points
    5 732
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    je reviens sur ce sujet après une "petite" pause En fait, non pas dodo car j'ai fait avancé autre chose. Néanmoins, j'ai encore un problème car si je mets l'autoloader tel qu'il m'a été donné (et cette fois, à la racine du site !), dès que j'appelle la page principale (qui est tout le temps appelée vu qu'elle joue le rôle de controller), page blanche, au lieu d'aller sur la page demandée.

    Le code actuel :
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    <?php
    include "autoloader.php";
    $rep=$_GET['rep'];
    $page=$_GET['page'];
     
     use bdd\PDOCalendar;
    $bdd = PDOCalendar::getPDO();//var_dump($bdd);exit();*/
    ?>
    <!DOCTYPE html>
    <html lang="fr">
    <head>
    <title>index</title>
    <link href="css/style-menu2.css" rel="stylesheet"/>
    <meta charset="UTF-8"/>
    <!--[if lt IE 9]>
    <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
    </head>
    <body>
    <?php 	require_once((__DIR__).'/_includes/html0-topPHP.php'); // INIT + FONCTIONS et autres config en PHP ?>
    <header>
    <?php include("entete.php"); ?>
    </header>
    <nav>
    <?php include("menu3.php"); ?>
    </nav>
    <SCRIPT LANGUAGE="JavaScript">
    <?php 
    if (empty($rep)&&empty($page)) $rep=$page="accueil";
    $adresse=$rep."/".$page.".php";//$adresse="http://localhost/vhstest031217/".$rep."/".$page.".php";?>
    document.location.href="<?php echo $adresse;?>";
    </SCRIPT>
    </body>
    </html>

    autoloader.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
    18
    19
    20
    21
    22
    23
    <?php
     
    define('DIR_ROOT', __DIR__.DIRECTORY_SEPARATOR);
     
    $autoloader = function($full_class_name) {
        // on prépare le terrain : on remplace le séparteur d'espace de nom par le séparateur de répertoires du système
        $name = str_replace('\\', DIRECTORY_SEPARATOR, $full_class_name);
        // on construit le chemin complet du fichier à inclure :a
        // il faut que l'autoloader soit toujours à la racine du site
        $path = DIR_ROOT.$name.'.php';
     
        // on vérfie que le fichier existe et on l'inclut
        // sinon on passe la main à une autre autoloader (return false)
        if (is_file($path)) {
            include $path;
            return true;
        } else {
            return false;
        }
    };
     
    spl_autoload_register($autoloader);
    ?>

    La page blanche, c'est si je décommente les lignes 6 et 7 de la page principale. Est-ce que j'ai donné toutes les informations nécessaires pour qu'on puisse m'aider ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  6. #6
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    essaie avec ce code :
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    <?php
     
    include "autoloader.php";
     
    use bdd\PDOCalendar;
     
    $bdd  = PDOCalendar::getPDO();
    $rep  = $_GET['rep']  ?? false;
    $page = $_GET['page'] ?? false;
     
    $body = DIR_ROOT.'accueil.php'; // par défaut on sert la page d'accueil
     
    if (($rep !== false) && ($page !== false)) {
        // si autre page demandée, on vérifie que le fichier qui en est en charge existe bien et on le charge
        if (substr($page, -4) !== '.php') {
            $page .= '.php';
        }
        $path = DIR_ROOT.$rep.DIRECTORY_SEPARATOR.$page;
        if (is_file($path)) {
            $body = $path;
        }
    }
    ?>
    <!DOCTYPE html>
    <html lang="fr">
    <head>
    <title>index</title>
    <link href="css/style-menu2.css" rel="stylesheet"/>
    <meta charset="UTF-8"/>
    <!--[if lt IE 9]>
    <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
    </head>
    <body>
    <?php require_once DIR_ROOT.'_includes'.DIRECTORY_SEPARATOR.'html0-topPHP.php'; // INIT + FONCTIONS et autres config en PHP ?>
    <header>
    <?php include 'entete.php'; ?>
    </header>
    <nav>
    <?php include 'menu3.php'; ?>
    </nav>
    <?php include $body; ?>
    </body>
    </html>
    N'oublie pas qu'avec ce système toutes les url doivent être de la forme
    index.php?rep=répertoire&page=une_page_du_site

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 381
    Points : 5 732
    Points
    5 732
    Billets dans le blog
    1
    Par défaut
    J'ai essayé ton code. Pas souci pour avoir bien pris en compte la nouvelle des URLs. Par contre, là, tout le temps page blanche, même si je commente certaines parties
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour Laurent,

    c'est sûr qu'une page blanche, ça nous aide beaucoup !
    Dernière modification par Invité ; 10/04/2018 à 08h04.

  9. #9
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    que te remontent les logs ?

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 381
    Points : 5 732
    Points
    5 732
    Billets dans le blog
    1
    Par défaut
    plus sérieusement, les logs, on les trouve où ? (Je sais les trouver dans Wamp, mais sur un serveur distant ?)
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  11. #11
    Invité
    Invité(e)
    Par défaut
    ...les logs, on les trouve où ?
    Voilà comment générer ton propre fichier log (à toi de savoir où tu le mets !) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    ini_set('display_errors', 1);	// Afficher les erreurs à l'écran
    ini_set('log_errors', 1); // Enregistrer les erreurs dans un fichier de log
    ini_set('error_log', __DIR__.'/log_error_php.txt'); // Nom du fichier qui enregistre les logs (attention aux droits à l'écriture)
    error_reporting(E_ALL); // Afficher les erreurs et les avertissements
    Dernière modification par Invité ; 10/04/2018 à 17h00.

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 381
    Points : 5 732
    Points
    5 732
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    j'ai inséré ton code dans index.php, mais bien que j'ai commenté tout ce qui concerne l'autoloader, on obtient une page blanche si on clique sur une des pages du menu et le fichier de log reste vide.

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    <?php
    ini_set('display_errors', 1);	// Afficher les erreurs à l'écran
    ini_set('log_errors', 1); // Enregistrer les erreurs dans un fichier de log
    ini_set('error_log', 'log_error_php.txt'); // Nom du fichier qui enregistre les logs (attention aux droits à l'écriture)
    error_reporting(E_ALL); // Afficher les erreurs et les avertissements
     
     //lignes de l'autoloader commentées
     
    $body = DIR_ROOT.'accueil'.DIRECTORY_SEPARATOR.'accueil.php';// par défaut on sert la page d'accueil
    if (($rep !== false) && ($page !== false)) {
        // si autre page demandée, on vérifie que le fichier qui en est en charge existe bien et on le charge
        if (substr($page, -4) !== '.php') {
            $page .= '.php';
        }
        $path = DIR_ROOT.$rep.DIRECTORY_SEPARATOR.$page;
        if (is_file($path)) {
            $body = $path;
        } 
    }
    ?>
    <!DOCTYPE html>
    <html lang="fr">
    <head>
    <title>index</title>
    <link href="css/style-menu2.css" rel="stylesheet"/>
    <meta charset="UTF-8"/>
    <!--[if lt IE 9]>
    <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
    </head>
    <body>
    <?php require_once DIR_ROOT.'_includes'.DIRECTORY_SEPARATOR.'html0-topPHP.php'; // INIT + FONCTIONS et autres config en PHP ?>
    <header>
    <?php include 'entete.php'; ?>
    </header>
    <nav>
    <?php include 'menu3.php'; ?>
    </nav>
    <?php include $body; ?>
    </body>
    </html>

    Pous simplifier, ce fichier de log est à la racine du site et le droit en écriture est bon.

    Les lignes de l'autoloader commentées :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    /*include "autoloader.php";
     
    use bdd\PDOCalendar;
     
    $bdd  = PDOCalendar::getPDO();
    $rep  = $_GET['rep']  ?? false;
    $page = $_GET['page'] ?? false;*/
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  13. #13
    Invité
    Invité(e)
    Par défaut
    Et que contient le fichier log_error_php.txt ?

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 381
    Points : 5 732
    Points
    5 732
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par laurentSc Voir le message
    et le fichier de log reste vide.
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  15. #15
    Invité
    Invité(e)
    Par défaut
    Pars d'une page SIMPLE !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo "Hello !"; ?>
    Et ajoute les bouts de scripts AU FUR et A MESURE... jusqu'à la page blanche.

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 381
    Points : 5 732
    Points
    5 732
    Billets dans le blog
    1
    Par défaut
    J'ai trouvé la cause de la page blanche : c'est les ?? false des lignes 6 et 7 du code du post . Si je remplace les lignes 6 et 7 par un simple
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $rep  = $_GET['rep'];
    $page = $_GET['page'];
    j'obtiens un message d'erreur qui vient de l'autoloader :
    Fatal error: Class 'bdd\PDOCalendar' not found in /var/www/vhosts/vercorshandisport.org/httpdocs/html5test/index.php on line 11
    Rappel du code :
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    <?php
    ini_set('display_errors', 1);	// Afficher les erreurs à l'écran
    ini_set('log_errors', 1); // Enregistrer les erreurs dans un fichier de log
    ini_set('error_log', 'log_error_php.txt'); // Nom du fichier qui enregistre les logs (attention aux droits à l'écriture)
    error_reporting(E_ALL); // Afficher les erreurs et les avertissements
     
    include "autoloader.php";
     
    use bdd\PDOCalendar;
     
    $bdd  = PDOCalendar::getPDO();
    $rep  = $_GET['rep'];
    $page = $_GET['page'];
     
     
    $body = DIR_ROOT.'accueil'.DIRECTORY_SEPARATOR.'accueil.php';// par défaut on sert la page d'accueil
    if (($rep !== false) && ($page !== false)) {
        // si autre page demandée, on vérifie que le fichier qui en est en charge existe bien et on le charge
        if (substr($page, -4) !== '.php') {
            $page .= '.php';
        }
        $path = DIR_ROOT.$rep.DIRECTORY_SEPARATOR.$page;
        if (is_file($path)) {
            $body = $path;
        } 
    }
    ?>
    <!DOCTYPE html>
    <html lang="fr">
    <head>
    <title>index</title>
    <link href="css/style-menu2.css" rel="stylesheet"/>
    <meta charset="UTF-8"/>
    <!--[if lt IE 9]>
    <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
    </head>
    <body>
    <?php require_once DIR_ROOT.'_includes'.DIRECTORY_SEPARATOR.'html0-topPHP.php'; // INIT + FONCTIONS et autres config en PHP ?>
    <header>
    <?php include 'entete.php'; ?>
    </header>
    <nav>
    <?php include 'menu3.php'; ?>
    </nav>
    <?php include $body; ?>
    </body>
    </html>
    sachant que autoloader.php est donné dans le post #5.
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  17. #17
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    est-ce t'as vérifié si un fichier nommé PDOCalendar était bien présent dans le répertoire html5Ttest/bdd ?
    Pour ce qui est des ?? c'est une notation PHP 7+ si ta version de php en production est antérieur, cela ne peut pas fonctionner

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 381
    Points : 5 732
    Points
    5 732
    Billets dans le blog
    1
    Par défaut
    Oups, j'avais complètement zappé cette partie. J'ai 2 soucis :

    1- la classe se nomme MyPdo et le fichier où elle est définie class_MyPdo.php

    2- elle ne comporte pas de méthode getPDO()

    Pour le point 1, j'ai écrit
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    use bdd\class_MyPdo.php;
     
    $bdd  = MyPdo::getPDO();

    Pour le point 2, je suppose qu'il faut que je crée la méthode getPDO()

    Corrige-moi STP
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  19. #19
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    oui

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

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

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 381
    Points : 5 732
    Points
    5 732
    Billets dans le blog
    1
    Par défaut
    J'essaierai ce soir quand je serai rentré chez moi, mais cela est-il bon ?

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    function getPDO() {
        return $this;
    }
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

Discussions similaires

  1. [OpenOffice][Tableur] bouton qui ne veut pas marcher (macro assignée ne se déclenche pas)
    Par mipps dans le forum OpenOffice & LibreOffice
    Réponses: 1
    Dernier message: 12/01/2009, 12h16
  2. public class ne veut pas marcher!
    Par jerem721 dans le forum Graphisme
    Réponses: 3
    Dernier message: 19/09/2007, 20h45
  3. [MySQL] INSERT INTO qui ne veut pas marcher
    Par Tee shot dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 25/03/2007, 17h42
  4. mon "insert" ne veut pas marcher !!
    Par harlock59 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 02/01/2006, 13h17
  5. Réponses: 14
    Dernier message: 16/05/2005, 13h20

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