Probleme realpath

Eléphanteau du PHP | 36 Messages

01 nov. 2008, 23:05

Bonjour,

Voilà j'ai un souci avec une erreur quand je crée un repertoire a partir de mon admin

Voici l'erreur:

Warnim: realpath() has been disabled for security reasons

et voici la ligne concerner:

$filename = realpath("../menu.xml");

J'ai comprit que realpath n'es pas utiliser pour des raison de securité mais comment remplacer le probleme SVp

Merci d'avance

Mammouth du PHP | 959 Messages

02 nov. 2008, 00:15

A mon avis si cette fonction a été désactivée pour des raisons de sécurités c'est pas pour rien...

Sinon regarde du côté de la variable d'environnement $_SERVER

Plus particulièrement DOCUMENT_ROOT, PATH_INFO, PATH_TRANSLATED et REQUEST_URI.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

02 nov. 2008, 01:14

Bonjour,

Question : A quoi te sert cette fonction?
Si tu la retires ton script ne fonctionne plus?
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 36 Messages

02 nov. 2008, 01:17

Re

Merci pour ta reponse alors j'ai modifier ma fonction et je me retouve avec une autre erreur

Fatal error: Call to undefined method xmlParser::parse() in /home/ordipassion/domains/ordi-passion_com/www/test/admin/page_galleries.php on line 12
<?php
require dirname(__FILE__).'/includes/functions.php';

//this var is used in header.php
//used in the javascript for dragging the <li> tags
$list = "gallery";

require dirname(__FILE__).'/includes/header.php';

// get menu.xml file
$p =& new xmlParser();
$p->parse('../menu.xml');
$galleries = isset($p->output[0]['child']) ? $p->output[0]['child'] : array();
Ma fonction $path
function myRealPath($path) {

    // check if path begins with "/" ie. is absolute
    // if it isnt concat with script path
    if (strpos($path,"/") !== 0) {
        $base=dirname($_SERVER['SCRIPT_FILENAME']);
        $path=$base."/".$path;
    }
 
    // canonicalize
    $path=explode('/', $path);
    $newpath=array();
    for ($i=0; $i<sizeof($path); $i++) {
        if ($path[$i]==='' || $path[$i]==='.') continue;
           if ($path[$i]==='..') {
              array_pop($newpath);
              continue;
        }
        array_push($newpath, $path[$i]);
    }
    $finalpath="/".implode('/', $newpath);

    // check then return valid path or filename
    if (file_exists($finalpath)) {
        return ($finalpath);
    }
    else return FALSE;
}
Merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

02 nov. 2008, 13:44

1. Lire le message d'erreur :
Fatal error: Call to undefined method xmlParser::parse() in /home/ordipassion/domains/ordi-passion_com/www/test/admin/page_galleries.php on line 12
2. Comprendre le message d'erreur :
Erreur Fatale, ligne 12 du fichier page_galleries.php. Le script tente d'appeler une méthode inexistante xmlParser::parse().

3. Corriger l'erreur :
Ajouter la méthode parse() dans la classe xmlParser, ou modifier l'appel en spécifiant le nom d'une méthode qui existe

Après j'ai pas du tout regardé ta fonction myRealPath(), mais une fois les corrections effectuées, PHP se chargera de t'informer, et de te dire précisément ce qui ne va pas, s'il rencontre d'autres problèmes. Suffit juste de l'écouter.... :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...