Rechercher : dans
Par :

Transmettre des variable à une Iframe ($_POST

Dernière réponse le 19 mai 2009 à 09:50:03 killermano66, le 16 mar 2009 à 11:23:00 
 Signaler ce message aux modérateurs

Bonjour,

Je viens de récupérer un codesur le net permettant de lister les dossiers/sous dossiers et fichiers d'un répertoire. Celui-ci n'étant pas basé sur un système d'authentification par login et mot de passe, je cherche à le modifier dans ce sens là.

Ce script se basant sur un frameset, je cherches à transmettre les données de mon formulaire a la frame que je désire affin de pouvoir exploiter la variable $login qui me permet de créer les dossier à la conection de l'utilisateur et de lui monter les répertoires personnels stockées sur un serveur distant.

Mon principal soucis réside dans la transmition de cette variable $login a cette frame pour pouvoir faire joujou avec cette variable de cette façon :

//Création des variables
$_SESSION['login']=$_POST['login'];
$login = $_SESSION['login'];
$psw = $_POST['psw'];
echo $_SESSION['login']; // ne renvoi rien dans mon cas car le formulaire transmet les variables à la page mais pas à la frame ( je vous met le code entier à la suite)
   
// Je crée les divers répertoires au login du membre X => $login
@mkdir("/home/fichiers/$login" ,0777);
@mkdir("/home/fichiers/$login/P", 0777);
@mkdir("/home/fichiers/$login/K/" ,0777);

//Puis je monte les infos dans les répertoires créés précedement.
//exec("smbmount //xxx.xxx.xxx.xxx/p$login /home/fichiers/$login/P -o username=$login%$psw netbios=//xxx.xxx.xxx.xxx/p$login");
//exec("smbmount //xxx.xxx.xxx.xxx/STIDETU /home/fichiers/$login/K -o username=$login%$psw netbios=//xxx.xxx.xxx.xxx/STIDETU");



Donc le soucis est que la variable $login est transmise à la page mais pas à la frame. Je vous met le code entier ci dessous.

Mon formulaire :
<?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="affichage.php" method="post">
<h4>Login</h4>
<input type="text" name="login" /><br />
<h4>Mot de passe</h4>
<input type="text" name="psw" /><br />
<input type="submit" value="Validez" />
</fieldset>
</form></body>
</html>


Code de ma page affichage.php = frames :
<?
// GÉNÉRATION DU FRAMESET
if(!@$_GET["frame"]) { ?>

   <FRAMESET COLS="300,*" frameborder=0>
      <FRAME SRC="<? echo $_SERVER["SCRIPT_NAME"]?>?frame=menu" NAME="menu">
      <FRAME SRC="<? echo $_SERVER["SCRIPT_NAME"]?>?frame=image" NAME="image">
   </FRAMESET>

<?php }
// FRAME MENU NAVIGATION
elseif($_GET["frame"]=="menu") { ?>
  
   <BODY bgcolor=white><center>
   
   <?php      
   $_SESSION['login']=$_POST['login'];
   $login = $_SESSION['login'];
   $psw = $_POST['psw'];
   echo $_SESSION['login'];
   
   @mkdir("/home/fichiers/$login" ,0777);
   @mkdir("/home/fichiers/$login/P", 0777);
   @mkdir("/home/fichiers/$login/K/" ,0777);
	
      // Dossier en cours
      $curdir = @$_GET["dir"];
      if(!$curdir) $curdir = ".";
      
      echo "<b>Dossier ".$curdir."</b><br><br>\n";

      // LISTE DES DOSSIERS COURANTS
      $dir = opendir($curdir);
      // on scanne le répertoire
      while($p=readdir($dir)) {
         // si c'est un dossier sauf . (current directory)
         if(is_dir($curdir."/".$p)&&($p!=".")) {
            // si c'est le dossier .. (parent directory)
            if($p=="..") {
               // si ce n'est pas dans le dossier racine
               if($curdir!=".") {
                  // lien vers le dossier parent
                  $tmp = strrpos($curdir,"/");
                  echo "<A href='?frame=menu&dir=".substr($curdir,0,$tmp)."'
                     target=menu>Parent Directory</A><br>\n";
               }
            // sinon, lien vers le dossier
            } else {
               echo "<A href='?frame=menu&dir=".$curdir."/".$p."' target=menu>".$p."</A><br>\n";
            }
         }
      }
      closedir($dir);

      // LISTE DES IMAGES DU DOSSIER COURANT
      $dir = opendir($curdir);
      // on scanne le répertoire
      while($p=readdir($dir)) {
         // si c'est un fichier
         if(is_file($curdir."/".$p)) {
            // si c'est une extension d'image
            $ext = strtolower(substr($p, strrpos($p, '.') + 1));
                  // lien vers l'image
               echo "<br><A href='?frame=image&dir=".$curdir."&image=".$p."' target=image>
		".$p."</A><br>\n";
            }         
      }
      closedir($dir);

      // MISE A JOUR DE LA FRAME IMAGE
      ?><script>
         top.image.location="?frame=image&dir=<?echo $curdir?>"
      </script>
      
   </center></BODY>

<? }
// FRAME IMAGE
elseif($_GET["frame"]=="image") { ?>

   <BODY bgcolor=black>
      <table width=100% height=100%><tr>
         <td align=center>

      <? // AFFICHAGE DE L'IMAGE
      if(@$_GET["image"]) { 
      
      echo "<br><A href='?frame=image&dir=".$curdir."&image=".$p."' target=image>".$p."</A><br>\n";

      }
      // OU AFFICHAGE DU TITRE (nom du dossier)
      else { ?>

         <font size=6 color=white>Dossier <?echo @$_GET["dir"]?></font>

      <? } ?>

         </td>
      </table>
   </BODY>

<? }
// BAS DE PAGE COMMUN
?>



Voilà donc ma réelle question est comment transmettre ma variable $login transmise par le formulaire à ma frame menu dans ma page affichage.php. Et non transmettre la variable a la page affichage.php qui ne doit pas la traiter.

En espérant trouver une réponse parmis vous. Merci bien ;)
@+
Configuration: Linux
Epiphany 2.14

