require_once

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : require_once

par nicolas » 30 déc. 2005, 10:32

Il n'y a rien de magique.

http://fr.php.net/include/

par delcedo galaxialord » 29 déc. 2005, 15:38

Salut !

require, include, require_once ou include_once, sont des fonctions que je trouve MAGIQUE, parce qu'elle ne fonctionne pas selon tout ce que l'on pourrait attendre...

En fait, le require dépend de l'url de ta page, mais peut aussi dépendre de l'url de ton fichier qui va faire le require.

Je crois que le plus simple est d'expliquer par un exemple :

Soient :
/index.php
/fich1.php
/dos1/fich2.php
/dos1/fich3.php
/dos1/dos2/fich4.php

index.php fait un require sur "dos1/fich2.php".
require "dos1/fich2.php";
et fich2.php veut récupérer fich1.php, fich3.php et fich4.php.

dans ce cas, fich2.php contiendra :
require "fich1.php";
require "dos1/fich3.php";
require "fich3.php";
require "dos2/fich4.php";
require "dos1/dos2/fich4.php";
Ce qui parait tout à fait logique si l'on résonne en fonction de la page index.php qui a appelé fich2.php.

Mais ce qui est étonnant est qu'en raisonnant en fonction de fich2.php cela fonctionne aussi :
require "fich1.php"; // pas en fonction de fich2.php
require "fich3.php";
require "dos2/fich4.php";
Et ce qui est encore plus étonnant et illogique est que cela :
require "../fich1.php";

à la place de
require "fich1.php";
ne fonctionne pas... bien que l'on raisonne en fonction de fich2.php...

Bilan, si tu ne veux pas te prendre la tête, raisonne uniquement en fonction de la page que tu appelles, ou alors ne fait pas de require d'un fichier se trouvant dans un dossier parent.

require_once

par uther » 27 déc. 2005, 15:19

Au final j'ai la configuration suivante :

Dans httpd.conf DocumentRoot "d:/monsite"

le script qui appelle mapage.php est dans d:/monsite/rep1/php/ et j'utilise la syntaxe require_once ("../includes/mapage.php")

le script appelé est dans d:/monsite/rep1/includes/

Voilà, voilà

par zeus » 27 déc. 2005, 11:55

Où se trouve le script contenant le require_once par rapport au fichier à inclure ?

require_once

par uther » 27 déc. 2005, 11:40

Bonjour,


Je suis en Php 5.03 sous apache 2

J'ai un petit pb avec la fonction require_once, si je mets le chemin complet require_once ("d:/monsite/rep1/includes/mapage.php"), je n'ai pas de probléme, le fichier mapage.php est inclus dans le script.
mais je veux utiliser le format suivant require_once ("../rep1/includes/mapage.php") j'ai l'erreur 'failed to open stream: No such file or directory' "d:/monsite/rep1/includes/pagecontenantlinclude.php"

Sous le httpd.conf de appache j'ai précisé le répertoire DocumentRoot "d:/monsite".

Cela fait un petit moment que je suis bloqué , merci pour votre aide.