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 :

chemin vers les scripts


Sujet :

Langage PHP

  1. #1
    Membre expert
    chemin vers les scripts
    Bonjour,

    j'utilise une architecture MVC, donc tous les liens se font par rapport au fichier index.php qui se trouve à la racine. Pour faire des liens internes, j'utilise la constante define("PATH_REQUIRE", substr($_SERVER['SCRIPT_FILENAME'], 0, -9)); (les 9 derniers caractères qu'on enlève sont index.php). Je développe en local (Wampserver) et au lieu de retourner http://localhost/ ça me retourne C:/wamp64/www/eismvc/ (par exemple), donc le navigateur ne trouve pas l'URL ! Comment faire ?

    Petite correction : en l'occurrence, c'est pas un lien interne que je souhaite faire, mais pointer sur l'action d'un formulaire : <form action=" <?= PATH_REQUIRE ?>_scripts\authenticate.php" method="post">
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

  2. #2
    Modérateur

    Salut,

    Tu mélanges un peu tout.
    Quand tu es sur ton formulaire dans ton navigateur c'est une URL que tu manipules quand tu est du côté du serveur, tu manipules des chemins de fichiers.
    Donc, ça n'a aucun sens de sortir des chemins de fichiers de ton serveur dans tes pages html mis à part exposer des données ultra sensibles à tout vent.

    DANS UNE PAGE HTML, TU NE MANIPULES QUE DES URL

    URL => https://...
    FICHIER => C:\Wampserver\...
    # Dans la Création, tout est permis mais tout n'est pas utile...

  3. #3
    Membre expert
    OK, bien compris que au lieu de récupérer une URL, je récupère l'adresse d'un fichier ; par contre je ne vois pas comment récupérer l'URL de la racine du site (à partir de laquelle je pourrai construire l'URL souhaitée)...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

  4. #4
    Modérateur

    il faut voir si tu as un routeur ou pas.
    Si tu en as pas et que chaque action pointe vers un fichier PHP, tu dois juste faire quelque chose dans ce genre : https://www.tonsite.fr/fomulaire/sou...formulaire.php
    Si tu as un routeur en place, tu dois lui déclarer la route et le fichier de traitement correspondant

    Si l'unique point d'entrée du site est index.php, tu n'as définir une constante du genre URL_HOME qui contient ton site : 'http://localhost/' ou quand tu changes d'environnement 'https://www.tonsiteweb.fr/
    # Dans la Création, tout est permis mais tout n'est pas utile...

  5. #5
    Membre expert
    J'ai bien un routeur et j'ai retrouvé : jreaux62 m'avait déjà donné la solution :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(!defined('SITE_URL_WWW_LOCAL'))	define('SITE_URL_WWW_LOCAL',	'localhost/eismvc');  // en TEST LOCAL, A REMPLACER PAR...
    if(!defined('SITE_URL_WWW_PROD'))	define('SITE_URL_WWW_PROD',	'monsite); // 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('SITE_URL_HTTP'))	define('SITE_URL_HTTP',	'http://'.SITE_URL_WWW);
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell