Récupérer une variable [ ! ]

Petit nouveau ! | 8 Messages

04 juin 2005, 15:25

Bonjour à tous,

J'aimerais pouvoir récupérer la variable d'un script afin d'afficher une donnée particulière : prendre cette donnée " $dossier " elle meme liée à "DOCUMENT_ROOT" et pouvoir l'afficher sur une page. :/

En gros ce que je veux faire => récupérer la variable de destination de dossier et la ré-afficher.

Voici le script :

-----------------------------------------------------------------------------------------------
<?php

$new_dir='';
$nodircreate=false;
//on commence les tests par la creation de dossier
//si un dossier est créé il est ainsi tout de suite pris en compte pour la suite
if (!empty($_POST['folderacreer']))
{

    //nettoyage du nom de dossier
    $new_dir= cleanStr($_POST['folderacreer']);

    if (file_exists($DirUpload.$new_dir))
    {
        //le dossier existe déjà :
        $message_dir='Le dossier <b>'.$new_dir.'</b> existe déjà<br>';
        //il est pris en compte pour la suite
        $DirUpload =$DirUpload.CleanStr($_POST['folderacreer']);
        //message qui sera affiché si le dossier n'est pas accessible en écriture
        //en effet le script va être stoppé
        $new_dir_noright="<br>Vous avez tenté de créer un dossier qui existe déjà !<br>";
    }

    else

    {
        //création du dossier :
        if(@mkdir($DirUpload.$new_dir))
        {
            $message_dir='Création du dossier <b>'.$new_dir.'</b>.<br>';
            echo "<script language=\"javascript\">";
            echo "parent.tree.window.location.href=parent.tree.window.location.href;";
            echo "</script>";
            //il est pris en compte pour la suite
            $DirUpload =AddLastSlashes($DirUpload.CleanStr($_POST['folderacreer']));
            // il est inscrit dans le fichier up.php pour le rendre accessible en écriture

            $filetoup = AddLastSlashes(dirname(__FILE__)).'up.php';
            $fp = fopen($filetoup,"r");
            $OldData = fread($fp,80000);
            fclose($fp);

            $Input = '/'.ereg_replace($CONFIG['DOCUMENT_ROOT'],'',$DirUpload)."\r\n";
            $New = $OldData.$Input;
            $fp = fopen($filetoup,"w+");
            fwrite($fp, $New, 80000);
            fclose( $fp );
        }
        else
        {
            //le dossier n'existe pas et il n'a pu être créé, on va stopper les transferts de fichiers
            $nodircreate=true;
        }
    }
}
else
{
    //récupération du dossier dans l'url
    //$DirUpload = $_GET['DirUpload'];
    $DirUpload = $_SESSION['DirUpload'];
}





$all=false;
$new_dir_noright='';
$filetoup = AddLastSlashes(dirname(__FILE__)).'/up.php';
$filelisttoup = file($filetoup);

$output = array();
while(list($k,$v) = each($filelisttoup))
{
    $v = trim($v);
    if(empty($v)) continue;
    if($v[0] == "<") continue;
    if($v[0] == "#") continue;
    $output[] = $v;
}
//si * est inscrit dans le fichier on initialise la valeur $all qui indique que tous les dossiers sont accessible en ecriture
if (in_array ("*", $output)) {
    $all=true;
}

//on récupère le nom du dossier et on reconstruit la requete url pour l'affichage des liens vers le dossier

$dossier = ereg_replace($CONFIG['DOCUMENT_ROOT'],'',$DirUpload);
$explodePath = explode('/',$dossier);
$query = http_build_query($explodePath,'');
unset($explodePath);

