Membre déconnecter sans arret

Résolu
jordxn Messages postés 375 Statut Membre -  
jordxn Messages postés 375 Statut Membre -
Bonjour,

J'ai créer une colonne a droite sur la page d'accueil de mon site pour se connecter avec un champ nom d'utilisateur et mot de passe, j'arrive a me connecter , la n'est pas le problème, mais c'est que des que je suis connecté et que j'ai envie de retourné sur la page d'accueil sa me déconnecte direct ...
Il doit avoir une erreur dans mon php , merci de bien vouloir m'aider

<?php
//Si lutilisateur est connecte, on le deconecte
if(isset($_SESSION['username']))
{
//On le deconecte en supprimant simplement les sessions username et userid
unset($_SESSION['username'], $_SESSION['userid']);
?>
<center>
<div class="message">Vous êtes bien déconnecté.<br />
<a href="http://moment-delirant.fr">Accueil</a></div>
</center>
<?php
}
else
{
$ousername = '';
//On verifie si le formulaire a ete envoye
if(isset($_POST['username'], $_POST['password']))
{
//On echappe les variables pour pouvoir les mettre dans des requetes SQL
if(get_magic_quotes_gpc())
{
$ousername = stripslashes($_POST['username']);
$username = mysql_real_escape_string(stripslashes($_POST['username']));
$password = stripslashes($_POST['password']);
}
else
{
$username = mysql_real_escape_string($_POST['username']);
$password = $_POST['password'];
}
//On recupere le mot de passe de lutilisateur
$req = mysql_query('select password,id from users where username="'.$username.'"');
$dn = mysql_fetch_array($req);
//On le compare a celui quil a entre et on verifie si le membre existe
if($dn['password']==$password and mysql_num_rows($req)>0)
{
//Si le mot de passe es bon, on ne vas pas afficher le formulaire
$form = false;
//On enregistre son pseudo dans la session username et son identifiant dans la session userid
$_SESSION['username'] = $_POST['username'];
$_SESSION['userid'] = $dn['id'];
?>
<center>
<div class="message">Vous êtes bien connecté. Vous pouvez accéder à votre espace membre.<br />
<a href="indexx.php">En cliquant ici</a></div>
</center>
<?php
}
else
{
//Sinon, on indique que la combinaison nest pas bonne
$form = true;
$message = 'Erreur dans le Nom d\'utilisateur et/ou dans le mot de passe.';
}
}
else
{
$form = true;
}
if($form)
{
//On affiche un message sil y a lieu
if(isset($message))
{
echo '<div class="message">'.$message.'</div>';
}
//On affiche le formulaire
?>

<table style="border:2px solid black;">
<th colspan="2" style="border:2px solid black;">Espace membre </th>
<tr>
<td class="aff"><form name="connexion.php" action="#" method="post">
<center><label for="username">Nom d'utilisateur</label><input type="text" name="username" id="username" value="<?php echo htmlentities($ousername, ENT_QUOTES, 'UTF-8'); ?>" /><br />
<label for="password">Mot de passe</label><input type="password" name="password" id="password" /><br />
<input type="submit" value="Connexion" /><br/>
<a href="sign_up.php">Inscription</a><br>
<a href="passperdu.html">Pass perdu</a>
<input type="hidden" name="mode" value="connexion" />
</td>
</tr>
</center>
</table>
<?php
}
}
?>

Merci bcp

