Videos streaming images jeux et buzz
Connexion






Perdu le mot de passe ?

Inscrivez-vous maintenant !
Menu Principal
Communauté


« 1 (2) 3 »


-Flo-
 0  #21
Je poste trop
Inscrit: 08/01/2005 13:41
Post(s): 15190
Karma: 12562
C'est quoi l'erreur ?

Contribution le : 02/03/2014 23:41
Signaler

Poum45
 0  #22
Je poste trop
Inscrit: 03/12/2007 23:03
Post(s): 59592
Karma: 4214
Pour ne pas confondre, j'ai renommé le fichier reference.php en reference.js (je pouvais aussi faire un .txt mais bon)
En revanche, la page c'est bien un .php.
Cette dernière est dans la racine du site.
J'en ai une autre (celle qui déconne) dans un dossier.


Warning: Wrong parameter count for strstr() in /homez.462/atelierwk/www/prestations.php on line 33

Warning: include(/www/scripts/references.js) [function.include]: failed to open stream: No such file or directory in /homez.462/atelierwk/www/prestations.php on line 33

Warning: include() [function.include]: Failed opening '/www/scripts/references.js' for inclusion (include_path='.:/usr/local/lib/php') in /homez.462/atelierwk/www/prestations.php on line 33

Contribution le : 02/03/2014 23:47
_________________
Les mouches m'agacent mais Le Croco c'est par là
Signaler

-Flo-
 0  #23
Je poste trop
Inscrit: 08/01/2005 13:41
Post(s): 15190
Karma: 12562
C'est pas normal que tu aies ça : include(/www/scripts/references.js)

Tu es sûr d'avoir bien recopié le strstr(__FILE__, '/www/', true) ?

Si tu fais juste un echo de ce strstr tu as quoi ?

Contribution le : 02/03/2014 23:57
Signaler

Poum45
 0  #24
Je poste trop
Inscrit: 03/12/2007 23:03
Post(s): 59592
Karma: 4214
Citation :

@-Flo- a écrit:
Tu es sûr d'avoir bien recopié le strstr(__FILE__, '/www/', true) ?

Si tu fais juste un echo de ce strstr tu as quoi ?


VOilà une capture du code



Quelle est la syntaxe précise pour l'echo ?

Contribution le : 03/03/2014 00:02
Signaler

-Flo-
 0  #25
Je poste trop
Inscrit: 08/01/2005 13:41
Post(s): 15190
Karma: 12562
Alors tu dois avoir une version moins récente de php, ou une config particulière...

Bon alors solution encore plus dégueu, mais au moins ça fonctionnera : include '/homez.462/atelierwk/www/scripts/references.php';

En attendant de trouver mieux ! 🙂

Contribution le : 03/03/2014 00:15
Signaler

Poum45
 0  #26
Je poste trop
Inscrit: 03/12/2007 23:03
Post(s): 59592
Karma: 4214
Citation :

@-Flo- a écrit:
En attendant de trouver mieux ! :)


J'ai testé et évidement... elle, ça fonctionne mais comme tu le dis, ce n'est pas propre 🙂

Je garde comme ça pour le moment mais j'aimerais bien comprendre comment résoudre ce problème.

En tout cas, merci mille fois Flo pour la peine.
Idem à Volvik et les autres

Pour info : PHP Version 5.2.17

Contribution le : 03/03/2014 00:25
Signaler

Biiiiiip
 0  #27
Je masterise !
Inscrit: 10/01/2008 13:31
Post(s): 4693
Karma: 684
Citation :

@Poum45 a écrit:
Je n'ai bien compris comment l'utiliser :gratte:

n'oubliez pas les gars, je suis un belle brèle côté PHP :-)


ah bah flo a donné la solution 🙂

Contribution le : 03/03/2014 08:53
Signaler

Poum45
 0  #28
Je poste trop
Inscrit: 03/12/2007 23:03
Post(s): 59592
Karma: 4214
Oui mais on est en url absolue.
Si un jour quelqu'un comprend ce qui m'arrive 🙂

Contribution le : 03/03/2014 13:06
_________________
Les mouches m'agacent mais Le Croco c'est par là
Signaler

-Flo-
 0  #29
Je poste trop
Inscrit: 08/01/2005 13:41
Post(s): 15190
Karma: 12562
On a très bien compris ce qu'il t'arrive, et tu as 3 solutions :

- Soit concevoir ton appli de telle sorte qu'elle s'appuie sur un fichier de conf qui contiendra une constante correspondant à ton chemin absolu côté serveur
- Soit réaliser tes includes au cas par cas selon l'emplacement du fichier qui réalise les include (include 'scripts/references.php' ou include '../scripts/references.php' selon les deux cas que tu as présentés)
- Soit regénérer automatiquement le chemin absolu à chaque include

Pour la dernière solution, ma proposition ne fonctionnait pas car tu utilises une version de php dépassée depuis au moins 3 ans (tu cumules :-D). Mais elle peut être effectuée différemment, en plus verbeux.

