Problème avec un chemin absolu dans un include().

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 : Problème avec un chemin absolu dans un include().

Re: Problème avec un chemin absolu dans un include().

par moogli » 01 déc. 2010, 10:15

si tu peut faire un phpinfo(); tu peut voir les fonctions désactivée(s)
tu ne perd rien a essayer de l'ajouter pour le debug c'est indispensable. au pire tu tes fait une plateforme de test sur ton pc avec la même version de php (pour éviter les soucis d'incompatibilité de fonction) et tu active sur cette plateforme l'error_reporting affichage des erreurs et tous le tremblement ;)

@+

Re: Problème avec un chemin absolu dans un include().

par sixo » 01 déc. 2010, 00:16

Merci moogli,

En effet, vu le nombre d'include() que je dois faire, les constantes sont indispensables !
Pour l' error_reporting, je testerai demain.

Enfin, j'avoue que dans la mesure où je n'ai pas accès à la configuration php du serveur, ce n'est pas évident de trouver qu'est ce qui est autorisé ou non. Mais bon, la difficulté forge !

Re: Problème réglé

par devlop78 » 30 nov. 2010, 20:12

Merci à (presque) tous pour vos réponses.

En rédigeant ma réponse, la solution m'est venue !
Heureux que ma réponse t'ai aidée :mrgreen:

N'oublie pas ton sens de l'humour à ta prochaine question :priere:

Aller je sors :arrow: :arrow:

Re: Problème avec un chemin absolu dans un include().

par moogli » 30 nov. 2010, 18:09

pour la modif du niveau d'erreur à la volée => error_reporting(E_ALL | E_STRICT); au début de fichier de conf ;)

pour ce qui est du chemin de base, bonne idée, tu peut le mettre dans une constante afin de pouvoir l'utiliser facilement pour d'autre fichier.
par exemple
<?php
define('PATH','/var/truc ..');
include(PATH.'includes/fichier.php');
// etc
?>
quand au soucis de base, le problème à mettre une url c'est que ci le paramètre allow_url_wrap_open est à off tu ne pourra pas réaliser cet include (pour plus d'info la doc de include ;) )

@+

@+

Problème réglé

par sixo » 30 nov. 2010, 17:50

Merci à (presque) tous pour vos réponses.

En rédigeant ma réponse, la solution m'est venue !

Je vous explique quand même, le fichier que je voulais inclure se trouvait sur le même serveur que le fichier appelant. Seulement, mon site aura plusieurs sous-dossiers et je voulais éviter de travailler avec des "../" qu'on répète x fois !
D'où le choix du chemin absolu avec la racine du site enregistrée dans une constante. Sachant que je n'ai pas accès à la racine du serveur parce que j'ai un hébergement mutualisé et je ne savais pas quel était le chemin vers le dossier public !
Ni comment il s'appelait. Comme je n'ai pas d'accès ssh, difficile de retrouver le chemin vers le dossier public !


Solution : grâce à la remarque de xTG qui m'a fait cogiter, je me suis dit qu'on devait quand meme pouvoir trouver un chemin vers le dossier public, à partir de la racine du serveur. J'ai donc fait une erreur dans mon fichier appelant exprès pour avoir un message d'erreur de firefox qui m'a gentiment écrit le chemin vers le fichier appelant, chemin que j'ai ensuite modifié pour mener au fichier appelé. Et le chemin est du type : "/var/www/monsite.com/htdocs/essai/includes/fonctions.php" !
Pfoui ! à problème tordu, solution tordue !

J'essaierai quand même de voir si j'ai accès au php.ini pour le modifier afin d'afficher les erreurs, mais ça m'étonnerait!
Sinon, ça me servira quand je changerai d'hébergement ! Merci pour le tuyau !

Quant à devlop78, si tu te croyais drôle, c'est franchement raté ! Ta remarque est juste bête, méchante et absolument non constructive !

Re: Problème avec un chemin absolu dans un include().

par devlop78 » 30 nov. 2010, 01:32

C'est une abération que de faire un include avec un lien absolu. ^^
Un lien absolu référence un autre serveur, or on n'inclut pas des fichiers provenant d'autres serveur, ce serait une jolie faille de sécurité.
Il faudrait peut-être lui expliquer la différence entre un lien url, un chemin en général, et un fichier :D

Re: Problème avec un chemin absolu dans un include().

par hakazizi » 29 nov. 2010, 23:41

Pourquoi faire simple quand on peut faire compliqué je pense que tu déconnes la sixo, ou tu es sérieux...

Re: Problème avec un chemin absolu dans un include().

par Invité » 29 nov. 2010, 23:19

salut xtg a raison même si on peut modifier les settings de php pour accepter les chemins absolues.( allow url include)

Mais surtout quand tu es en mode developpement , tu dois passer ton error_reporting en (E_ALL | E_STRICT) dans ton php.ini ,
cela t'affiche toutes les erreurs et t'evite les page bien vides et bien blanches !!!!

++ :)

Re: Problème avec un chemin absolu dans un include().

par damaskinos » 29 nov. 2010, 19:59

Salut,

Peut-être se reférer à la doc ici: http://ca.php.net/manual/fr/function.include.php

Bonne continuation

Re: Problème avec un chemin absolu dans un include().

par xTG » 29 nov. 2010, 19:57

C'est une abération que de faire un include avec un lien absolu. ^^
Un lien absolu référence un autre serveur, or on n'inclut pas des fichiers provenant d'autres serveur, ce serait une jolie faille de sécurité.

Problème avec un chemin absolu dans un include().

par sixo » 29 nov. 2010, 19:35

Bonjour,

j'ai un problème avec une fonction toute bête : include().
Au début de chacune de mes pages, j'insère les fichiers config.php et fonctions.php . Le problème est que lorsque j'écris
include('http://www.monsite.com/essai/includes/config.php');
ma page "inscription" m'affiche une page vide, sans aucun message d'erreur. Par contre, lorsque j'écris
include('../includes/config.php');
ma page s'affiche normalement (menu et formulaire).

Je ne comprend pas pourquoi, d'autant que les liens de mon menu sont écrits en absolu, et que ça fonctionne très bien.
J'ai vérifié le manuel php et je ne comprends toujours pas.
Y a t-il une possibilité que mon hébergeur bloque les liens absolus dans les includes ?

Je précise que je développe mon site dans un sous-dossier du dossier httpdocs (d'où le "essai" dans le chemin vers le fichier à insérer),et il y a xoops qui est installé à la racine du site, je ne sais pas si ça peut poser problème.

Si quelqu'un a une idée pour résoudre ce problème ou au moins afficher un message d'erreur, ce serait sympa.
Merci au moins de m'avoir lue.