Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1263 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Lister un dossier en fonction du login

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Lister un dossier en fonction du login

n°1842609
hyperion66
Posté le 24-01-2009 à 20:32:49  profilanswer
 

Bonjour à tous,
 
J'ai actuellement une page php qui est comme ceci :
 

Code :
  1. <?
  2. require("protec/passe/conf.php3" );
  3. $db_link = mysql_connect($sql_serveur,$sql_user,$sql_passwd);
  4. // SELECTION DE L'ENREGISTREMENT CONTENANT L'ID EN COURS
  5. $requete=mysql_db_query($sql_bdd,"select * from membre where id=\"$id\"",$db_link);
  6. // SI L'ID N'EXISTE PAS
  7. if(mysql_num_rows($requete)==0)
  8. {
  9. header("Location:$url_erreur" );
  10. }
  11. ?>
  12. </head>
  13. <body>
  14. <div id="menu_principal">
  15.   <div id="menu_conteneur"> </div>
  16. </div>
  17. <div id="general">
  18.   <div id="general_conteneur">
  19.     <div id="gauche"> </div>
  20.     <div id="droite">
  21.     </div>
  22.     <div id="centre">
  23.       <?php
  24.    $path = basename($_SERVER['SCRIPT_NAME'],".php3" );
  25.     {
  26. echo '<h2>Bienvenue '.str_replace ('_', ' ', $path).' sur votre espace personnel</h2>';
  27.    }
  28.   ?>
  29. </p>
  30. <table width="100%" border="0">
  31.   <tr>
  32.     <td><div align="center">
  33.       <p>&nbsp; </p>
  34.       <p>
  35.       </p>
  36.     </div></td>
  37.   </tr>
  38. </table>
  39. <p>&nbsp; </p>
  40. <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>
  41. <p align="left" class="important">&nbsp;</p>
  42. <p align="left" class="important">&nbsp;</p>
  43. <p align="left" class="important">&nbsp;</p>
  44. <table cellpadding="3" cellspacing="1" class="particuliers">
  45.   <tr>
  46.     <th scope="col">Vos factures<br /></th>
  47.     <th scope="col">Date de mise en ligne<br />
  48.     <th scope="col">Taille du fichier<br /></th>
  49.   </tr>
  50.   <?php
  51. //Guillaume ROBERT pour le site Zerobug
  52. //http://www.zerobug.fr
  53. //Script permettant de lister tous les fichiers PDF d'un répertoire
  54. //dans un tableau et créant automatiquement des liens de  
  55. //téléchargement. Le fichier PDF ne s'ouvre donc pas par défaut  
  56. //dans le navigateur mais l'utilisateur aura le choix entre l'ouvrir
  57. //et le télécharger sur son disque dur
  58. function listing($dir)
  59. {
  60. $pdf_files = array();
  61. $dh = opendir($dir);
  62. while (false !== ($filename = readdir($dh)))
  63. {
  64. if(strtolower(strrchr($filename, '.')) == '.pdf')
  65. $pdf_files[] = $filename;
  66. elseif(strtolower(strrchr($filename, '.')) == '.zip')
  67. $pdf_files[] = $filename;
  68. }
  69. rsort($pdf_files);
  70. $sommepoids = "";
  71. foreach($pdf_files as $pdf_file)
  72. {
  73. /* à partir de là, on créé le lien forçant le
  74. //téléchargement du fichier PDF
  75. //Pour cela, il vous faudra créer dans chaque répertoire à lister
  76. //un fichier php (ici nommé down.php) composé comme ceci :
  77. //<?  
  78.     //header("Content-type: application/pdf" );  
  79.     //header("Content-Disposition: attachment; filename=$pdf" );  
  80.     //readfile($pdf);  
  81.     //?> */
  82. $poidsdufichier = round(filesize($dir."/".$pdf_file)/1024,2);
  83. $sommepoids += $poidsdufichier;
  84.   echo '<tr>
  85.           <td><p align="center"><a href="'.rawurlencode($dir).'/down.php?pdf='.rawurlencode(str_replace ('/', '', $pdf_file)).'">'.$pdf_file.'</a></p></td>
  86.         <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>
  87.         </tr>';
  88. }
  89. echo '<p>'.count($pdf_files).' fichier(s) disponible(s) pour un poids total de '.$sommepoids.' Ko</p>';
  90.  }
  91.  
  92. listing($path);
  93. $urlComplete= rawurlencode(str_replace ('/', '', $value));
  94. ?>
  95. </table>
  96. </div>
  97. </div>
  98. </div>
  99. </body>
  100. </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 ?


---------------
MATOS VELO - Club Strava Matos Vélo
mood
Publicité
Posté le 24-01-2009 à 20:32:49  profilanswer
 

n°1842627
superbob56
Posté le 24-01-2009 à 23:00:02  profilanswer
 

hyperion66 a écrit :

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.

Euh ... qu'est ce qui t'empêche de faire $path = $pseudo ?
Si ça te génère une erreur, quelle est elle ?


---------------
By bob.
n°1842628
hyperion66
Posté le 24-01-2009 à 23:13:10  profilanswer
 

Il me met une erreur dans ce cas au niveau de la ligne 67.


---------------
MATOS VELO - Club Strava Matos Vélo
n°1842658
Profil sup​primé
Posté le 25-01-2009 à 10:11:49  answer
 

c'est à dire ? quel message d'erreur ?

n°1842711
hyperion66
Posté le 25-01-2009 à 12:52:01  profilanswer
 

Je ne sais plus. Je retesterai ce soir et je vous mettrai le message.


