Lister un dossier en fonction du login

Bonjour à tous,

J’ai actuellement une page php qui est comme ceci :

<?
require("protec/passe/conf.php3");
$db_link = mysql_connect($sql_serveur,$sql_user,$sql_passwd);

// SELECTION DE L'ENREGISTREMENT CONTENANT L'ID EN COURS
$requete=mysql_db_query($sql_bdd,"select * from membre where id=\"$id\"",$db_link);

// SI L'ID N'EXISTE PAS
if(mysql_num_rows($requete)==0)
	{
	header("Location:$url_erreur");
	}
	
?>
</head>
<body>
<div id="menu_principal">
  <div id="menu_conteneur"> </div>
</div>
<div id="general">
  <div id="general_conteneur">
    <div id="gauche"> </div>
    <div id="droite">
    </div>
    <div id="centre">
      <?php
		  $path = basename($_SERVER['SCRIPT_NAME'],".php3");
		   {
echo '<h2>Bienvenue '.str_replace ('_', ' ', $path).' sur votre espace personnel</h2>';
	   }
	  ?>
</p>
<table width="100%" border="0">
  <tr>
    <td><div align="center">
      <p>  </p>
      <p>
      </p>
    </div></td>
  </tr>
</table>
<p>  </p>
<p align="left">Vos factures sont class&eacute;es de la plus r&eacute;cente &agrave; la plus ancienne. Elles sont au format PDF. Si vous ne disposez pas d'Adobe Acrobat Reader pour les ouvrir et les imprimer, vous pouvez le t&eacute;l&eacute;charger gratuitement <a href="http://www.adobe.com/fr/products/acrobat/readstep2.html" target="_blank">ici</a>.</p>
<p align="left" class="important"> </p>
<p align="left" class="important"> </p>
<p align="left" class="important"> </p>
<table cellpadding="3" cellspacing="1" class="particuliers">
  <tr>
    <th scope="col">Vos factures<br /></th>
    <th scope="col">Date de mise en ligne<br />
    <th scope="col">Taille du fichier<br /></th>
  </tr>
  <?php
//Guillaume ROBERT pour le site Zerobug
//http://www.zerobug.fr
//Script permettant de lister tous les fichiers PDF d'un répertoire
//dans un tableau et créant automatiquement des liens de 
//téléchargement. Le fichier PDF ne s'ouvre donc pas par défaut 
//dans le navigateur mais l'utilisateur aura le choix entre l'ouvrir
//et le télécharger sur son disque dur

function listing($dir)
{
 $pdf_files = array();
 $dh = opendir($dir);

 while (false !== ($filename = readdir($dh)))
 {
 if(strtolower(strrchr($filename, '.')) == '.pdf')
 $pdf_files[] = $filename;
 elseif(strtolower(strrchr($filename, '.')) == '.zip')
 $pdf_files[] = $filename;
 }
 
 rsort($pdf_files);

$sommepoids = "";

 foreach($pdf_files as $pdf_file)
 {



	
	/* à partir de là, on créé le lien forçant le
	//téléchargement du fichier PDF
	//Pour cela, il vous faudra créer dans chaque répertoire à lister
	//un fichier php (ici nommé down.php) composé comme ceci :
	//<? 
    //header("Content-type: application/pdf"); 
    //header("Content-Disposition: attachment; filename=$pdf"); 
    //readfile($pdf); 
    //?> */
	$poidsdufichier = round(filesize($dir."/".$pdf_file)/1024,2);
$sommepoids += $poidsdufichier;
			echo '<tr>
          <td><p align="center"><a href="'.rawurlencode($dir).'/down.php?pdf='.rawurlencode(str_replace ('/', '', $pdf_file)).'">'.$pdf_file.'</a></p></td>
        <td><p align="center">'.date ("d/m/Y", filectime($dir."/".$pdf_file)).'</p></td><td><p align="center">'.round(filesize($dir."/".$pdf_file)/1024,2) .'Ko</p></td>
        </tr>';
	}
	echo '<p>'.count($pdf_files).' fichier(s) disponible(s) pour un poids total de '.$sommepoids.' Ko</p>';
	 }
	  

listing($path);
$urlComplete= rawurlencode(str_replace ('/', '', $value));

?>
</table>
</div>
</div>
</div>
</body>
</html>

Chaque client a sa propre page du type prenom_nom.php3. Chaque page est identique, seul son nom change car grâce au nom du fichier php3, je liste les fichiers qui sont dans le dossier prenom_nom ( $path = basename($_SERVER[‘SCRIPT_NAME’],".php3");).

Je souhaiterai remodifier ça afin de n’avoir plus q’une seule page php3 qui se serve du login du client ($pseudo) pour lister le fichier. J’ai essayé, mais pas assez doué en php pour y arriver.

Est-ce que quelqu’un pourrait me donner un coup de main pour y arriver ?
Edité le 24/01/2009 à 18:59

$requete=mysql_db_query($sql_bdd,“select * from membre where id=”$id"",$db_link);

Après ta requête tu met tout ca en forme :

$tab=mysql_fetch_array($requete);

et a la place de

echo '<h2>Bienvenue '.str_replace ('_', ' ', $path).' sur votre espace personnel</h2>';

Tu mets

echo '<h2>Bienvenue '.$tab["nom"].' '.$tab["prenom"].'  sur votre espace personnel</h2>';

Sachant que nom et prénom sont les noms des colonnes de ta base de données qui désigne le nom et le prénom

Si tu comprends pas dit le :slight_smile:

Salut,

Pourquoi tu ne mets pas en base les nom et prenom des utilisateurs?

Ce n’est pas tellement pour ça que j’ai besoin d’aide, mais surtout histoire de lister le répertoire du login.
Si par exemple, le login de la personne est criters, qu’il liste le répertoire criters automatiquement.

tu ne peux pas faire simplement scandir ( ‘/’.$login) ?

Je mets ce code où ? Je ne suis pas doué en PHP.

Genre ton basar :

function listing($dir, $login)
{
$path = $dir . DIRECTORY_SEPARATOR . $login;
if (!file_exists($path) || is_directory($path)) {
  die($path . ' n\'pas un dossier');
}
$dh = opendir($file);


listing($path, ‘foobar’);[/code]

Avec ton code Sans-Nom, j’ai cette erreur :

/foobar n’pas un dossier

mea culpa : if (!file_exists($path) || !is_directory($path)) {

Toujours la même erreur malheureusement.

vu le path, ce n’est pas étonnant => /foobar = rechercher le dossier foobar à la racine du disque… = niet

foobar indique le dossier dans lequel rechercher ?