Meilleures réponses pour « Transmettre des variable à une Iframe ($_POST » dans :
[PHP] Notice: Undefined index: VoirSi vous utilisez les tableaux $_POST ou $_GET pour récupérer les variables de vos formulaires ou autres, il se peut que vous tombiez sur cette erreur: Notice: Undefined index 'champs du tableau' in 'chemin du fichier php en cours d'execution' on line...
[Bash] La variable d'environnement PATH VoirLa variable d'environnement PATH I. Préambule II. C'est quoi le shell ? III. Définition IV. Séance de dissection V. Ajouter un répertoire à la variable PATH VI. Et puis... I. Préambule Sous les systèmes GNU/Linux qu'on le veuille ou...
[Shell] Tester une variable numérique VoirTester une variable numérique    Préambule Dans un environnement "shell", les variables sont, par défaut, de type "chaîne de caractères". De ce fait il n'est pas possible de déclarer une variable de type "entier" (enfin, ceci n'est pas tout à...
Javascript - Les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. En Javascript, les noms de variables peuvent être aussi long que l'on désire,...
PHP - Récupération de données VoirPHP rend très simple la récupération de données envoyées par l'intermédiaire de formulaires HTML. Création d'un formulaire Grâce à la balise FORM du langage HTML, il est très simple de créer des formulaires comprenant : des champs de saisie des...
Variables d'environnement VoirVariables d'environnement Une variable d'environnement est une valeur dynamique, chargée en mémoire, pouvant être utilisée par plusieurs processus fonctionnant simultanément. Sur la plupart des systèmes d'exploitation, les emplacement de...

1

killermano66, le 17 mar 2009 à 08:41:36

Up

Répondre à killermano66

2

 samsamX, le 19 mai 2009 à 09:50:03
  • +1

Chenge simplement ça :

<FRAMESET COLS="300,*" frameborder=0>
      <FRAME SRC="<? echo $_SERVER["SCRIPT_NAME"]?>?frame=menu" NAME="menu">
      <FRAME SRC="<? echo $_SERVER["SCRIPT_NAME"]?>?frame=image" NAME="image">
   </FRAMESET>


En ça :
<FRAMESET COLS="300,*" frameborder=0>
      <FRAME SRC="<?php echo $_SERVER["SCRIPT_NAME"]?>?frame=menu&login=<?php echo $_POST['login'] ?>" NAME="menu">
      <FRAME SRC="<?php echo $_SERVER["SCRIPT_NAME"]?>?frame=image<?php echo $_POST['login'] ?>" NAME="image">
   </FRAMESET>

Répondre à samsamX