Afficher un message si un membre est connecté

Résolu
killermano66 Messages postés 233 Date d'inscription   Statut Membre Dernière intervention   -  
killermano66 Messages postés 233 Date d'inscription   Statut Membre Dernière intervention   -
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
 
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   Statut Membre Dernière intervention   7
 
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
 
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   Statut Membre Dernière intervention   41
 
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   Statut Membre Dernière intervention   41
 
Oui, c'est bien.
1
killermano66 Messages postés 233 Date d'inscription   Statut Membre Dernière intervention   41
 
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   Statut Membre Dernière intervention  
 
salut moi c est michelle et toi moi je veux une amitié avce vous
0