instruction 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 : instruction require_once

Re: instruction require_once

par Gofromiel » 13 sept. 2011, 17:36

Quel sont les chemins absolus de tes fichiers "index.php" et "/Connections/cgsavoie.php" ?

Si tu as quelque chose comme :

/path/to/index.php
/path/to/Connections/cgsavoie.php

Alors dans ton "index.php" utilise plutôt "require_once __DIR__ . '/Connections/cgsavoie.php';" et si ta version de PHP est inférieure à 5.3 utilise "dirname(__FILE__)" plutôt que "__DIR__".

Attention aussi à la casse de te répertoires, par exemple "/Connections/" ce n'est pas la même chose que "/connections/" sous Linux.

Re: instruction require_once

par Mazarini » 12 sept. 2011, 15:12

Il faut que tu repères le répertoire qui contient les fichiers à inclure. Lorsque cela sera fait, tu ajouteras ce répertoire à la chaine include_path du fichier php.ini. Il faut relancer le serveur après la modification.
Ce répertoire contient le répertoire "Connections" qui contient le fichier cgsavoie.php.

Pour les liens, je ne connais pas Dreamweaver.

Re: instruction require_once

par charom » 12 sept. 2011, 11:50

Bjre,
Merci aux profs pour l'aide.
J'ai toujours pas trouvé la réponse à mes difficultés, mais je pense bien qu'effectivement c'est un pb lié à ma réinstallation et à mon répertoire Include qui doit beugué en conséquence de cette réinstallation.
Cerise sur le gateau, si je crée de nouveaux liens vers de nouveaux fichiers(avec dream), ça fonctionne. Mais si j'efface un lien vers un fichier déjà existant et que je recréé ce lien, basta, même conséquence... Je ne vois que la solution de tout effacer et recommencer....
Mais avant, je vais encore chercher car je voudrais bien identifier ce problème qui handicape grave en cas de crash de DD. Donc lumières de la communauté toujours utiles..
Re-Merci à tou(te)s
Charom
|*()

Re: instruction require_once

par Cyrano » 06 sept. 2011, 16:34

Le truc dans ce genre de cas : créer une constante dans un fichier de configuration basé sur le chemin absolu du répertoire racine de l'application.

Si on a par exemple à la racine un sous-répertoire conf/, dedans, on met un fichier du style appConf.php avec dedans ceci :
<?php
define('APP_ROOT', realpath(dirname(dirname(__FILE__))));
Ensuite où que ce soit dans l'application, il faut inclure ce fichier et lorsqu'on a une autre inclusion à effectuer, on la préfixe avec la constante. Même en cas de ré-installation, ça devrait toujours fonctionner.

Re: instruction require_once

par Mazarini » 06 sept. 2011, 15:18

A priori l'include ne tient pas compte de l'arborescence du site, mais de l'arborescence du disque. D'ailleurs on peut inclure des trucs qui ne sont pas dans l'arborescence du site (ce qui n'est pas mal en terme de sécurité).

Je maintiens que c'est un problème d'include path. Ne pas oublier qu'il y a eu réinstallation.

Re: instruction require_once

par zeus » 06 sept. 2011, 10:59

Modération :
Afin d'obtenir plus de réponses, le sujet est déplacé dans le bon forum

Re: instruction require_once

par sirakawa » 03 sept. 2011, 08:53

Je viens de tester sous unix avec le code suivant:
<?PHP
    include ("/bidules/machin.inc");
?>
et j'obtiens un message d'erreur

Code : Tout sélectionner

Warning: include(/bidules/machin.inc) [function.include]: failed to open stream: No such file or directory in /var/www/htdocs/tests/test1.php on line 2 Warning: include() [function.include]: Failed opening '/bidules/machin.inc' for inclusion (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/htdocs/tests/test1.php on line 2
Je crée /bidules (racine du système unix)
puis dans bidules je crée machin.inc
et le fonctionement est impeccable.

Re: instruction require_once

par Cyrano » 03 sept. 2011, 00:00

/QUELQUE CHOSE sous windows ça mène, me semble-t-il, à la racine du disque
Presque, c'est la racine du répertoire web configuré dans Apache, par défaut sous Windows, c'est quelque chose du genre C:\Program Files\Apache\Apache group\htdocs\ ou quelque chose comme ça, mais ça pourrait être n'importe où ailleurs, il faut regarder dans le httpd.conf pour voir où pointe le Document_Root.

Re: instruction require_once

par sirakawa » 02 sept. 2011, 20:32

/QUELQUE CHOSE sous windows ça mène, me semble-t-il, à la racine du disque à partir duquel est lancée la commande, en l'occurrence G:
Où se trouve en fait le fichier à inclure?

Re: instruction require_once

par Mazarini » 02 sept. 2011, 11:42

bonjour,

Le fichier /Connections/cgsavoie.php n'existe pas ou ne se trouve pas au bon endroit.

Il doit manquer un répertoire dans include_path du fichier php.ini. Regardes ou se trouve Connections/cgsavoie.php et modifie l'include_path en concéquence sur le modèle du répertoire pear (C:\php\pear)

instruction require_once

par charom » 02 sept. 2011, 01:09

Dans mon fichier index.php, j'ai (en première ligne) l'instruction suivante pour me connecter à la base mysql : <?php require_once('/Connections/cgsavoie.php'); ?>

Le lancement du fichier me renvoi l'erreur suivante :

( ! ) Warning: require_once(/Connections/cgsavoie.php) [function.require-once]: failed to open stream: No such file or directory in G:\wamp\www\site_cgsavoie\www\gestion\cgsavoie\index.php on line 1
Call Stack
# Time Memory Function Location
1 0.0171 408904 {main}( ) ..\index.php:0

( ! ) Fatal error: require_once() [function.require]: Failed opening required '/Connections/cgsavoie.php' (include_path='.;C:\php\pear') in G:\wamp\www\site_cgsavoie\www\gestion\cgsavoie\index.php on line 1
Call Stack
# Time Memory Function Location
1 0.0171 408904 {main}( ) ..\index.php:0

Je précise que la liaison à la base est ok et que ce pb m'est apparu suite à une réinstallation de wamp et de la base, suite un gros crach informatique sur ma machine.
Qu'en est 'il, pourquoi, et quelle solution ??
J'ai passé une journée à chercher je n'ai rien trouvé j'ai déclaré forfait, mais je ne veux pas m'avouer vaincu...
Merci d'avance à mon sauveur.
Charom