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

Contribuez / Téléchargez Sources et Outils PHP Discussion :

Blog : PhpEcho - Moteur PHP de rendu en une seule classe


Sujet :

Contribuez / Téléchargez Sources et Outils PHP

  1. #1
    Modérateur
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    mars 2004
    Messages
    5 498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : mars 2004
    Messages : 5 498
    Points : 14 646
    Points
    14 646
    Billets dans le blog
    9
    Par défaut Blog : PhpEcho - Moteur PHP de rendu en une seule classe
    Bonjour à tous,

    J'ai le plaisir de mettre à disposition de toute la communauté un petit moteur de rendu PHP de ma conception qui tient en une seule classe.
    Bienvenue à PhpEcho.

    Dans la foulée, j'ai écrit un article de blog qui le présente exhaustivement avec tous ses concepts et explications nécessaires à sa compréhension ainsi qu'à son fonctionnement.
    Par ailleurs, je l'ai également publié sur mon espace GitHub.

    Comme toujours, je vous invite à me faire de vos remarques, difficultés et autres idées.
    J'ai essayé d'être limpide dans mes explications, mais, cela n'est pas toujours facile tant il est difficile d'imaginer les passages compliqués.

    Bref, bonne lecture à tous


    rawsrc
    # Dans la Création, tout est permis mais tout n'est pas utile...

  2. #2
    Membre expert

    Homme Profil pro
    Webmaster débutant
    Inscrit en
    octobre 2006
    Messages
    7 038
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2006
    Messages : 7 038
    Points : 3 038
    Points
    3 038
    Billets dans le blog
    1
    Par défaut
    Merci rawsrc. Même si simple à comprendre, sur un téléphone, je galère quand même donc on verra lundi...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

  3. #3
    Membre expert

    Homme Profil pro
    Webmaster débutant
    Inscrit en
    octobre 2006
    Messages
    7 038
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2006
    Messages : 7 038
    Points : 3 038
    Points
    3 038
    Billets dans le blog
    1
    Par défaut
    Je pense plus efficace de parler de mes difficultés ici, plutôt qu'en commentaire dans le blog...

    Après avoir lu 2 fois le billet de blog, pour finir d'apprivoiser le truc, j'ai voulu le tester en vrai.

    Je travaille en local avec Wamp. Pour commencer, j'ai repris exactement le code de la page de connexion du blog. Dans index.php, j'ai changé une constante : define('URL_HOME', 'http://localhost/phpecho');.
    Par contre, sur la page de connexion, le bouton d'action (se connecter) pointait vers http://localhost/index.php?page=loginsubmit>. Pour améliorer ça, j'ai mis dans LoginForm.php action="<?= URL_HOME.$this['url_submit'] ?>. L'action est de ce fait améliorée : http://localhost/phpecho/index.php?page=loginsubmit>. Reste quand même le >. Aucune idée d'où il vient...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

  4. #4
    Modérateur
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    mars 2004
    Messages
    5 498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : mars 2004
    Messages : 5 498
    Points : 14 646
    Points
    14 646
    Billets dans le blog
    9
    Par défaut
    Salut laurentSc

    ok tu traînes un > intempestif, poste voir le code complet de ta page, stp.
    Est-ce que ça fonctionne impec chez toi ?
    Qu'est ce qui t'a paru dur à comprendre ?
    # Dans la Création, tout est permis mais tout n'est pas utile...

  5. #5
    Membre expert

    Homme Profil pro
    Webmaster débutant
    Inscrit en
    octobre 2006
    Messages
    7 038
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2006
    Messages : 7 038
    Points : 3 038
    Points
    3 038
    Billets dans le blog
    1
    Par défaut
    Merci rawsrc pour ta réponse.

    Si ça fonctionne chez moi ? A part le >, ça semble OK.


    Qu'est-ce qui est dur à comprendre ? A priori, rien, car la partie théorique est claire, même si j'ai appris plein de trucs en la lisant. Je suis impressionné par sa mise en pratique car j'en aurais été bien incapable.
    Juste une question (pour l'instant) : la constante URL_HOME, à quoi elle te sert ?


    Mon code :
    d'abord, l'arborescence est identique à celle du blog.
    Les fichiers : comme il s'est sûrement glissé une coquille à mon insu, au lieu de mettre partout "idem blog", je mets le code que j'utilise. Pas la peine, car en faisant des copier-coller, je l'ai trouvé !
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

  6. #6
    Modérateur
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    mars 2004
    Messages
    5 498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : mars 2004
    Messages : 5 498
    Points : 14 646
    Points
    14 646
    Billets dans le blog
    9
    Par défaut
    URL_HOME ne sert à rien dans la démo. Comme j'ai fait un copier-coller moi aussi, je l'ai récupérée et puis je l'ai laissée là où elle était
    # Dans la Création, tout est permis mais tout n'est pas utile...

  7. #7
    Membre expert

    Homme Profil pro
    Webmaster débutant
    Inscrit en
    octobre 2006
    Messages
    7 038
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2006
    Messages : 7 038
    Points : 3 038
    Points
    3 038
    Billets dans le blog
    1
    Par défaut
    2e question :

    si je regarde la signature du constructeur de PhpEcho public function __construct($file = '', array $vars = []), je comprends qu'il attend un fichier suivi d'un tableau (soit 2 arguments). Or quand tu l'appelles dans Login.php $page = new PhpEcho([DIR_ROOT, 'view Layout.php']);, tu ne lui passes qu'un tableau (qui contient 2 string). Tu peux m'expliquer ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

  8. #8
    Modérateur
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    mars 2004
    Messages
    5 498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : mars 2004
    Messages : 5 498
    Points : 14 646
    Points
    14 646
    Billets dans le blog
    9
    Par défaut
    C'est parce que les arguments en paramètres s'ils ne sont pas définis prennent des valeurs par défaut.
    $file vaudra '' et $vars vaudra [].

    Dans mon appel, je ne définis que la valeur pour le premier argument qui est $file = [DIR_ROOT, 'view Layout.php'].
    # Dans la Création, tout est permis mais tout n'est pas utile...

  9. #9
    Membre expert

    Homme Profil pro
    Webmaster débutant
    Inscrit en
    octobre 2006
    Messages
    7 038
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2006
    Messages : 7 038
    Points : 3 038
    Points
    3 038
    Billets dans le blog
    1
    Par défaut
    Je ne te lis que ce matin...

    J'essaye de décortiquer ton code.

    tu dis que tu ne passes que le 1er argument, qui est $file. Le constructeur va donc appeler setFile. Comme $file n'est pas une string, on va juste exécuter $this->file = str_replace(DIRECTORY_SEPARATOR.DIRECTORY_SEPARATOR, DIRECTORY_SEPARATOR, implode(DIRECTORY_SEPARATOR, $file));.

    Si c'est juste, qu'est-ce qui se passe après ? (je vois pas trop comment se comporte la ligne ci-dessus...)
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

  10. #10
    Modérateur
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    mars 2004
    Messages
    5 498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : mars 2004
    Messages : 5 498
    Points : 14 646
    Points
    14 646
    Billets dans le blog
    9
    Par défaut
    Non, le code fait bien plus, regarde et lis bien la doc au-dessus, c'est expliqué avec même les deux cas d'utilisation possibles :
    - le premier : $parts = 'www user view login.php';, une chaîne de caractères
    - le second : $parts = ['www/user', 'view login.php'];, un tableau
    Tu vois comment le paramètre est transformé en chemin de fichier.
    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
        /**
         * Définition du chemin du fichier à inclure
         * La gestion du séparateur de répertoires est automatique
         *
         * Règle R001 : Il est admis qu'aucun espace n'est inséré dans le nommage des éléments de l'application (répertoires, fichiers, clés tableaux...)
         * Règle R002 : tout espace sera remplacé par le séparateur de répertoire propre au système
         *
         * Exemple    : $parts = 'www user view login.php'; => www/user/view/login.php  ssi DIRECTORY_SEPARATOR = '/'
         *                                                  => www\user\view\login.php  ssi DIRECTORY_SEPARATOR = '\'
         *
         * Pour les tableaux, mème règle : chaque valeur contenue est soumise à la Règle R002 et toutes
         * les valeurs sont accolées avec pour séparateur le séparateur de répertoire propre au système
         *
         * Exemple    : $parts = ['www/user', 'view login.php']; => www/user/view/login.php  ssi DIRECTORY_SEPARATOR = '/'
         *                                                       => www/user\view\login.php  ssi DIRECTORY_SEPARATOR = '\'
         *
         * @param mixed $parts string|array
         */
        public function setFile($parts)
        {
            $file  = [];
            $parts = is_string($parts) ? explode(' ', $parts) : $parts;
            foreach ($parts as $p) {
                $file[] = str_replace(' ', DIRECTORY_SEPARATOR, $p);
            }
            $this->file = str_replace(DIRECTORY_SEPARATOR.DIRECTORY_SEPARATOR, DIRECTORY_SEPARATOR, implode(DIRECTORY_SEPARATOR, $file));
        }
    # Dans la Création, tout est permis mais tout n'est pas utile...

  11. #11
    Membre expert

    Homme Profil pro
    Webmaster débutant
    Inscrit en
    octobre 2006
    Messages
    7 038
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2006
    Messages : 7 038
    Points : 3 038
    Points
    3 038
    Billets dans le blog
    1
    Par défaut
    Même avec tes explications et le texte du blog, j'ai du mal...

    La doc en question, j'ai mis un temps fou à comprendre laquelle c'était et fini par voir que tu me la resservais !

    OK, la transformation du paramètre en chemin de fichier est faite par setFile...Suite au prochain épisode.
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

  12. #12
    Membre expert

    Homme Profil pro
    Webmaster débutant
    Inscrit en
    octobre 2006
    Messages
    7 038
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2006
    Messages : 7 038
    Points : 3 038
    Points
    3 038
    Billets dans le blog
    1
    Par défaut
    Voici le nouvel épisode

    D'abord, j'ai trouvé plusieurs trucs qu'on peut enlever, vu que ça ne semble pas servir : <?= implode('', $this['meta'] ?? []) ?> dans Layout.php et <p style="display:<?= $this['show_error'] ?? 'none' ?>"><strong><?= $this('err_msg') ?></strong></p> dans LoginForm.php (en tout cas, je vois aucune différence si je les enlève).

    Par contre, pour vérifier que ça marchait, j'ai mis ce script en ligne, et là problème : la ligne namespace rawsrc\PhpEcho; de PhpEcho.php provoque un message not found. Je l'ai remplacée par namespace vendor\PhpEcho; mais pas mieux...Que faut-il faire ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

  13. #13
    Modérateur
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    mars 2004
    Messages
    5 498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : mars 2004
    Messages : 5 498
    Points : 14 646
    Points
    14 646
    Billets dans le blog
    9
    Par défaut
    Salut laurentSc

    Ce qui ne sert à rien, c'est juste pour l'exemple, c'est même expliqué dans le tuto.

    Si dans ton script tu as fait au moins une fois un include ou include_once du fichier PhpEcho.php, tu ne peux pas avoir une erreur Not Found.
    Vérifie qu'à chaque appel, tu fais l'inclusion du fichier au moins une fois.
    Vu l'alias de classe défini à la fin du fichier PhpEcho.php, une fois l'inclusion faite, tu peux faire directement $page = new PhpEcho(); et ceci quelque soit l'espace de nom utilisé.
    # Dans la Création, tout est permis mais tout n'est pas utile...

  14. #14
    Membre expert

    Homme Profil pro
    Webmaster débutant
    Inscrit en
    octobre 2006
    Messages
    7 038
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2006
    Messages : 7 038
    Points : 3 038
    Points
    3 038
    Billets dans le blog
    1
    Par défaut
    Salut rawsrc,

    j'ai modifié un peu index.php de telle sorte que les include sont corrects, et je n'ai plus de not found, par contre le formulaire de connexion n'est pas affiché.

    index.php modifié :
    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
    <?php
    // quelques constantes utiles
    define('DIR_ROOT', __DIR__.DIRECTORY_SEPARATOR);
     
     
    if(!defined('SITE_URL_WWW_LOCAL'))	define('SITE_URL_WWW_LOCAL',	'localhost/phpecho_simple');  // en TEST LOCAL, A REMPLACER PAR...
    if(!defined('SITE_URL_WWW_PROD'))	define('SITE_URL_WWW_PROD',	'vercorshandisport.org/phpecho'); // en PRODUCTION
     
    if( !defined('SITE_URL_WWW')) define('SITE_URL_WWW', isset($_SERVER['SERVER_NAME']) && $_SERVER['SERVER_NAME'] == 'localhost' ? SITE_URL_WWW_LOCAL : SITE_URL_WWW_PROD );
    if( !defined('URL_HOME'))	define('URL_HOME',	'https://'.SITE_URL_WWW);
     echo "index11<br/>".URL_HOME.DIRECTORY_SEPARATOR.'vendor'.DIRECTORY_SEPARATOR.'PhpEcho'.DIRECTORY_SEPARATOR.'PhpEcho.php';
    // ici on va chercher notre classe de moteur de rendu
    include URL_HOME.DIRECTORY_SEPARATOR.'vendor'.DIRECTORY_SEPARATOR.'PhpEcho'.DIRECTORY_SEPARATOR.'PhpEcho.php';
     
    // démarrage de l'application : formulaire de connexion
    include URL_HOME.DIRECTORY_SEPARATOR.'src'.DIRECTORY_SEPARATOR.'Login.php';

    et ça n'affiche que :
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

  15. #15
    Modérateur
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    mars 2004
    Messages
    5 498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : mars 2004
    Messages : 5 498
    Points : 14 646
    Points
    14 646
    Billets dans le blog
    9
    Par défaut
    t'es sûr de URL_HOME là-dedans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    include URL_HOME.DIRECTORY_SEPARATOR.'vendor'.DIRECTORY_SEPARATOR.'PhpEcho'.DIRECTORY_SEPARATOR.'PhpEcho.php';
    ça ne serait pas plutôt DIR_ROOT ?
    # Dans la Création, tout est permis mais tout n'est pas utile...

  16. #16
    Membre expert

    Homme Profil pro
    Webmaster débutant
    Inscrit en
    octobre 2006
    Messages
    7 038
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2006
    Messages : 7 038
    Points : 3 038
    Points
    3 038
    Billets dans le blog
    1
    Par défaut
    Je mets du temps à répondre par manque de dispo jusque là...

    J'ai quand même eu le temps de tester DIR_ROOT hier soir, et oui, c'est bien mieux : le formulaire de connexion s'affiche ; par contre l'action (action="<?= $this['url_submit'] ?>"), si on laisse comme ça, ça essaye d'ouvrir la page http://localhost/index.php?page=loginsubmit au lieu de http://localhost/phpecho_simple/index.php?page=loginsubmit (phpecho_simple est le nom du folder où j'ai mis le code) et je n'arrive pas à trouver ce qu'il faudrait mettre en début de l'URL...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

  17. #17
    Modérateur
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    mars 2004
    Messages
    5 498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : mars 2004
    Messages : 5 498
    Points : 14 646
    Points
    14 646
    Billets dans le blog
    9
    Par défaut
    laurentSc, il faut que tu essaies de lire un petit peu...
    dans Login.php, tu as ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $body = new PhpEcho([DIR_ROOT, 'view LoginForm.php'], ['url_submit' => '/index.php?page=loginsubmit']);
    tu devrais avoir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $body = new PhpEcho([DIR_ROOT, 'view LoginForm.php'], ['url_submit' => 'http://localhost/phpecho_simple/index.php?page=loginsubmit']);
    # Dans la Création, tout est permis mais tout n'est pas utile...

  18. #18
    Membre expert

    Homme Profil pro
    Webmaster débutant
    Inscrit en
    octobre 2006
    Messages
    7 038
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2006
    Messages : 7 038
    Points : 3 038
    Points
    3 038
    Billets dans le blog
    1
    Par défaut
    T'avais pas dit qu'un des pré-requis était de savoir lire
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

  19. #19
    Membre expert

    Homme Profil pro
    Webmaster débutant
    Inscrit en
    octobre 2006
    Messages
    7 038
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2006
    Messages : 7 038
    Points : 3 038
    Points
    3 038
    Billets dans le blog
    1
    Par défaut
    Comme c'est parfaitement au point en local, j'ai voulu le tester en ligne, mais là page blanche (pareil si je regarde le code source de la page). Donc la question est : comment déboguer ?

    A noter les petites modifs faites par rapport à ton code :

    - partout où y avait rawsrc j'ai remplacé par vendor.

    - dans index.php, j'ai rajouté cette définition :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if(!defined('SITE_URL_WWW_LOCAL'))	define('SITE_URL_WWW_LOCAL',	'localhost'.DIRECTORY_SEPARATOR.'phpecho_simple');  // en TEST LOCAL, A REMPLACER PAR...
    if(!defined('SITE_URL_WWW_PROD'))	define('SITE_URL_WWW_PROD',	'vercorshandisport.org'.DIRECTORY_SEPARATOR.'phpecho'); // en PRODUCTION
     
    if( !defined('SITE_URL_WWW')) define('SITE_URL_WWW', isset($_SERVER['SERVER_NAME']) && $_SERVER['SERVER_NAME'] == 'localhost' ? SITE_URL_WWW_LOCAL : SITE_URL_WWW_PROD );
    $http=isset($_SERVER['SERVER_NAME']) && $_SERVER['SERVER_NAME'] == 'localhost' ? 'http:'.DIRECTORY_SEPARATOR.DIRECTORY_SEPARATOR :'https:'.DIRECTORY_SEPARATOR.DIRECTORY_SEPARATOR;
    if( !defined('URL_HOME'))	define('URL_HOME',$http.SITE_URL_WWW);

    - dans login.php, j'ai mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $body = new PhpEcho([DIR_ROOT, 'view LoginForm.php'], ['url_submit' => URL_HOME.'/index.php?page=loginsubmit',
    'login'      => 'laurentsc']);
    (ce que tu m'as conseillé, légèrement modifié (en local, ça marche bien))
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

  20. #20
    Modérateur
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    mars 2004
    Messages
    5 498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : mars 2004
    Messages : 5 498
    Points : 14 646
    Points
    14 646
    Billets dans le blog
    9
    Par défaut
    Tu définis des URL comme SITE_URL_WWW_PROD avec un DIRECTORY_SEPARATOR en plein milieu ???

    tu dois absolument éviter les if sur une seule ligne, c'est illisible
    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
    // EN LOCAL
    if ( ! defined('SITE_URL_WWW_LOCAL'))	{
      define('SITE_URL_WWW_LOCAL',	'localhost/phpecho_simple');
    }  
     
    // en PRODUCTION
    if ( ! defined('SITE_URL_WWW_PROD')) {
        define('SITE_URL_WWW_PROD',	'vercorshandisport.org/phpecho');
    } 
     
    if( ! defined('SITE_URL_WWW')) {
      define('SITE_URL_WWW', isset($_SERVER['SERVER_NAME']) && $_SERVER['SERVER_NAME'] === 'localhost' ? SITE_URL_WWW_LOCAL : SITE_URL_WWW_PROD );
    }
     
    if ( ! defined('URL_HOME'))	{
      define('URL_HOME', 'http'.((SITE_URL_WWW === SITE_URL_WWW_PROD) ? 's' : '').'://'.SITE_URL_WWW);
    }
    Ensuite tu dois penser à adapter tes url dans le code de tes formulaires
    # Dans la Création, tout est permis mais tout n'est pas utile...

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. POO en PHP : ne déclarer qu'une seule fois une classe
    Par laurentSc dans le forum Langage
    Réponses: 15
    Dernier message: 14/10/2015, 18h44
  2. Réponses: 1
    Dernier message: 06/01/2010, 10h20
  3. Mapper deux tables sur une seule classe
    Par gorgonite dans le forum Zend_Db
    Réponses: 13
    Dernier message: 30/06/2008, 14h06
  4. Une seule classe public dans un package
    Par bubulemaster dans le forum Débuter
    Réponses: 2
    Dernier message: 30/05/2008, 22h06
  5. Log d'une seule classe en mode debug
    Par Konrad Florczak dans le forum Logging
    Réponses: 5
    Dernier message: 27/09/2006, 17h08

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