Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/06/2011, 17h30   #1
Invité de passage
 
Inscription : mai 2011
Messages : 7
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 7
Points : 2
Points : 2
Par défaut Problème avec une variable

Bonjour à tous !
Je suis débutant et je n'arrive pas à insérer une variable dans mon code !
Je vous montre, vous allez mieux comprendre...
voilà mon code:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?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:

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

En gros ça donnerait quelque chose comme:
Code :
1
2
 
$dir_paste = './'.$_SESSION['membre_pseudo'].'/KG/';

seulement ca ne marche pas ... :/
A l'aide !!!
pierrej6161 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 18h18   #2
Membre du Club
 
Maxime
Inscription : décembre 2009
Messages : 85
Détails du profil
Informations personnelles :
Nom : Maxime
Âge : 23
Localisation : France, Vienne (Poitou Charente)

Informations forums :
Inscription : décembre 2009
Messages : 85
Points : 56
Points : 56
Bonjour,

Es-tu sure que ta variable de session est bien définie ?
Pour vérifier fait un echo de ta variable.

Es-tu sure que ta session est bien démarrée, c'est à dire que ton fichier commence par :
Code :
1
2
<?php
session_start();
As-tu essayé en définissant une variable à la main par exemple au début du fichier tu mets :
et après tu insère $pseudo au lieu de $_SESSION['membre_pseudo']
oOXimOo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 18h22   #3
Invité de passage
 
Inscription : mai 2011
Messages : 7
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 7
Points : 2
Points : 2
Merci de me répondre !

Oui j'ai déjà utilisé echo pour voir si php execute bien ce que je veux... et c'est la cas :s

Pour ton idée de définir une variable à la main, j'ai déjà tenté aussi... Mais ça ne marche toujours pas...

Et enfin, pour session_start() ... il m'indique une erreur du style:

"Parse error: syntax error, unexpected T_VARIABLE in compte/vue/clients/etape1.php on line 47"
pierrej6161 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 18h32   #4
Membre du Club
 
Maxime
Inscription : décembre 2009
Messages : 85
Détails du profil
Informations personnelles :
Nom : Maxime
Âge : 23
Localisation : France, Vienne (Poitou Charente)

Informations forums :
Inscription : décembre 2009
Messages : 85
Points : 56
Points : 56
Il semblerait que cette erreur n'ai rien à voir avec le session_start.
Que contient ta ligne 47 de compte/vue/clients/etape1.php ?

Si avec une variable définie manuellement cela ne fonctionne pas non plus, dans ce cas le problème ne vient pas de la session mais de la fonction.
As-tu essayé de créer le dossier de destination avant de copier dedans ? en ajoutant ceci au début de ta fonction :
oOXimOo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 18h48   #5
Invité de passage
 
Inscription : mai 2011
Messages : 7
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 7
Points : 2
Points : 2
Bon, j'ai nettoyé mon code et session start passe maintenant! mais le code ne fonctionne pas, je te le montre,tu peux me dire si tu voie une erreur ?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php
 
session_start();
 
 
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 = './KG1/';
$dir_paste = './'.$_SESSION["membre_pseudo"].'/KG/'; 
 
// Copie le dossier $dir2copy dans le dossir $dir_paste, inutile de créé les dossiers
copy_dir ($dir2copy,$dir_paste);
?>
<strong></strong>
pierrej6161 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 19h02   #6
Invité de passage
 
Inscription : mai 2011
Messages : 7
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 7
Points : 2
Points : 2
je viens juste de remarquer, que le php ne tenait pas compte de ma variable $_session mais pourquoi ?
pierrej6161 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2011, 19h03   #7
Membre du Club
 
Maxime
Inscription : décembre 2009
Messages : 85
Détails du profil
Informations personnelles :
Nom : Maxime
Âge : 23
Localisation : France, Vienne (Poitou Charente)

Informations forums :
Inscription : décembre 2009
Messages : 85
Points : 56
Points : 56
Juste après cette ligne :
Code :
function copy_dir ($dir2copy,$dir_paste) {
Ajoute ceci :
Code :
var_dump(is_dir($dir2copy));
Si ca te retourne false tu as ta réponse, la fonction n'est pas exécutée.
Pour remédier à cela, il faut utiliser les chemins relatifs comme ceci :
Code :
1
2
$dir2copy = dirname(__FILE__).'/KG1/';
$dir_paste = dirname(__FILE__).'/'.$_SESSION["membre_pseudo"].'/KG/';
(pour vérifier que ces chemins soient bons, n'hésite pas à faire des echo).
oOXimOo est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 06/06/2011, 19h10   #8
Invité de passage
 
Inscription : mai 2011
Messages : 7
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 7
Points : 2
Points : 2
rolala... tu es un dieu ! Ou du moins un vrai pro ! Tu me laisse finir ma journée l’épris tranquille !

UN GRAND MERCI ! et UN GRAND BRAVO ! CAR LE CODE FONCTIONNE !!!!!
pierrej6161 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h20.


 
 
 
 
Partenaires

Hébergement Web