/*
*affichage du formulaire si une des conditions suivantes est réunie :
*le dossier est inscrit dans le fichier up.php
*tous les dossiers sont autorisés en écriture
*c'est l'administrateur qui est connecté
*/
if (parseListToHide($filelisttoup,RemoveLastSlashes($DirUpload),$CONFIG) || $all || CheckAuth('auth/auth.inc.php')===1)
{


    //si le dossier ne fait pas partie de l'arborescence du site le script est stoppé
    if (!ereg($CONFIG['DOCUMENT_ROOT'],$DirUpload))
    die('<table border="0" height="300" valign ="center" align="center"><tr><td><font size=2 color=red><b>-ERREUR ! -</b>Le dossier de destination est mal configuré</font></td></tr></table>');


    //construction de l'affichage de la configureation du script
    $string_config = ' <p align=center>CONFIGURATION</p>';
    if (empty($dossier))
    $dossier = 'racine du site';
    $string_config .= '<p align="left"> - Dossier de destination : <b><a href="../list.php?'.$query.'">'.$dossier.'</a></b><br>';
    if (!empty($Extension))
    $string_config.=' - Liste des extensions autorisées : <b>'.$Extension.'</b><br>';
    if (!empty($MimeType))
    $string_config.=' - Liste des types Mimes autorisés : <b>'.$MimeType.'</b><br>';
    if (!empty($Extension_renamed))
    $string_config.=' - Liste des extensions qui seront renommées : <b>'.$Extension_renamed.'</b><br>';
    if (!empty($SuffExtension))
    $string_config.=' - Suffixe ajoutée aux extensions renommées: <b>'.$SuffExtension.'</b><br>';
    if (!empty($Filename))
    $string_config.=' - Les fichiers seront renommés en : <b>'.$Filename.'</b><br>';
    if (!empty($Prefixe))
    $string_config.=' - Prefixe ajoutée aux noms de fichier: <b>'.$Prefixe.'</b><br>';
    if (!empty($Suffixe))
    $string_config.=' - Suffixe ajoutée aux noms de fichier: <b>'.$Suffixe.'</b><br>';
    $string_config.=' - Poids maximum autorisé : <b>'.$MaxFilesize.' ko</b><br>';
    if (!empty($ImgMaxWidth) || !empty($ImgMaxHeight) || !empty($ImgMinWidth) || !empty($ImgMinHeight))
    $string_config.=' - <b>restrictions pour les images</b>(en pixels) :<br>';
    if (!empty($ImgMaxWidth))
    $string_config.=' - Largeur maximum : <b>'.$ImgMaxWidth.'</b><br>';
    if (!empty($ImgMaxHeight))
    $string_config.=' - Hauteur maximum : <b>'.$ImgMaxHeight.'</b><br>';
    if (!empty($ImgMinWidth))
    $string_config.=' - Largeur minimum : <b>'.$ImgMinWidth.'</b><br>';
    if (!empty($ImgMinHeight))
    $string_config.=' - Hauteur minimum : <b>'.$ImgMinHeight.'</b><br>';
    if ($Resize)
    $string_config.=' - Les images trop grandes seront redimensionnées<br>';
    $string_config.='</p>';


    if (!empty($_POST['submit']) && !$nodircreate) {
        //si on a appuyé sur envoi et qu'il n'ya pas eu de souci avec la création de dossier on lance les fonctions d'upload
        Execute();

    }
    //initialistaion du formulaire
    // =création des différents champs <input file> dans le tableau $Fields
    InitForm();

?>
-----------------------------------------------------------------------------------------------

Et l'echo d'affichage :

-----------------------------------------------------------------------------------------------

<?php
echo "$dossier " ?>

-----------------------------------------------------------------------------------------------

J'ai beau tourner dans tout les sens je n'y arrive pas ; merci de me renseigner si vous savez le temps, çà me permettra de mettre un 1er pieds dans le php .

Très bonne journée à tous !

Mammouth du PHP | 19672 Messages

04 juin 2005, 15:31

moderation J'ai édité pour baliser le code: Utilisez le bouton [ PHP ] pour envoyer du code.

Deux chose, avec une indentation en plus, tu devrais remarquer qu'il manque quelque chose en bas de ton script.

À bannir en développement : @mkdir
Ça masque peut-être les erreurs, mais pour débugguer un script, on a précisément besoin de voir ces erreurs.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Petit nouveau ! | 8 Messages

05 juin 2005, 11:28

(Ok, désolé ; c'est la 1ère fois que j'ose venir ici..).

Simplement pouvoir réafficher par un écho ce $dossier qui correspond au dossier "ROOT", pour se faire il faut que je déclare cette variable entant que tel, simplement.. mais je n'arrive pas à prendre ce qui est nécessaire dans le script.

Si tu veux là j'ai un script d'explorateur FTP, et j'aimerais juste pouvoir afficher où se trouve la personne connecté : qu'elle sache à tout moment qu'elle est sur le dossier XXX ou YYY du FTP ; tu vois à peu près ?

Merci d'avance :/