Problème variable session

Résolu/Fermé
Dofre76 - Modifié par Dofre76 le 23/11/2010 à 17:08
 Dofre76 - 23 nov. 2010 à 21:16
Bonjour,

Je suis débutant en PHP et je rencontre actuellement un problème...

Je dois connecter via ODBC une base de donnée access.

Mon problème c'est que je n'arrive pas à me connecter à ma base car apparemment mes variables de sessions ne sont pas transférées d'une page à l'autre. J'ai rentré directement le nom de ma source dans la fonction odbc_connect et ça fonctionne très bien, par contre quand je mets mes variables de session cela ne marche plus...


Voici mon code:

admin.php :

 <?php  
  include 'menu.php';  
    
  echo '<div id="corps">';  
  echo '<h1>Administration </h1>';  
  echo '<form action="administration/index2.php" method="post">';  
  echo 'nom source de données: <input type="text" name="pdsn"><br />';  
  echo 'nom utilisateur: <input type="text" name="puser"><br />';  
  echo 'mot de passe: <input type="password" name="ppass"><br />';  
  echo '<input type="submit" value="Validez">';  
  echo '</form>';  
  echo '</div>';  
     
  include 'piedpage.php';  
  ?>


index2.php :

 <?php  
 session_start();  
 echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">';  
 echo '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >';  
  echo '<head>';  
   echo '<title>PC Express</title>';  
   echo '<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />';  
   echo '<link rel="stylesheet" media="screen" type="text/css" title="mon design" href="style.css" />';  
  echo '</head>';  
  echo '<body>';  
  //  
   include 'menu.php';  
  //  
   $_SESSION["sdsn"]=$_POST["pdsn"];  
   $_SESSION["suser"]=$_POST["puser"];  
   $_SESSION["spass"]=$_POST["ppass"];   
  //  
   // Le corps de la page  
   echo '<div id="corps">';  
   echo '<h1>Bienvenue sur la partie Administration !</h1>';    
   echo '<h2> A quoi sert la partie Administration ? </h2>';  
   echo '<p>';  
   echo  'La partie Administration va permettre à une personne autorisée de saisir du matériel dans la base de donnée. Ainsi un client va pouvoir commander du matériel à partir du site principale.';  
   echo '</p>';    
   echo '</div>';   
  //   
   include ("piedpage.php");  
  echo '</body>';  
 echo '</html>';  
?>  


listmateriel.php :

 <?php  
 session_start();  
 echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">';  
 echo '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >';  
  echo '<head>';  
   echo '<title>PC Express</title>';  
   echo '<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />';  
   echo '<link rel="stylesheet" media="screen" type="text/css" title="mon design" href="style.css" />';  
  echo '</head>';  
  echo '<body>';   
  //   
   include 'menu.php';  
  //  
   // Le corps de la page  
   echo '<div id="corps">';  
   echo '<h1>Liste de matériels</h1>';    
   if ($conn = odbc_connect($_SESSION["sdsn"],$_SESSION["suser"],$_SESSION["spass"]))  
   {  
    echo '<form action="listmateriel2.php" method="post">';  
    echo 'Choisir un type';  
  //  
    echo '<select name="pnotype" size="1">';  
  //  
    $req ="SELECT distinct typemat FROM materiel order by 1";  
    $res = odbc_exec($conn,$req);  
  //  
    while (odbc_fetch_into($res,$ligne))  
    {  
     echo'<option value="'.$ligne[0].'">'.$ligne[0].'</option><br>';  
    }  
    echo '</select>';  
   }  
   else  
  //  
   {  
    echo '<br> liste type de matériel  non trouvée';  
    echo '<input type=text name=notype>';  
   }  
   echo '<br><br><input type=submit value="Cliquez ici">';  
   echo '</form>';  
   echo '</div>';   
  //   
   include ("piedpage.php");  
  echo '</body>';  
 echo '</html>';  
 odbc_close($conn);  
?>  
 


