Probleme session combiné aux frames

Probleme session combiné aux frames - PHP - Programmation

Marsh Posté le 15-06-2007 à 17:21:27    

Bonjour à tous.
 
Voici mon problème sans plus attendre.
J'ai une page qui permet de se logger et ensuite d'acceder à l'arborescence du dossier (avec possibilité d'acceder au contenu des sous dossiers etc...).
 

Code :
  1. <?php
  2. if(!isset($_SESSION['level'])){
  3.  echo "<table width='60%' border='0' class='label'>";
  4.  echo "<tr><td>Access denied</td></tr></table>";
  5. }else{
  6.  echo "<span class='label'> Username: ".$_SESSION['username']."<br>";
  7.  echo "Authorization's level: ".$_SESSION['level']."</span>";
  8.  echo "<table width='60%' border='0' class='label'>";
  9.  if(isset($_GET['folder']))
  10.   $_SESSION['current_directory'] = $_SESSION['current_directory'].$_GET['folder'];
  11.  $folder = opendir($_SESSION['current_directory']);
  12.  while ($data = readdir($folder)) {
  13.   if ($data != "." ) {
  14.    echo "<tr><td>";
  15.    if(is_dir($data)){
  16.     echo "<a href='ftp_service.php?folder=".$data."'>".$data."</a>";
  17.    }
  18.    else{
  19.     echo "<a href=".$data.">".$data."</a>";
  20.    }
  21.    echo "</td></tr>";
  22.    }
  23.  }
  24.  closedir($folder);
  25.  echo "</table>";
  26. }
  27. ?>


 
Voici mon code (affiche l'arborescence, le connexion est sur un autre fichier)
Je vérifie si le mec est loggé (if(!isset($_SESSION['level']))), s'il n'existe pas je lui met un message d'erreur sinon l'arborescence.
Quand on rencontre un dossier je met juste un lien dessus (echo "<a href='ftp_service.php?folder=".$data."'>".$data."</a>";).
 
Alors le truc c'est que je crée une session juste avant lors de la connexion (en initialiser toutes les variables). Donc la connexion marche bien (j'ai un listing des fichiers & dossiers), ca m'affiche les infos utilisateurs + arborescence. Mais lorsque je clik sur un dossier (pour qu'il m'affiche son contenu), il m'affiche Access Denied (donc que je n'ai pas de session).
J'ai essayé en passant la session id sur le lien etc. et rien ne marche. Pourtant normalement ca devrait marcher mais...
 
Pour info, j'utilise les frames (4 en tout, un header, un gauche, un droite et un milieu où sont affichées les infos).
 
Merci de votre aide.
 
ps: une petite question au passage, comment faire pour que quand un mec clik sur un fichier, il l'ouvre pas ds la frame mais propose directement la ptite boite d'enregistrement?

Reply

Marsh Posté le 15-06-2007 à 17:21:27   

Reply

Marsh Posté le 15-06-2007 à 21:34:46    

Une solution: arrete les frames, met toi au XHTML + CSS, tout ça (les frames et ta construction en tableaux) c'est dépassé.
Petite remarque: évite de faire une suite de echo(), privilégie plutôt le texte brut hors balises <?php ?>, parce que sinon c'est une charge serveur inutile qui est imposée.
 
Bonne soirée

Reply

Marsh Posté le 18-06-2007 à 19:38:41    

Ok je vais changer ca alors.
 
Et quelqu'un sait alors si on peut forcer le navigateur à ouvrir le boite de dialogue permettant d'enregistrer un fichier à la place d'ouvrir le fichier directement ds le navigateur lors d'un clik?

Reply

Marsh Posté le 18-06-2007 à 21:21:56    

Rien capté


---------------
.:: Kmeleon ::.
Reply

Marsh Posté le 19-06-2007 à 14:28:41    

Je veux faire une espèce de navigateur ftp (un peu comme quand tu accède à un site sans index, ca t'affiche la liste des fichiers et dossiers).
 
Le probleme c'est que lorsque tu es dans l'arborescence, si tu clic sur un fichier de type html par exemple, le navigateur va afficher ce fichier.
Ce que j'aimerais c'est ne pas afficher le fichier, mais proposer à l'utilisateur d'enregistrer ce fichier html sur son disque dur.
Mais je ne sais pas si c'est possible d'où ma question.
 
J'espere avoir été plus clair.

Reply

Marsh Posté le 19-06-2007 à 14:32:45    

keywords: mime type

Reply

Marsh Posté le 19-06-2007 à 17:01:38    

Heu j'ai pas compris

Reply

Marsh Posté le 19-06-2007 à 17:09:23    

Il te donne des mots clefs pour faire une recherche (google ou autre).  
 
Mais en l'occurence, le type mime seul ne t'aidera pas du tout, faudrait plutôt chercher des mots clefs genre "forcer téléchargement".
 
Tu devrais avoir des résultats expliquant les bons header à mettre. Il me semble que c'est un truc du genre :

Code :
  1. Content-Disposition: attachment; filename = "toto.html"


---------------
When it's from Finland it's good.  - Mon blog
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed