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

  FORUM HardWare.fr
  Programmation
  PHP

  [Résolu] - Php Créer variable session login

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] - Php Créer variable session login

n°2062166
iOniOn95
Posté le 10-03-2011 à 09:21:21  profilanswer
 

Bonjour,
Je suis débutante en php; j'ai créée un espace membre, et j'aimerais afficher "Bonjour 'le nom de la personne qui se connecte'" cependant je ne sais pas comment créer un $_SESSION['login'] et comment récupérer cette valeur dans une autre page.
 
J'ai une table membres avec id, ab_pers_matricule, login et password.
 
Voici mon code :
 
login.php

Code :
  1. <?php
  2. // Initialisation de la session
  3. $_SESSION['erreur'] ='';
  4. $_SESSION['connexion'] = '';
  5. $host=""; // Host name
  6. $username=""; // Mysql username
  7. $password=""; // Mysql password
  8. $db_name="suivi des absences"; // Database name
  9. $tbl_name="membres"; // Table name
  10. // On vérifie que le login et le mot de passe ont été précisés
  11. if(!empty($_POST['login']) && !empty($_POST['password']))
  12. {
  13. session_start();
  14. // Connexion à la base
  15. $connexion=mysql_connect("$host", "$username", "$password" )or die("cannot connect" );
  16. mysql_select_db("$db_name" )or die("cannot select DB" );
  17. mysql_query("SET NAMES 'utf8'" );
  18. // Requete à la base (verification login/mdp)
  19. $SQL = 'SELECT * FROM membres WHERE login = "'.mysql_real_escape_string($_POST['login']).'" AND password = "'. mysql_real_escape_string($_POST['password']).'"';
  20. $request = mysql_query($SQL, $connexion) or die(mysql_error());
  21. $data = mysql_fetch_assoc($request);
  22. if (empty($data) || !sizeof($data)) // Login / Mot de passe invalide
  23. {
  24.  $_SESSION['erreur'] = 'Login ou mot de passe non valide';
  25.  header("Location: index.php" );
  26. }
  27. else
  28. {
  29.  $data = $data[0];
  30. // Récupération des informations de l'utilisateur dans les variables de session  
  31.  $_SESSION['connexion'] = 1;
  32. // Redirection de l'utilisateur
  33. header("Location: menu.php" );
  34. }
  35. }
  36. else // Si au moins un champs est vide
  37. {
  38. // Définition d'une erreur + Redirection
  39. $_SESSION['erreur'] = 'Tous les champs doivent être renseignés';
  40. header("Location: index.php" );
  41. }
  42. ?>


 
 
Et index.php

Code :
  1. <?php
  2. // On vérifie si une erreur a été envoyée
  3. if(isset($_SESSION['erreur']))
  4. {
  5. $erreurAffichage = $_SESSION['erreur'];
  6. }
  7. else
  8. $erreurAffichage = "";
  9. {
  10. $_SESSION['erreur'] = "";
  11. }
  12. ?>
  13.  <link rel="styles.php" type="text/css" href="styles.css" />
  14.  <meta http-equiv="Content-type" content="text/html; charset=UTF-8"/>
  15.  <script type="text/javascript">
  16.  var erreur = "<?php echo $erreurAffichage; ?>";
  17.  if(erreur != "" )
  18.  {
  19.   alert(erreur);
  20.  }
  21.  </script>
  22.       <table width="324" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
  23.         <tr>
  24.           <form name="form1" method="post" action="login.php">
  25.             <td width="322"><table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
  26.                 <tr>
  27.                   <td colspan="3"><div align="center" class="Style6" style="font-weight: bold; font-size: large; font-family: Geneva, Arial, Helvetica, sans-serif">                   
  28.                     <p><u><span style="font-size: x-large">Accès membres</span></u><br />
  29.                     </p>
  30.                     </div></td>
  31.                 </tr>
  32.                 <tr>
  33.                   <td width="122"><div align="right" class="Style6" style="font-weight: bold; font-size: medium; font-family: Geneva, Arial, Helvetica, sans-serif">Identifiant :</div></td>
  34.                   <td width="167"><div align="center" class="Style6" style="font-weight: bold; font-size: large; font-family: Geneva, Arial, Helvetica, sans-serif">
  35.                       <input name="login" type="text" id="login" />
  36.                   </div></td>
  37.               </tr>
  38.                 <tr>
  39.                   <td><div align="right" class="Style6" style="font-weight: bold; font-size: medium; font-family: Geneva, Arial, Helvetica, sans-serif">Mot de passe :</div></td>
  40.                   <td><div align="center" class="Style6" style="font-weight: bold; font-size: large; font-family: Geneva, Arial, Helvetica, sans-serif">
  41.                       <input name="password" type="password" id="password" />
  42.                   </div></td>
  43.                 </tr>
  44.                 <tr>
  45.                   <td></td>
  46.                   <td><div align="center" class="Style6" style="font-weight: bold; font-size: medium">
  47.                       <p><input type="submit" name="Submit" value="Connexion" /><br /></p>
  48.                   </div></td>
  49.                 </tr>
  50.             </table></td>
  51.           </form>
  52.         </tr>
  53.       </table>


 
 
Lorsqu'un membre se connecte, il est redirigé sur la page menu.php, c'est donc sur le header de cette page que j'aimerais afficher "bonjour 'membre connecté' "
 
 
Si vous avez des questions à me poser n'hésitez pas =)
Merci de bien vouloir me répondre!


Message édité par iOniOn95 le 23-03-2011 à 14:32:13
mood
Publicité
Posté le 10-03-2011 à 09:21:21  profilanswer
 

n°2062207
antac
..
Posté le 10-03-2011 à 11:17:43  profilanswer
 

Il faut que tu ouvres ta session
En haut de chaque page utilisant les variables de session, tu dois mettre
 
session_start();

n°2062211
iOniOn95
Posté le 10-03-2011 à 11:23:14  profilanswer
 

Mon header contient déjà un session_start();
lorsque je lui met echo $_SESSION['login'];
il me met un message d'erreur : "Notice: Undefined index: login in C:\Program Files\EasyPHP-5.3.3\www\header.php on line 95"
Je ne comprend pas pourquoi je n'arrive pas à récupérer la valeur de $_SESSION['login'] dans le header

n°2062297
antac
..
Posté le 10-03-2011 à 14:52:38  profilanswer
 

Ben oui normal vu que tu n'as jamais affecté $_SESSION['login']
 
Une fois que tu as vérifié le login, après le POST
tu fais $_SESSION['login']=$_POST['login'] dans login.php

n°2062305
iOniOn95
Posté le 10-03-2011 à 15:19:20  profilanswer
 

Merci beaucoup antac ça fonctionne ! :D

n°2062323
iOniOn95
Posté le 10-03-2011 à 16:16:47  profilanswer
 

Encore un petit soucis avec ce $_SESSION['login'] .. =/
la valeur de $_SESSION['login'] s'affiche bien dans le header cependant, le fichier header est aussi sur la page login (page de connexion)
Donc lorsque quelqu'un est connecté cela pose aucun problème, il y a écrit : "bonjour 'membre connecté'"
Mais lorsque je suis sur la page de connexion (donc le membre n'est pas encore connecté), Le message suivant s'affiche : "Bonjour
Notice: Undefined index: login in C:\Program Files\EasyPHP-5.3.3\www\header.php on line 97"
 
Est ce qu'il serait possible de faire une boucle dans le header en disant : si $_SESSION['connexion']=1  on affiche "bonjour 'membre connecté'" Sinon on affiche rien ?
 
Voici une partie du code de header.php  

Code :
  1. <?php
  2. session_start();
  3. //  ...bout de code en CSS qui ne nous intéresse pas ici ...  
  4. setlocale (LC_TIME, 'fr_FR','fra');
  5. $today = strftime("%A %d %B %Y %T" ); 
  6. ?>
  7. </head>
  8. <body class="twoColFixLtHdr">
  9. <div id="container">
  10. <div id="header">
  11. <p align="right" class="Style1"><?php print("$today" ) ?> </p>
  12.       <div align="left">
  13.   <p><img src="Spie.JPG" width="158" height="88" /></p>
  14. <div align="right">
  15.         <table>
  16.           <tr>
  17.             <td><form id="form1" name="form1" method="post">
  18.               <p align="right" class="Style12">Bonjour <?php echo $_SESSION['login']; ?> <br />
  19.               <a href="logout.php">Déconnexion</a></span></p>
  20.             </form></td>
  21.           </tr>
  22.         </table>
  23.         </p>
  24. </div>
  25. </div>
  26. </div>


 
 
Si vous avez des questions n'hésitez pas !
Merci de bien vouloir m'aider svp :)

n°2062335
esox_ch
Posté le 10-03-2011 à 16:35:48  profilanswer
 

Salut
Remplace

Code :
  1. <p align="right" class="Style12">Bonjour <?php echo $_SESSION['login']; ?> <br />


 
par  
 

Code :
  1. <?php if(array_key_exists('login', $_SESSION)) { %>
  2. <p align="right" class="Style12">Bonjour <?php echo $_SESSION['login']; ?>
  3. <?php  } ?>
  4. <br />


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°2062340
iOniOn95
Posté le 10-03-2011 à 16:50:33  profilanswer
 

ça fonctionne, merci beaucoup !
Claire et précis c'est génial :D


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

  [Résolu] - Php Créer variable session login

 

Sujets relatifs
Chemin UNC avec variable d'environement[Php] Passe une variable et un int dans un Textarea
Je besoin d'aide sur PHP[Flash/PHP] FlashVars ne fonctionne pas avec IE
Vous connaissez un PHP Database toolkit ?VBA Excel 2007 Problème de variable objet. Erreur 91
[resolu] Probleme de variable "tout" sur un formulaire de recherche[PHP] svn ignorer certains fichiers lors des commits
[prog réseaux]serveur multithread et variable globales 
Plus de sujets relatifs à : [Résolu] - Php Créer variable session login


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