[PHP]open_basedir restriction in effect
tximiti
Messages postés
27
Date d'inscription
Statut
Membre
Dernière intervention
-
tximiti Messages postés 27 Date d'inscription Statut Membre Dernière intervention -
tximiti Messages postés 27 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tout le monde !
Ca fasiait longtemps..Environ 3 jours! Lol ! Mais ce n'est aps de ma faute je trouve que vous êtes un excellent forum !
Passons aux chose sérieuses, j'ai construit mon site avec des pseudo-frames et j'ai voulu le sécuriser..Mais je n'y arrive pas comme l'indique le titre de mon message !
J'ai trouvé plusieurs solutions mais j'en ai retenu deux.
La première :
Accompagné de
La deuxième solution :
Pour la dernière solution, j'ai la page par défaut qui apparaît.
Pour la première ça me met:
Si dans la variable $path je mets :
ou
Ca me trouve seulement ma page par défaut
Je suis en stage dans une entreprise où j'essaie de proposer un site (enfin surtout pour mon rapport parce que vu mon entreprise je doute que l'entreprise le prenne, mais juste pour moi je veux faire quelque chose de correct !), enfin bref, je ne peux donc avoir accès au fichier php.ini car il semble que ce soit sur un serveur mutualisé( peut-être devrais-je demander plus d'infos à ce sujet ?)
J'ai donc créé mon semblant de site dans le site en quelque sorte ...je ne sais pas si vous me suivez ?
J'ai également essayé de créer un fichier tmp à la racine du site de l'entreprise et à la racine de mon site, mais ça ne fonctionne pas.
J'ai lu que certain expliquait de mettre mon document dans un répertoire descendant du open_basedir, mais je ne comprends pas bien.
D'autres parlent de
Et enfin sur ce site https://www.developpez.net/forums/d220920/php/langage/php-js-include-imbrique-pose-probleme/
il explique la méthode suivante que je n'ai pas compris non plus
P.S. : mon safe_mode de local value est à on
et mon safe_mode de master value est à off
Si quelqu'un pouvait m'expliquer un peu, ça serait sympa, parce que je suis depuis ce matin dessus sans rien de très probant...Merci pour toute l'aide que vous me donnerez.
Ca fasiait longtemps..Environ 3 jours! Lol ! Mais ce n'est aps de ma faute je trouve que vous êtes un excellent forum !
Passons aux chose sérieuses, j'ai construit mon site avec des pseudo-frames et j'ai voulu le sécuriser..Mais je n'y arrive pas comme l'indique le titre de mon message !
J'ai trouvé plusieurs solutions mais j'en ai retenu deux.
La première :
$page = ( isset($_GET['page']) ) ? $_GET['page'] : ''; $path = '/include/'; //dossier d'où dois être inclus le fichier $extension = '.php'; //extension du fichier if ( preg_match("#^[a-z0-9_-]+$#i",$page) ) { $filename = $path.$page.$extension; if ( file_exists(dirname(__FILE__).($filename)) ) { $centre = $filename; } else { $centre = 'acces'; // page d'erreur //echo 'il y a un problème'; } } else { $page = 'formation-opc'; //page par défault $filename = $path.$page.$extension; $centre = $filename; }
Accompagné de
include($centre);dans ma div centre
La deuxième solution :
if (isset ($_GET['page']))//si une page est choisie { $page=htmlentities (basename ($_GET['page']), ENT_QUOTES); $page = str_replace(".","include/",$page); if (file_exists('include/'.$page.'.php') and ($page != 'index')) // et si elle appartient bien au site, et si elle est differente de 'index', pour éviter les boucles infinies... { include('include/'.$page.'.php');// l'inclut ce a quoi elle correspond } else { include('include/acces.php');//sinon, on mets une page par défaut } }
Pour la dernière solution, j'ai la page par défaut qui apparaît.
Pour la première ça me met:
Warning: main() [function.main]: open_basedir restriction in effect. File(/include/formation-opc.php) is not within the allowed path(s): (/usr/local/psa/home/vhosts/agilicom.fr/httpdocs:/tmp) in /usr/local/psa/home/vhosts/agilicom.fr/httpdocs/AGILiCOM/index.php on line 74 Warning: main(/include/formation-opc.php) [function.main]: failed to open stream: Operation not permitted in /usr/local/psa/home/vhosts/agilicom.fr/httpdocs/AGILiCOM/index.php on line 74 Warning: main() [function.include]: Failed opening '/include/formation-opc.php' for inclusion (include_path='.:/usr/local/psa/apache/share/pear') in /usr/local/psa/home/vhosts/agilicom.fr/httpdocs/AGILiCOM/index.php on line 74
Si dans la variable $path je mets :
dirname(__FILE__).'/include/'
ou
'http://www.agilicom.fr/AGILiCOM/include/'
Ca me trouve seulement ma page par défaut
Je suis en stage dans une entreprise où j'essaie de proposer un site (enfin surtout pour mon rapport parce que vu mon entreprise je doute que l'entreprise le prenne, mais juste pour moi je veux faire quelque chose de correct !), enfin bref, je ne peux donc avoir accès au fichier php.ini car il semble que ce soit sur un serveur mutualisé( peut-être devrais-je demander plus d'infos à ce sujet ?)
J'ai donc créé mon semblant de site dans le site en quelque sorte ...je ne sais pas si vous me suivez ?
J'ai également essayé de créer un fichier tmp à la racine du site de l'entreprise et à la racine de mon site, mais ça ne fonctionne pas.
J'ai lu que certain expliquait de mettre mon document dans un répertoire descendant du open_basedir, mais je ne comprends pas bien.
D'autres parlent de
opendir(getcwd() . DIRECTORY_SEPARATOR)mais je ne sais pas où le placer...
Et enfin sur ce site https://www.developpez.net/forums/d220920/php/langage/php-js-include-imbrique-pose-probleme/
il explique la méthode suivante que je n'ai pas compris non plus
define('MAIN_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR);
P.S. : mon safe_mode de local value est à on
et mon safe_mode de master value est à off
Si quelqu'un pouvait m'expliquer un peu, ça serait sympa, parce que je suis depuis ce matin dessus sans rien de très probant...Merci pour toute l'aide que vous me donnerez.
A voir également:
- [PHP]open_basedir restriction in effect
- Restriction instagram - Guide
- Deco in paris avis ✓ - Forum Consommation & Internet
- Navigation in private - Guide
- Aux in ✓ - Forum Enceintes / HiFi
- Peut-on brancher un casque sur une prise auxiliaire ? - Forum Casque et écouteurs
1 réponse
Je tenais à préciser que je connaissais la méthode avec les tableaux et du switch, mais comme je risque d'avoir plus de 100 pages ces solutions ne me conviennent pas.
Quand je fais une echo de $filename ça m'indique /include/formation-introduction-reseaux.php.php
Et ce fichier est bien dans mon dossier include.
Quand je mets :
Ca me met /usr/local/psa/home/vhosts/agilicom.fr/httpdocs/AGILiCOM/include/formation-introduction-reseaux.php.php
et donc j'arrive à avoir la page par défaut mais pas les pages appelées par mon menu qui est inclus dans la page index.php...
Après une bonne nuit de sommeil, je pense être sur la bonne voie...Maintenant reste à trouver le bon chemin pour appeler mes pages dans mon menu inclus dans la page index.php !
Quand je fais une echo de $filename ça m'indique /include/formation-introduction-reseaux.php.php
Et ce fichier est bien dans mon dossier include.
Quand je mets :
$path = dirname(__FILE__).'/include/';
Ca me met /usr/local/psa/home/vhosts/agilicom.fr/httpdocs/AGILiCOM/include/formation-introduction-reseaux.php.php
et donc j'arrive à avoir la page par défaut mais pas les pages appelées par mon menu qui est inclus dans la page index.php...
Après une bonne nuit de sommeil, je pense être sur la bonne voie...Maintenant reste à trouver le bon chemin pour appeler mes pages dans mon menu inclus dans la page index.php !