---------------
MATOS VELO - Club Strava Matos Vélo
n°1842740
esox_ch
Posté le 25-01-2009 à 14:37:38  profilanswer
 

À part ça, vire ta fonction "listing" du milieu de ton code, elle a rien à faire là.
 
Ensuite nettoie un peu ton code par exemple les lignes 45,46,47 sont pas d'une utilité flagrante à première vue


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1842783
hyperion66
Posté le 25-01-2009 à 17:49:00  profilanswer
 

superbob56 a écrit :

Euh ... qu'est ce qui t'empêche de faire $path = $pseudo ?
Si ça te génère une erreur, quelle est elle ?


Voilà l'erreur :
 
Warning: readdir(): supplied argument is not a valid Directory resource in /homez.41/zerobug/www/gestion/Interface.php3 on line 67

Message cité 1 fois
Message édité par hyperion66 le 25-01-2009 à 17:49:23

---------------
MATOS VELO - Club Strava Matos Vélo
n°1842793
superbob56
Posté le 25-01-2009 à 18:07:54  profilanswer
 

hyperion66 a écrit :


Voilà l'erreur :
 
Warning: readdir(): supplied argument is not a valid Directory resource in /homez.41/zerobug/www/gestion/Interface.php3 on line 67


Est-ce que le dossier correspondant à l'utilisateur existe bien ?


---------------
By bob.
n°1842795
hyperion66
Posté le 25-01-2009 à 18:09:07  profilanswer
 

Oui, j'ai créé un dossier ayant pour nom le nom de l'utilisateur.


---------------
MATOS VELO - Club Strava Matos Vélo
n°1842805
esox_ch
Posté le 25-01-2009 à 18:30:01  profilanswer
 

J'en doute.  
Ajoute un  

Code :
  1. if($dh === false)
  2. echo "Bad directory".$dir;


 
Après le opendir, tu verras que quelque chose joue pas.
 
Et relis mon post un peu plus haut


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
mood
Publicité
Posté le 25-01-2009 à 18:30:01  profilanswer
 

n°1842810
hyperion66
Posté le 25-01-2009 à 18:39:47  profilanswer
 

esox_ch a écrit :

À part ça, vire ta fonction "listing" du milieu de ton code, elle a rien à faire là.
 
Ensuite nettoie un peu ton code par exemple les lignes 45,46,47 sont pas d'une utilité flagrante à première vue


La fonction listing qui est ligne 105 ?


---------------
MATOS VELO - Club Strava Matos Vélo
n°1842812
hyperion66
Posté le 25-01-2009 à 18:41:43  profilanswer
 

En mettant ton code, j'ai cette erreur :
 
Bad directory
Warning: readdir(): supplied argument is not a valid Directory resource in /homez.41/zerobug/www/gestion/Interface.php3 on line 67
 
J'ai pourtant bien un dossier qui a le même nom que le pseudo de l'utilisateur.


---------------
MATOS VELO - Club Strava Matos Vélo
n°1842813
esox_ch
Posté le 25-01-2009 à 18:41:47  profilanswer
 

Son ça c'est l'appel, il a tout à fait le droit d'être là.
Je parle de la définition de ta fonction, ligne 62. Qui doit, au pire être en haut de ta page, au mieux être dans un autre fichier que t'inclus. Sinon on n'y voit plus rien et toi non plus

 

Edit : Mon code allait pas te résoudre le problème. Mon code te fait voir que ta variable $dir est vide => ça va planter


Message édité par esox_ch le 25-01-2009 à 18:42:34

---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1843364
hyperion66
Posté le 26-01-2009 à 20:04:12  profilanswer
 

Désolé, je n'ai rien compris. Jusqu'à présent, ma fonction marche bien.


---------------
MATOS VELO - Club Strava Matos Vélo
n°1843370
esox_ch
Posté le 26-01-2009 à 20:22:37  profilanswer
 

Si tout fonctionne bien pourquoi postes-tu en demandant de l'aide?
Je te répète une dernière fois :
 
Ton erreur est générée parce que la variable $dir ne contient pas ce que tu penses. Mets des "echo" pour voir ce qui se passe dans $dir et tu comprendras.


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1843376
hyperion66
Posté le 26-01-2009 à 20:34:30  profilanswer
 

Tout fonctionne bien à l'ancienne, à savoir avec un fichier par client.


---------------
MATOS VELO - Club Strava Matos Vélo
n°1843381
esox_ch
Posté le 26-01-2009 à 20:55:09  profilanswer
 

J'abandonne. Bonne chance pour la suite


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1843387
hyperion66
Posté le 26-01-2009 à 21:19:22  profilanswer
 

Merci quand même. Mais je cherche à récupérer la valeur du dossier à partir du pseudo du client, c'est ma seule question. Je ne pense pas qu'il faille tout modifier dans mon code pour cela.


---------------
MATOS VELO - Club Strava Matos Vélo

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Lister un dossier en fonction du login

 

Sujets relatifs
héritage multiple, surcharge de fonction avec même nomfonction executable par asp
[Access] Fonction "SOMME" dans un etat qui ne fonctionne pasAfficher certaines balises xml en fonction de leurs attributs
[Résolu] Comment lister plusieurs contenus de dossiers sur une page ?PHP&SQL : Cryptage MD5 Joomla & Page login
[HTML] Pblm fonction "Z Index"retour de fonction par référence et chainage d'opération
Problèmes avec la fonction mail (mails HTML)Lister les différents champs d'un parametre d'une fonction. Possible ?
Plus de sujets relatifs à : Lister un dossier en fonction du login


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR