CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[PHP] Include peu importe où on est

[YM]Ambassade
[YM]Ambassade
Niveau 2
12 mai 2012 à 13:06:20

Bonjour,

J'ai un dossier /gateaux/ à la racine de mon site.
Dans ce dossier, il y en a un autre /chocolat/
Et dans ce dossier là, il y a un fichier 'a_include.php'

J'aimerais include ce fichier dans plusieurs autres situés un peu partout (certains à la racine, d'autres dans d'autres dossiers...etc)

Comment faire un script qui détectera où on est afin de trouver le fichier à include et à le faire ?

Merci

Poneymovez
Poneymovez
Niveau 9
12 mai 2012 à 17:21:28

Je ne sais pas si c'est possible.

Limite il suffit de faire :

include(gateaux/chocolat/a_include.php);
include(chocolat/a_include.php);
include(a_include.php);

Rien de bien sorcier :hap:

Mais c'est vrai qu'un script dans le genre serait cool :cool:

deepblue
deepblue
Niveau 16
12 mai 2012 à 17:52:41

var_dump($_SERVER);

Tu auras une entré DOCUMENT_ROOT qui correspond à la racine de ton nom de domaine. Tu pourras donc l'utiliser pour faire des includes avec des chemins absolus.

define('ROOT', $_SERVER['DOCUMENT_ROOT'].'/');
include(ROOT.'gateaux/chocolat/a_include.php');

Poneymovez
Poneymovez
Niveau 9
12 mai 2012 à 17:56:50

Oui mais dans ce cas, imagine que tu te trouves dans le dossier chocolat, tu essayeras d'inclure a_inclue.php, ça ne marcheras pas.

A moins que je me trompe :hap:

vava740
vava740
Niveau 10
12 mai 2012 à 18:06:05

Non vu que le DOCUMENT_ROOT repart de la racine du site, peu importe où tu es, la racine est la même :ok:

Poneymovez
Poneymovez
Niveau 9
12 mai 2012 à 18:21:13

Ha ok !

C'est super ce script !
Je vais le prendre et le mettre de côté des fois que j'en aurais besoin :hap: !

Merci :)

vava740
vava740
Niveau 10
12 mai 2012 à 18:49:51

C'est un truc super utile :ok: , par contre pas moyen de l'utiliser pour récupérer un truc en dehors de la racine du site :(

En fait je mets certains fichiers en dehors de la racine du site, pour pouvoir y accéder que depuis le serveur, mais les rendre inaccessibles depuis le web (flemme de mettre un .htaccess :hap: ), mais impossible de faire un $_SERVER['DOCUMENT_ROOT'] . '../truc_securise.txt'; :snif:

Poneymovez
Poneymovez
Niveau 9
12 mai 2012 à 19:02:32

Là il faudrait savoir il y a combien de dossier entre le dossier où tu es et la racine.

Ensuite tu rajoute autant de fois ../ qu'il y a d'écart et ensuite tu rajoutes truc_securise.txt.

Poneymovez
Poneymovez
Niveau 9
12 mai 2012 à 19:07:01

Tiens, j'ai trouvé ça :

$repertoire = dirname($_SERVER["PHP_SELF"]);
echo "$repertoire";

ça te renvois le répertoire où tu es en ce moment.

Après je pense que couplé avec du regex ça roxxera ;) !

Je vais essayé d'y penser :) !

deepblue
deepblue
Niveau 16
12 mai 2012 à 19:24:25

Ou pas. Et puis on va préférer dirname(__FILE__);

Poneymovez
Poneymovez
Niveau 9
12 mai 2012 à 19:37:34

Pour l'instant je suis sur :

<?
$repertoire = dirname($_SERVER["PHP_SELF"]);
$repertoire = preg_replace("#/[^/]+/#siU","../",$repertoire);
echo "$repertoire";
?>

et c'est quasiment ça :hap: !

[YM]Ambassade
[YM]Ambassade
Niveau 2
12 mai 2012 à 19:52:58

Je ne comprends pas ...

$_SERVER['DOCUMENT_ROOT'] = "home/trei/public"

alors que je voudrais que ce soit http://monsite.com

Ce n'est pas la bonne variable server ??

Poneymovez
Poneymovez
Niveau 9
12 mai 2012 à 19:58:09

J'ai trouvais !

$repertoire = preg_replace("#/?[^/]+/#siU","../", dirname($_SERVER["PHP_SELF"]).'/');
echo "$repertoire";

Voila, avec ça tu sors de www ;) !

Fire_Storm
Fire_Storm
Niveau 10
12 mai 2012 à 20:07:19

Parce que ton site http://monsite.com/ se trouve en réalité sur le serveur dans home/trei/public.

Ca ne te donnera pas le lien de ton site mais bien le lien par rapport au serveur lui même.

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment