Afficher un message si un membre est connecté

Résolu/Fermé
killermano66 Messages postés 233 Date d'inscription jeudi 17 janvier 2008 Statut Membre Dernière intervention 25 novembre 2010 - 27 févr. 2009 à 18:10
killermano66 Messages postés 233 Date d'inscription jeudi 17 janvier 2008 Statut Membre Dernière intervention 25 novembre 2010 - 2 juin 2009 à 16:22
Salut,

J'ai créé un espace membre qui fonctionne plutôt bien connection, decconection, inscription et modification OK.

Je vous donnes le code de la page index.php de mon espace membre un peu en dessous.
Celui-ci me va bien sauf que j'aimerais dans la page d'accueil de mon site afficher en top de page si l'utilisateur est connecté :
Bienvenue nom du membre
Modifier votre profil - Decconnection

Et si celui-ci n'est pas connecté :
Bienvenue invité
Connection | inscription

J'ai tenté plusieur chose dont beaucoup m'ont affiché uniquement le contenue du else (bienvenue invité etc ...)
Une seula m'a affiché le if :

<?php session_start(); ?>
 code html ....

<?php
    // on teste si le visiteur a soumis le formulaire de connexion 	    
    $_SESSION['login'] = $_POST['login'];
    if ($_SESSION['login'] = TRUE) {      
    echo ("bienvenue");	
    echo $_SESSION['login'];	
    } 
	else {
    echo ('<img src="pictures/design/marron/invite.jpg" alt="invité" align="left" />');
    echo ('Bienvenue invit&eacute;<br />');   
    echo ('<a href="index.php?page=login">Connection</a> |'); 
    echo ('<a href="index.php?page=inscription">Inscription</a>');   
	}
?>


Qui m'affiche bienvenue 1 mais pas le nom du membre connecté etc..

Dans tous les autres cas j'ai eu Bienvenu invité etc ...


Page de connection à l'espace membre :
<?php
 // on teste si le visiteur a soumis le formulaire de connexion  
 if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') { 
    if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) { 
  
       include("fichiers/connection.php"); 
       
       // on teste si une entrée de la base contient ce couple login / pass 
       $sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.md5(mysql_escape_string($_POST['pass'])).'"'; 
       $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
       $data = mysql_fetch_array($req); 
       
       mysql_free_result($req); 
       mysql_close(); 
     
       // si on obtient une réponse, alors l'utilisateur est un membre 
       if ($data[0] == 1) { 
          session_start(); 
          $_SESSION['login'] = $_POST['login']; 
          header('Location: index.php?page=membre');
          exit(); 
       } 
       // si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe 
       elseif ($data[0] == 0) { 
          $erreur = 'Compte non reconnu.'; 
       } 
       // sinon, problème BDD
       else { 
          $erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.'; 
       } 
    } 
    else { 
       $erreur = 'Au moins un des champs est vide.'; 
    }  
}  
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>
</head>

<body>
 Connexion à l'espace membre :<br />
 <form action="index.php?page=login" method="post">
 Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
 Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br />
 <input type="submit" name="connexion" value="Connexion">
 </form>
 <a href="inscription.php">Vous inscrire</a>
 <?php
 if (isset($erreur)) echo '<br /><br />',$erreur;  
 ?>
</body>
</html>


Voilà voilà, je bloque totalement sur cette partie. Merci de votre aide.
A voir également:

7 réponses

Utilisateur anonyme
27 févr. 2009 à 18:27
il te suffit de faire un "if(isset($_SESSION['login'])){ echo "bienvenue...".$_SESSION['login']."se déconnecter..."; }else{ echo "s'inscrire/se connecter"; }
4
Arkolos Messages postés 9 Date d'inscription dimanche 9 novembre 2008 Statut Membre Dernière intervention 5 mars 2009 7
27 févr. 2009 à 18:48
if ($_SESSION['login'] = TRUE)

Erreur classique d'étourderie, il faut metre 2 signes égales comme cela.


if ($_SESSION['login'] == TRUE)

C'est le genre d'erreur dure à reperer, et qui change completement la condition !

Cordialement,
1
Utilisateur anonyme
27 févr. 2009 à 19:02
pour le déconnection essaie ça :

<?php
session_start();

unset($_SESSION['login']);  //vide la session du login
?>
1
killermano66 Messages postés 233 Date d'inscription jeudi 17 janvier 2008 Statut Membre Dernière intervention 25 novembre 2010 41
27 févr. 2009 à 19:08
Non, ça ne fonctionne pas, l'utilisateur reste toujours connecté.

Ce que je comprend pas c'est que lorsque je teste le script en dehors du site il fonctionne, quand je l'inclus, les problèmes arrivent ... Je suis un peu paumé.

Merci encore.

EDIT : Grosse erreur de ma part dans un de mes liens
<a href="index.php?deconnexion" alt="Deconection">

au lieux de :

<a href="index.php?page=deconnexion" alt="Deconection">

Désolé, merci encore ;) tout est parfait !
1

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

Posez votre question
killermano66 Messages postés 233 Date d'inscription jeudi 17 janvier 2008 Statut Membre Dernière intervention 25 novembre 2010 41
2 juin 2009 à 16:22
Oui, c'est bien.
1
killermano66 Messages postés 233 Date d'inscription jeudi 17 janvier 2008 Statut Membre Dernière intervention 25 novembre 2010 41
27 févr. 2009 à 18:47
Merci beaucoup, j'y avais absolument pas pensé et ça règle mon problème.

En revenche maintenant c'est au niveau de la deconnection que j'ai un problème si jamais toi ou quelqu'un d'autre voit d'ou ça peut venir.

Disons que j'inclus un script fait à part d'un site dans un site et j'ai quelques problème pour le faire fonctionner dans la nouvelle interface :

deconnection.php :

<?php
session_start();  
session_unset();  
session_destroy();  
header('Location: index.php');  
exit();  
?> 


Ca n'a aucun effet une fois inclue dans ma nouvelle interface alors que normalement ça fonctionne.

Merci encore.
0
michelle123 Messages postés 1 Date d'inscription mardi 2 juin 2009 Statut Membre Dernière intervention 2 juin 2009
2 juin 2009 à 14:36
salut moi c est michelle et toi moi je veux une amitié avce vous
0