Problème de variable ( SESSION )

Résolu/Fermé
killermano66 Messages postés 233 Date d'inscription jeudi 17 janvier 2008 Statut Membre Dernière intervention 25 novembre 2010 - 3 mars 2009 à 10:33
killermano66 Messages postés 233 Date d'inscription jeudi 17 janvier 2008 Statut Membre Dernière intervention 25 novembre 2010 - 3 mars 2009 à 11:01
Salut à tous,

J'ai un petit soucis au niveau des session, je vous met le code de mon formulaire ici :

<?php
session_start();
//Si les variables existent
if (isset($_POST['login']) AND (isset($_POST['psw']))) { 
    //On stocke les valeurs entrées dans le formulaire à l'interieur de variable $login et $pwd
    $login = $_POST['login'];    
    $psw = $_POST['psw'];
    $_SESSION['login']=$_POST['login'];
}
?>

<html>
<head>
<title>STID.PERP-UNIV Carcassonne</title>
</head>
<body>
<fieldset><legend>Authentification</legend>
<form action="recup_donnees.php" method="post">
<h4>Login</h4>
<input type="text autocomplete='off'" name="login" /><br />
<h4>Mot de passe</h4>
<input type="password autocomplete='off'" name="psw" /><br />
<input type="submit" value="Validez" />
</fieldset>
</form></body>
</html>


Donc celui ci transmet des variable par la méthode POST à la page recup_donnees.php et les stocke login dans une variable de session. Rien de compliqué. Le problème surgit sur la page recup_donnees.php. J'arrive a afficher sans soucis le contenu du champ login de mon formulaire grâce à cette ligne :

echo $_SESSION['login'];

je stocke ensuite cette ligne dans une variable $login comme ceci :
$_SESSION['login']=$_POST['login'];
$login = $_SESSION['login'];

La page récup donnée.php est censé gérer dynamiquement les dossiers/fichiers des membres, je dois dont injecter dans mes url la variable $login, mais celle-ci n'est pas prise en compte dans ce cas là.

Je vous la partie du code de la page qui sempble poser soucis :

<?php
session_start();
$_SESSION['login']=$_POST['login'];
$login = $_SESSION['login'];

echo "<b>Vous êtes identifié sous :</b> ";
echo $_SESSION['login']; // Jusqu'ici ça fonctionne
echo ('<br />+ <a href="deconection.php">Deconnection</a><br /><br />');

//----------------------------------------------------------------------------------------------------
// Liste le contenue de P
//----------------------------------------------------------------------------------------------------
echo ('<fieldset><legend><b>Contenue de votre lecteur P: </b></legend><br />');
echo '<table align="center">';
//Private
$nb_fichier = 0;
if($dossier = @opendir('./home/$login/P/Private/')) // c'est ici que ça ne fonctionne pas
{
echo '<tr><td>';
echo ('<fieldset><legend><b>Private</b></legend><br />');
echo ('+ <a href="create_dossierP.php" alt="Créer un nouveau dossier">Créer des nouveaux dossiers</a><br />');
echo ('+ <a href="ajouterPprivate.php" alt="Uploader un fichier dans P">Uploader des fichier</a><br />');
echo ('+ <a href="supressionP.php" alt="Supprimer des fichiers dans P">Supprimer des fichiers</a><br /><br />');
while(false !== ($fichier = readdir($dossier)))
{
if($fichier != '.' && $fichier != '..' && $fichier != 'index.php')
{
$nb_fichier++; //On incrémente le compteur de un
echo '<li><a href="./home/marchann/P/Private/' . $fichier . '">' . $fichier . '</a></li>';
} //if
 
} //boucle
echo '<br />';
echo 'Il y a <strong>' . $nb_fichier .'</strong> fichier(s)/dossier(s) dans <b>P/Private/</b></fieldset><br /><br />';
 
closedir($dossier); 
} 
else{
echo 'Le dossier n\' a pas pu être ouvert</fieldset>';
echo '</td>';
}


Voilà, c'est cette ligne qui m'ennuis :
if($dossier = @opendir('./home/$login/P/Private/'))
Quand je lui injecte la variable login, elle ne la prend pas en compte et donc rien ne fonctionne. En revanche si j'y met un utilisateur en dur :

if($dossier = @opendir('./home/toto/P/Private/'))
Là, ça fonctionne nikel.

Si quelqu'un à une idée. Merci d'avance.

Cordialement,

2 réponses

Archeus01 Messages postés 1571 Date d'inscription mercredi 3 octobre 2007 Statut Membre Dernière intervention 9 juin 2022 452
3 mars 2009 à 10:36
ben ouai les ' n'interpètent pas donc si tu fais
$a = 1;
echo '$a'; //Affiche $a
echo "$a"; //Affiche 1


donc toi tu fais
if($dossier = @opendir("./home/$login/P/Private/"))
ou mieux : if($dossier = @opendir('./home/'.$login.'/P/Private/'))

et n'oublie pas de mettre le sujet en résolu ^^
1
killermano66 Messages postés 233 Date d'inscription jeudi 17 janvier 2008 Statut Membre Dernière intervention 25 novembre 2010 41
3 mars 2009 à 11:01
Ok, merci je ne savais pas que les '' n'interpréttait pas les variables.

Merci de ton aide à bientôt.
0