Par exemple tu peux faire un substr(__FILE__, 0, strpos(__FILE__, '/www/') + 5);

Mais c'est un peu chiant de devoir le recopier à chaque include...

Contribution le : 03/03/2014 13:27
Signaler

Biiiiiip
 0  #30
Je masterise !
Inscrit: 10/01/2008 13:31
Post(s): 4693
Karma: 684
juste par curiosité (vu que je ne suis plus développeur et que je n'ai pas suivi les évolutions du PHP ces dernières années), pourquoi ma solution, finalement retenue, est-elle "dégueu" ?

ok, c'est lié à l'hébergement et ça n'est pas exportable sans modification du chemin absolu, mais c'est toujours utilisé aujourd'hui pour faire du htaccess/htpasswd par exemple. donc en quoi cela pose problème ?

edit : sinon l'autre solution pour ne pas se prendre la tête, c'est d'utiliser le domaine du site et de construire le chemin absolu à partir de celui-ci. ça fonctionne parfaitement, une source du style http://www.mondomaine.com/chemin/route/pwet.php , et rulezzz.

Contribution le : 03/03/2014 14:42
Signaler

-Flo-
 0  #31
Je poste trop
Inscrit: 08/01/2005 13:41
Post(s): 15190
Karma: 12562
Je ne suis pas développeur non plus, mais déjà parce que ça t'oblige à recopier tout le chemin à chaque fois que tu veux réaliser un include, ce qui est fastidieux (mais commun aux solutions 2 et 3), et en plus parce que comme tu le dis ce n'est pas exportable, et ça c'est spécifique à la solution 3. Si tu as un environnement de dev et un environnement de prod différents, tu es foutu. Et si un jour tu veux passer ton appli sur un autre environnement, tu dois patcher tous les fichiers qui réalisent un include.

C'est pourquoi les solutions 1, 2, et 3 sont proposées de la plus propre à la moins propre.

Le htaccess/htpasswd n'est plus tant utilisé que ça, ou quand il l'est encore c'est surtout pour une raison de facilité et en peu d'occurrences distinctes. Ce qui n'est alors pas plus contraignant qu'un fichier de conf pour ton appli.

Contribution le : 03/03/2014 15:06
Signaler

Biiiiiip
 0  #32
Je masterise !
Inscrit: 10/01/2008 13:31
Post(s): 4693
Karma: 684
je n'ai peut-être pas compris le problème exposé dans son ensemble, ça me paraissait être la solution la plus simple (y compris en correction et en déploiement) quand j'ai lu "Je pourrais créer un chemin absolu à partir de l'URL mais ça ne se fait pas", car c'est ce que j'aurais proposé en premier.

j'avais l'impression que le htaccess/htpasswd revenait à la mode, je tombe de plus en plus souvent dessus pour des applis pro (et du coup, j'ai fait de même pour celle que j'ai mise en place, histoire de pas m'emmerder avec des sessions et d'avoir un minimum de sécurité...).

Contribution le : 03/03/2014 15:20
Signaler

Poum45
 0  #33
Je poste trop
Inscrit: 03/12/2007 23:03
Post(s): 59592
Karma: 4214
Citation :

@Volvik a écrit:
je n'ai peut-être pas compris le problème exposé dans son ensemble, ça me paraissait être la solution la plus simple


Si si, tu as bien compris.
En effet, mettre l'url en dur et complète fonctionne parfaitement.

Quand à la recopie cela ne me pose aucun soucis car comme dit plus haut, j'utilise DreamWeaver et ce bout de code est dans le template. Si un jour je devait changer toutes les pages se remettraient à jour ensemble.

Idem pour le fichier d'include qui continent le nom des fichiers (images) du diaporama.

Cela dit, j'aimerai comprendre comment on doit saisir une url afin d'indiquer qu'on "démarre" à la racine du site et ce, peu importe là où l'on se trouve (dans les dossiers du site).

Un peu comme le "\toto" qui sous MSDOS voulait dire "à partir de la racine du DD"

Contribution le : 03/03/2014 16:25
Signaler

-Flo-
 0  #34
Je poste trop
Inscrit: 08/01/2005 13:41
Post(s): 15190
Karma: 12562
Citation :

@Poum45 a écrit:
Cela dit, j'aimerai comprendre comment on doit saisir une url afin d'indiquer qu'on "démarre" à la racine du site et ce, peu importe là où l'on se trouve (dans les dossiers du site).


Bah ça c'est très simple, il suffit de faire débuter l'url par "/". Mais je ne vois pas très bien le rapport, sauf si on en revient au chemin des images...

Ou sauf si tu considères que tu passes des urls à ton include, ce qui est incorrect dans ce cas précis.

Contribution le : 03/03/2014 16:38
Signaler

Biiiiiip
 0  #35
Je masterise !
Inscrit: 10/01/2008 13:31
Post(s): 4693
Karma: 684
Citation :

@Poum45 a écrit:
Cela dit, j'aimerai comprendre comment on doit saisir une url afin d'indiquer qu'on "démarre" à la racine du site et ce, peu importe là où l'on se trouve (dans les dossiers du site).


ben du coup Flo a donné la réponse avec __DIR__ si j'ai bien compris l'utilité de cette variable.

mais de toute façon, arrête de bosser et donne ça à tes dév 😃

edit : j'ai trouvé un résumé bien formulé ici.

Contribution le : 03/03/2014 16:41
Signaler

-Flo-
 0  #36
Je poste trop
Inscrit: 08/01/2005 13:41
Post(s): 15190
Karma: 12562
Non pas vraiment car __DIR__ donne le chemin jusqu'au fichier courant. Donc il ne s'arrête pas à la racine (sauf si le fichier lui-même est à la racine).

Contribution le : 03/03/2014 16:50
Signaler

Poum45
 0  #37
Je poste trop
Inscrit: 03/12/2007 23:03
Post(s): 59592
Karma: 4214
Système de fichier include() et autres /a/b/c/ -> Fait référence à la racine même du serveur (donc peut être à l'extérieur du domaine public

Le voilà mon soucis.
Le "/" remonte vraiment à la racine du serveur (du moins, mon espace).

Ainsi, l'url devient : /homez.462/atelierwk/www/scripts/references.js

Ma question est comment pointer (se positionner) directement à partir du www

Edit : ce qui est fou c'est que concernant l'url des images, le "/images/toto.jpg" fonctionne et ce, peu importe l'emplacement de la page qui fait cet appel:-o

edit bis :

Pour que ce soit valide, il faudrait que la directive include_path du fichier de configuration php.ini de PHP soit défini de manière à ce que le dossier racine du domaine fasse partie des chemins où PHP recherchera pour le fichier. Et encore là puisque c'est un chemin absolu...

Et là :gratte: je ne sais pas faire 🙂

Contribution le : 03/03/2014 16:54
Signaler

Biiiiiip
 0  #38
Je masterise !
Inscrit: 10/01/2008 13:31
Post(s): 4693
Karma: 684
Citation :

@Poum45 a écrit:
Ma question est comment pointer (se positionner) directement à partir du www


ben avec ton domaine 😃

tu passes du coup outre la différence entre HTTP et système de fichier (comme indiqué dans les explications détaillées).

edit : parce que tu n'as pas accès au php.ini sur un mutualisé.

Contribution le : 03/03/2014 17:03
Signaler

-Flo-
 0  #39
Je poste trop
Inscrit: 08/01/2005 13:41
Post(s): 15190
Karma: 12562
Citation :

@Poum45 a écrit:
Edit : ce qui est fou c'est que concernant l'url des images, le "/images/toto.jpg" fonctionne et ce, peu importe l'emplacement de la page qui fait cet appel:-o


Ce n'est pas fou du tout, c'est juste que tu mélanges deux types de chemins.

D'un côté, il y a les chemins qui sont interprétés côté serveur, et qui correspondent donc au chemin depuis la vraie racine de ton serveur. Ce sont ceux que tu utilises dans le cadre de tes includes php.

De l'autre côté, il y a les chemin qui sont interprétés côté client, et donc par le navigateur de l'internaute. C'est pourquoi le / du début du chemin des images permet au navigateur de remonter jusqu'à la racine de ce qu'il connait : le domaine de ton site (le navigateur ne peut pas remonter plus haut que ce qu'il voit).

Mais le / côté serveur remonte jusqu'à la vraie racine, qui elle est plus profonde que la limite de ton espace www.

Donc pour résumer :
- un chemin utilisé dans une commande php : interprété par le serveur, débute à la racine du serveur
- un chemin affiché dans une balise html : interprété par le navigateur, débute à la racine du domaine

Contribution le : 03/03/2014 17:42
Signaler

Poum45
 0  #40
Je poste trop
Inscrit: 03/12/2007 23:03
Post(s): 59592
Karma: 4214
Ah OK Flo, là, j'ai compris 😃
(bah oui, des fois j'ai la tête dur)

Volvik, non, l'url type http://www.domaine... ne fonctionne pas.
Il faut passer par ce qui était indiqué plus haut /homez.462/atelierwk/www/scripts/references.js

Quant au php.ini... ça se trouve où ?
Côté manager OVH je n'ai rien trouvé, en FTP non plus.

Contribution le : 03/03/2014 17:46
_________________
Les mouches m'agacent mais Le Croco c'est par là
Signaler


 Haut   Précédent   Suivant
« 1 (2) 3 »






Si vous êtes l'auteur d'un élément de ce site, vous pouvez si vous le souhaitez, le modifier ou le supprimer
Merci de me contacter par mail. Déclaré à la CNIL N°1031721.