9 réponses

  1. arthezius Messages postés 3756 Statut Membre 475
     
    C'est assez simple:
    if(!isset($_SESSION['username']))
    {
    echo 'Code de la colonne';
    }

    Cette condition affichera le code que tu voudra dans le cas où le membre n'est pas connecté.
    1
  2. Ekinoks60 Messages postés 60 Statut Membre 44
     
    Bah...

    if(isset($_SESSION['username']))
    {
    //On le deconecte en supprimant simplement les sessions username et userid
    unset($_SESSION['username'], $_SESSION['userid']);


    Si l'utilisateur est connecté, tu le déconnecte... Je comprend pas ?
    0
    1. jordxn Messages postés 375 Statut Membre 1
       
      Je viens de voir ma connerie ^^
      Merci

      J'arrive a me connecter et à aller sur l'accueil désormais sauf que j'aimerais cacher la colonne de droite une fois connecter car
      Nom d'utilisateur
      mot de passe
      Connexion
      Inscription
      pass perdu

      Ne servent plus a rien vu qu'il est connecter ...
      0
    2. arthezius Messages postés 3756 Statut Membre 475
       
      J'avoue ne pas comprendre non plus cette logique.
      0
    3. jordxn Messages postés 375 Statut Membre 1
       
      Désolé ...
      Avez vous une idée ?
      Merci
      0
  3. Alain_42 Messages postés 5413 Statut Membre 904
     
    il faut mettre une condition "si pas connecté" pour l'affichage du formulaire de connexion

    <?php
    session_start();
    
    //et à l'endroit où tu veux mettre ton formulaire de connexion:
    if(!isset($_SESSION['username']))
    {
    ?>
    //ton formulaire de connexion
    
    <?php
    }
    
    0
    1. arthezius Messages postés 3756 Statut Membre 475
       
      Tu as mis un commentaire PHP en dehors du code PHP ^^
      0
  4. jordxn Messages postés 375 Statut Membre 1
     
    Merci sa marche Alain42
    Mais j'aimerais que s'il est connecté sa m'affiche a la place de
    Nom d'utilisateur
    mot de passe
    Connexion
    Inscription
    pass perdu

    ceci :
    Votre espace membre
    Deconnexion.

    Il suffit juste de refaire une table comme celle que j'ai faite mais je ne sais pas comment faire pour mettre le else dans le php ...

    <?php
    session_start();

    //et à l'endroit où tu veux mettre ton formulaire de connexion:
    if(!isset($_SESSION['username']))
    {
    ?>

    <table style="border:2px solid black;">
    <th colspan="2" style="border:2px solid black;">Espace membre </th>
    <tr>
    <td class="aff"><form name="connexion.php" action="#" method="post">
    <center><label for="username">Nom d'utilisateur</label><input type="text" name="username" id="username" value="<?php echo htmlentities($ousername, ENT_QUOTES, 'UTF-8'); ?>" /><br />
    <label for="password">Mot de passe</label><input type="password" name="password" id="password" /><br />
    <input type="submit" value="Connexion" /><br/>
    <a href="sign_up.php">Inscription</a><br>
    <a href="passperdu.html">Pass perdu</a>
    <input type="hidden" name="mode" value="connexion" />
    </td>
    </tr>
    </center>
    </table>
    <?php
    }
    }
    }
    ?>
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Alain_42 Messages postés 5413 Statut Membre 904
     
    pour mettre un else en php:

    if(condition){
    //instructions si condition remplie
    }else{
    
    //instructions si condition non  remplie
    }
    


    <?php
    session_start();
    
    //et à l'endroit où tu veux mettre ton formulaire de connexion:
    if(!isset($_SESSION['username']))
    {
    ?>
    
    <table style="border:2px solid black;">
    	<tr>
    	<!-- il faut des <tr meme avec les th -->
    		<th colspan="2" style="border:2px solid black;">Espace membre </th></tr>
    	<tr>
    		<td class="aff">
    		<center><form name="connexion.php" action="" method="post">
    		<label for="username">Nom d'utilisateur</label><input type="text" name="username" id="username" value="<?php echo htmlentities($ousername, ENT_QUOTES, 'UTF-8'); ?>" /><br />
    		<label for="password">Mot de passe</label><input type="password" name="password" id="password" /><br />
    		<input type="submit" name="connexion" value="Connexion" /><br/>
    		<a href="sign_up.php">Inscription</a><br>
    		<a href="passperdu.html">Pass perdu</a>
    		<!-- si tu mets un name au bouton submit, pas besoin de champ hidden ensuite -->
    		<!-- et la balise </form> tu l'as oubliée -->
    		</form></center>
    		</td>
    	</tr>
    	
    </table>
    <?php
    }else{
    	echo '<font color="green">Bonjour '.$_SESSION['username'].' Vous êtes connecté à l\'espace membre.</font>';
    	?>
    	<br /><a href="log_out.php">Déconnexion</a><br />
    	<?php
    }
    
    
    }
    }
    ?>
    

    et dans ton fichier log_out.php tu mets:
    <?php
    session_start() ;
    //destruction de toutes les variable de sessions:
    session_unset() ;
    //destruction de la session:
    session_destroy() ;
    
    header("location: index.php") ; //retour à la page d'acceuil
    ?>
    0
  7. jordxn Messages postés 375 Statut Membre 1
     
    Merci !
    J'ai un soucis :

    <?php
    {
    $ousername = '';
    //On verifie si le formulaire a ete envoye
    if(isset($_POST['username'], $_POST['password']))
    {
    //On echappe les variables pour pouvoir les mettre dans des requetes SQL
    if(get_magic_quotes_gpc())
    {
    $ousername = stripslashes($_POST['username']);
    $username = mysql_real_escape_string(stripslashes($_POST['username']));
    $password = stripslashes($_POST['password']);
    }
    else
    {
    $username = mysql_real_escape_string($_POST['username']);
    $password = $_POST['password'];
    }
    //On recupere le mot de passe de lutilisateur
    $req = mysql_query('select password,id from users where username="'.$username.'"');
    $dn = mysql_fetch_array($req);
    //On le compare a celui quil a entre et on verifie si le membre existe
    if($dn['password']==$password and mysql_num_rows($req)>0)
    {
    //Si le mot de passe es bon, on ne vas pas afficher le formulaire
    $form = false;
    //On enregistre son pseudo dans la session username et son identifiant dans la session userid
    $_SESSION['username'] = $_POST['username'];
    $_SESSION['userid'] = $dn['id'];
    ?>
    <center>
    <div class="message">Vous êtes bien connecté. Vous pouvez accéder à votre espace membre.<br />
    <a href="indexx.php">En cliquant ici</a></div>
    </center>
    <?php
    }
    else
    {
    //Sinon, on indique que la combinaison nest pas bonne
    $form = true;
    $message = 'Erreur dans le Nom d\'utilisateur et/ou dans le mot de passe.';
    }
    }
    else
    {
    $form = true;
    }
    if($form)
    {
    //On affiche un message sil y a lieu
    if(isset($message))
    {
    echo '<div class="message">'.$message.'</div>';
    }
    //On affiche le formulaire
    ?>
    <?php
    session_start();

    //et à l'endroit où tu veux mettre ton formulaire de connexion:
    if(!isset($_SESSION['username']))
    {
    ?>

    <table style="border:2px solid black;">
    <tr>
    <!-- il faut des <tr meme avec les th -->
    <th colspan="2" style="border:2px solid black;">Espace membre </th></tr>
    <tr>
    <td class="aff">
    <center><form name="connexion.php" action="" method="post">
    <label for="username">Nom d'utilisateur</label><input type="text" name="username" id="username" value="<?php echo htmlentities($ousername, ENT_QUOTES, 'UTF-8'); ?>" /><br />
    <label for="password">Mot de passe</label><input type="password" name="password" id="password" /><br />
    <input type="submit" name="connexion" value="Connexion" /><br/>
    <a href="sign_up.php">Inscription</a><br>
    <a href="passperdu.html">Pass perdu</a>
    <!-- si tu mets un name au bouton submit, pas besoin de champ hidden ensuite -->
    <!-- et la balise </form> tu l'as oubliée -->
    </form></center>
    </td>
    </tr>

    </table>
    <?php
    }else{
    echo '<font color="green">Bonjour '.$_SESSION['username'].' Vous êtes connecté à l\'espace membre.</font>';
    ?>
    <br /><a href="log_out.php">Déconnexion</a><br />
    <?php
    }

    }
    }
    ?>

    Quand je suis connecter j'ai un message :
    Vous êtes bien connecté. Vous pouvez accéder à votre espace membre.
    En cliquant ici

    et quand je reviens sur la page d'accueil j'ai :
    Vous êtes connecté à l'espace membre
    Déconnexion
    0
  8. Alain_42 Messages postés 5413 Statut Membre 904
     
    index.php d'origine si je veux acceder à phpmyadmin

    je suppose que tu veux dire accéder à mysql

    ce sont donc les codes d'accès à mysql qui sont différents en local avec wamp et chez ton hebergeur

    alors il faut que tu fasse deux fichier config.php qui contiendra ces codes

    dans le premier celui en local tu mets:
    <?php
    $host="localhost";
    $user="root";
    $pass=""; //ou mot de passe que tu as mis en installant wamp
    $db="nom_de_ta_base";
    ?>

    tu en fait un autre que tu nommes pareil mais que tu mets dans un répertoire configuration_distante/
    <?php
    //tous ces codes ont été fournis par ton hebergeur
    $host="nom_du_serveur";
    $user="code_utiliateur";
    $pass="ton_mdp";  
    $db="nom_de_la_base_hebergeur";
    ?>


    maintenant dans ton fichier index.php pour connexion à la BDD tu modifies
    mysql_connect('nom_serveur','ton_login','ton_mdp');
    mysql_select_db('ta_base');


    par
    include('config.php');
    mysql_connect($host,$user,$pass);
    mysql_select_db($db);


    tu upload index.php chez ton hebergeur ainsi que le fichier config.php que tu prend dans le dossier configuraion_distante
    0
    1. jordxn Messages postés 375 Statut Membre 1
       
      C'est tout a fait cela merci !
      J'avais modifier mon commentaire pour vous parlez d'un probleme plus urgent qui est :


      <?php
      {
      $ousername = '';
      //On verifie si le formulaire a ete envoye
      if(isset($_POST['username'], $_POST['password']))
      {
      //On echappe les variables pour pouvoir les mettre dans des requetes SQL
      if(get_magic_quotes_gpc())
      {
      $ousername = stripslashes($_POST['username']);
      $username = mysql_real_escape_string(stripslashes($_POST['username']));
      $password = stripslashes($_POST['password']);
      }
      else
      {
      $username = mysql_real_escape_string($_POST['username']);
      $password = $_POST['password'];
      }
      //On recupere le mot de passe de lutilisateur
      $req = mysql_query('select password,id from users where username="'.$username.'"');
      $dn = mysql_fetch_array($req);
      //On le compare a celui quil a entre et on verifie si le membre existe
      if($dn['password']==$password and mysql_num_rows($req)>0)
      {
      //Si le mot de passe es bon, on ne vas pas afficher le formulaire
      $form = false;
      //On enregistre son pseudo dans la session username et son identifiant dans la session userid
      $_SESSION['username'] = $_POST['username'];
      $_SESSION['userid'] = $dn['id'];
      ?>
      <center>
      <div class="message">Vous êtes bien connecté. Vous pouvez accéder à votre espace membre.<br />
      <a href="indexx.php">En cliquant ici</a></div>
      </center>
      <?php
      }
      else
      {
      //Sinon, on indique que la combinaison nest pas bonne
      $form = true;
      $message = 'Erreur dans le Nom d\'utilisateur et/ou dans le mot de passe.';
      }
      }
      else
      {
      $form = true;
      }
      if($form)
      {
      //On affiche un message sil y a lieu
      if(isset($message))
      {
      echo '<div class="message">'.$message.'</div>';
      }
      //On affiche le formulaire
      ?>
      <?php
      session_start();

      //et à l'endroit où tu veux mettre ton formulaire de connexion:
      if(!isset($_SESSION['username']))
      {
      ?>

      <table style="border:2px solid black;">
      <tr>
      <!-- il faut des <tr meme avec les th -->
      <th colspan="2" style="border:2px solid black;">Espace membre </th></tr>
      <tr>
      <td class="aff">
      <center><form name="connexion.php" action="" method="post">
      <label for="username">Nom d'utilisateur</label><input type="text" name="username" id="username" value="<?php echo htmlentities($ousername, ENT_QUOTES, 'UTF-8'); ?>" /><br />
      <label for="password">Mot de passe</label><input type="password" name="password" id="password" /><br />
      <input type="submit" name="connexion" value="Connexion" /><br/>
      <a href="sign_up.php">Inscription</a><br>
      <a href="passperdu.html">Pass perdu</a>
      <!-- si tu mets un name au bouton submit, pas besoin de champ hidden ensuite -->
      <!-- et la balise </form> tu l'as oubliée -->
      </form></center>
      </td>
      </tr>

      </table>
      <?php
      }else{
      echo '<font color="green">Bonjour '.$_SESSION['username'].' Vous êtes connecté à l\'espace membre.</font>';
      ?>
      <br /><a href="log_out.php">Déconnexion</a><br />
      <?php
      }


      }
      }
      ?>




      Quand je suis connecter j'ai un message :
      Vous êtes bien connecté. Vous pouvez accéder à votre espace membre.
      En cliquant ici

      et quand je reviens sur la page d'accueil j'ai :
      Vous êtes connecté à l'espace membre
      Déconnexion
      0
    2. Ekinoks60 Messages postés 60 Statut Membre 44
       
      Quel est le problème ?
      0
    3. jordxn Messages postés 375 Statut Membre 1
       
      Quand je suis connecter j'ai un message :
      Vous êtes bien connecté. Vous pouvez accéder à votre espace membre.
      En cliquant ici

      et quand je reviens sur la page d'accueil j'ai :
      Vous êtes connecté à l'espace membre
      Déconnexion


      J'aimerais avoir toujours que sa :
      Vous êtes connecté à l'espace membre
      Déconnexion
      0
    4. Ekinoks60 Messages postés 60 Statut Membre 44
       
      bah,

      <div class="message">Vous êtes bien connecté. Vous pouvez accéder à votre espace membre.


      Tu remplace ça par
      Vous êtes connecté à l'espace membre
      Déconnexion
      0
    5. jordxn Messages postés 375 Statut Membre 1
       
      Mais j'aimerais avoir
      Vous êtes connecté à l'espace membre
      Déconnexion
      dans une table et dans le php je sais pas comment faire ...
      0
  9. Alain_42 Messages postés 5413 Statut Membre 904
     
    c'est exactement ce que je t'ai proposé le 29 nov. 2012 à 21:34
    0
  10. jordxn Messages postés 375 Statut Membre 1
     
    Merci à vous
    0