Problème avec variable (débutant) HELP !

pierrej -  
 YannOuch -
Bonjour,

J'ai un petit problème !

voilà, j'ai un code PHP:
$dir_paste = './clients/membre/KG/';

et je voudrai introduire cette variable à la place de "membre"

<?php echo $_SESSION['membre_pseudo'] ?>


J'ai bien tenté de faire celà:
$dir_paste = './clients/echo $_SESSION['membre_pseudo']/KG/';


Mais ca ne marche pas...

Je suis sur que la solution est toute simple, mais je débute en php et j'en suis au chapitre des variable et supervariable .... et la je bloque... Pouvez-vous m'aider SVP ? :)

13 réponses

Monkey_nhk
 
Montre ton code s'il te plait histoire d'avoir une vue d'ensemble.
pour les session n'oublie pas session start ();
0
pierrej
 
Merci de me répondre ! C'est vraiment cool :)
voilà mon code:

<?php

function copy_dir ($dir2copy,$dir_paste) {

        // On vérifie si $dir2copy est un dossier
        if (is_dir($dir2copy)) {
       
                // Si oui, on l'ouvre
                if ($dh = opendir($dir2copy)) {     

                        // On liste les dossiers et fichiers de $dir2copy
                        while (($file = readdir($dh)) !== false) {
                       
                                // Si le dossier dans lequel on veut coller n'existe pas, on le créé
                                if (!is_dir($dir_paste)) mkdir ($dir_paste, 0777);
                       
                                // S'il s'agit d'un dossier, on relance la fonction récursive
                                if(is_dir($dir2copy.$file) && $file != '..'  && 
$file != '.') copy_dir ( $dir2copy.$file.'/' , $dir_paste.$file.'/' );     
                                // S'il sagit d'un fichier, on le copue simplement
                                elseif($file != '..'  && $file != '.') copy ( $dir2copy.$file , $dir_paste.$file );
                                       
                        }
                       
                // On ferme $dir2copy
                closedir($dh);
          
                }
               
        }       
          
}

$dir2copy = './KG007/';
$dir_paste = './clients/membre/KG/';

// Copie le dossier $dir2copy dans le dossir $dir_paste, inutile de créé les dossiers
copy_dir ($dir2copy,$dir_paste);
?>



Et j'aimerai remplacer "membre" par cette variable:

<?php echo $_SESSION['membre_pseudo'] ?>
0
Monkey_nhk
 

...

$mbr  =$_SESSION['membre_pseudo'];

$dir2copy = './KG007/';
$dir_paste = './clients/'.$mbr.'/KG/';

// Copie le dossier $dir2copy dans le dossir $dir_paste, inutile de créé les dossiers
copy_dir ($dir2copy,$dir_paste);
?>
...



a tester mais pas sur.
0
pierrej
 
ok je teste et je te redit ! :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pierrej
 
le code passe sans problème, mais il ne créer pas le dossier "KG" comme prévu :/

Je pense qu'il doit y avoir un problème avec /'.$mbr.'/, car il doit comprendre /'lenomdumembre'/ hors, il doit comprendre /lenomdumembre/ sans les " ' "
0
vinc
 
Tu n'as pas l'air très clair dans ta tête sur ce que tu veux faire exactement, du coup on comprend mal de notre coté (enfin moi j'avais rien compris au début)

Essaie ça directement :
$dir_paste = './clients/'.$_SESSION['membre_pseudo'].'/KG/';

Pour ta question, les chaines sont concaténées mais les quotes ne sont pas inclus dedans, tu devrait rechercher un tutoriel sur la manipulation de chaine, et tester ce que ça donne en l'affichant tout simplement, ce sera probablement plus clair pour toi par la suite
0
pierrej
 
merci de ta réponse, enfaite, je suis claire dans ma tête sur ce que je veux faire, en revanche, je manque énormément de vocabulaire pour me faire comprendre clairement !

je test ca ! merci encore ! :)
0
pierrej
 
non ... rien à faire , le code passe très bien, mais il ne fait pas ce que je veux...
0
pierrej
 
peut être que je n'ai pas été claire... Je voudrai que le code copi le dossier KG007 et le colle dans ce répertoire: /clients/nomdumembre/ en créant un nouveau dossier qui va s'appeler KG... c'est bien ce que fait mon code ? non ?

je sèche là :/
0
pierrej
 
ce code est il correct ?

$dir_paste = './'.$_SESSION['membre_pseudo'].'/KG/'; 


pouvez-vous me dire ce que php va comprendre avec ce code ?
0
vinc
 
pour savoir ce que ça donne fait
 echo $dir_paste ;
0
pierrej
 
JE NE COMPREND PAS ! j'ai utilisé echo et le code est bon pourtant ! Mais je n'y arrive pas ! :(
le fichier ne veut pas se générer dans le répertoire "session ['membre_pseudo'] "!
0
vinc
 
Il doit y avoir un problème dans ta fonction copy_dir, si les paramètres sont corrects

identifie exactement ce qui cloche, en affichant tes variables à chaque étape (ou à l'aide d'un débugeur), puis on sera en mesure de t'aider
0
pierrej
 
Personne ne peu m'aider ?
0
le père
 
Bonsoir

Ajoute l'instruction error_reporting(E_ALL); au début de ton script. Il t'affichera très probablement un warning au niveau du mkdir qui t'aidera à comprendre.

si './'.$_SESSION['membre_pseudo'] existe déjà, il n'a peut-être pas les bons droits (d'ailleurs, c'est './'.$_SESSION['membre_pseudo'] ou './clients/'.$_SESSION['membre_pseudo'] ?)

S'il n'existe pas déjà, c'est normal que mkdir ne marche pas : mkdir ne crée pas deux niveaux de sous-répertoire à la fois. Il faut créer d'abord './clients/'.$_SESSION['membre_pseudo'], puis './clients/'.$_SESSION['membre_pseudo'].'/KG/'

Remarque : pourquoi tester if (!is_dir($dir_paste)) à l'intérieur du while ? C'est une perte de temps : une seule fois avant le while suffit. $dir_paste ne vas pas apparaître et disparaître entre deux fichiers
0
YannOuch
 
Salut pourquoi ne pas faire comme tu l'as dis toi même :

$dir_paste = './clients/<?php echo $_SESSION['membre_pseudo'] ?>/KG/';

Non ?
0
le père
 
Bonjour

Parce que c'est sûr que ça ne marche pas. Tu ne vas pas ouvrir une balise <?php alors que tu es déjà en php ! D'ailleurs, à l'endroit où tu le mets, ça n'ouvre même pas de balise php, ça insère juste une chaîne qui se termine en parse_error.
0
YannOuch
 
Ôui oops ! Pas tilté !

<?php
$id=$HTTP_SESSION_VARS['membre_pseudo'];
Pour ta session membre, donc $id (ou autre .. ) pour ton fichier.
Ensuite tes requêtes sql pour récupérer ce fichier.

$id=$HTTP_SESSION_VARS['membre_pseudo'];
if (is_numeric($id)) {
$$dir_paste=intval($id);
$sql=mysql_query("SELECT * FROM blabla WHERE fid=$id"); // pour ton fichier
}
else {
@$sql=mysql_query("SELECT * FROM blabla WHERE doss='$doss'") or die("erreur");
}
if(!mysql_num_rows($sql))
{
echo " ";
?>

à tester
0