listmateriel2.php :

  <?php  
 session_start();  
 echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">';  
 echo '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >';  
  echo '<head>';  
   echo '<title>PC Express</title>';  
   echo '<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />';  
   echo '<link rel="stylesheet" media="screen" type="text/css" title="mon design" href="style.css" />';  
  echo '</head>';  
  echo '<body>';  
  //   
   include 'menu.php';  
  //  
   // Le corps de la page  
   echo '<div id="corps">';  
   echo '<h1>Liste de '.$_POST["pnotype"].' </h1>';    
   if ($conn = odbc_connect($_SESSION["sdsn"],$_SESSION["suser"],$_SESSION["spass"]))  
   {  
    echo '<center>';  
    echo '<table border=1 cellspading=1 cellspading=1>';  
    echo '<tr>';  
     echo '<td> no </td>';  
     echo '<td> nom </td>';  
     echo '<td> marque </td>';  
     echo '<td> type </td>';  
     echo '<td> reference </td>';  
     echo '<td> prix </td>';  
    echo '</tr>';  
 //  
    $nbrmat = 0;  
    //$test =  $_POST["pnotype"];  
    //$req ="select * from materiel where typemat = '$test'";  
    $req ="select * from materiel where typemat = '".$_POST["pnotype"]."'";  
 //  
    $res = odbc_exec($conn,$req);  
 //  
    while ($ligne = odbc_fetch_array($res))  
    {  
     echo '<tr>';  
      echo '<td>'.$ligne["IdMat"].'</td>';  
      echo '<td>'.$ligne["NomMat"].'</td>';  
      echo '<td>'.$ligne["MarqueMat"].'</td>';  
      echo '<td>'.$ligne["TypeMat"].'</td>';  
      echo '<td>'.$ligne["RefMat"].'</td>';  
      echo '<td>'.$ligne["PrixMat"].'</td>';  
     echo '</tr>';  
    
     $nbrmat = $nbrmat + 1;  
    }  
   }  
   else  
   {  
    echo 'Erreur !';  
   }  
   echo '</table></center>';  
   //  
   echo '<br><br>Nombre matériels affichés: '.$nbrmat;  
   echo '</div>';  
   //   
   include ("piedpage.php");  
  echo '</body>';  
 echo '</html>';  
 odbc_close($conn);  
?>



Ps: J'utilise Movamp

Merci d'avance !

6 réponses

Melooo Messages postés 1405 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 mars 2013 84
23 nov. 2010 à 17:01
Dans ton nom de fichier tu nous as mis index2.html
erreur de frappe ?
0
Ah oui en effet erreur de frappe, je rectifie... Merci
0
Melooo Messages postés 1405 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 mars 2013 84
23 nov. 2010 à 17:10
Que se passe t-il lorsque tu fais un echo de tes SESSION ?
Perso, je trouve que faire des echo pour toutes tes lignes HTML c'est pas propre ni très lisible :)
0
Sur la page index2.php je vois bien le contenue de ma variable, mais une fois dans la page listmateriel.php la variable est vide.

Je suis d'accord avec toi pour mes lignes HTML, mais ma profs insiste pour avoir qu'une seul balise php... --"
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bon sur Wamp les variable de sessions se transfère bien de page en page... a croire qu'il y a un problème ou une config à faire sur movamp... :s Mais du coup j'ai un autre problème pour me connecter avec wamp, j'ai ce message d'erreur :

Warning: odbc_connect() [function.odbc-connect]: SQL error: [Microsoft][Gestionnaire de pilotes ODBC] Source de données introuvable et nom de pilote non spécifié, SQL state IM002 in SQLConnect in C:\Program Files (x86)\wamp\www\site-pti\administration\listmateriel.php on line 19


Si quelqu'un a une solution pour movamp je suis preneur ! ^^
0
Problème résolu pour Movamp ! dans le fichier php.ini il fallait changer :

register_globals = Off
en
register_globals = On
0