Derniere connexion avec une session

Petit nouveau ! | 3 Messages

19 janv. 2017, 22:24

Bonjour a tous

Voila j'ai un soucie j'arrive pas a faire en sorte que quand je me connecté a m as session que la date s’enregistre dans ma base de donnée :'(

J'ai actuellement mon formulaire de connexion
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <!-- Meta, title, CSS, favicons, etc. -->
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
 
    <title>*****</title>
 
    <!-- ****-->
    <link href="../vendors/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet">
    <!-- Font Awesome -->
    <link href="../vendors/font-awesome/css/font-awesome.min.css" rel="stylesheet">
    <!-- NProgress -->
    <link href="../vendors/nprogress/nprogress.css" rel="stylesheet">
    <!-- Animate.css -->
    <link href="../vendors/animate.css/animate.min.css" rel="stylesheet">
 
    <!-- Custom Theme Style -->
    <link href="../build/css/custom.min.css" rel="stylesheet">
  </head>
 
  <body class="login">
    <div>
      <a class="hiddenanchor" id="signup"></a>
      <a class="hiddenanchor" id="signin"></a>
 
      <div class="login_wrapper">
        <div class="animate form login_form">
          <section class="login_content">
            
<?php
session_start();
  
// Attention, il est préférable d'utiliser une autre façon de se connecter à MySQL
// Voyez l'article sur mysql + PDO
// ici le but n'est pas d'illustrer la connexion MySQL.
 $host = "***";
$Nom_sql = "***";
$password_sql = "***";
$nom_bd_sql = "***";
  
    mysql_connect($host, $Nom_sql, $password_sql)
or die('Impossible de se connecter au serveur '.$host.'. veuillez verifier votre configuration');
    mysql_select_db($nom_bd_sql)
or die('Impossible de se connecter a la base de donnée '.$nom_bd_sql.'');
 
if (!isset($_POST['submit']))
{
    // c'est la première fois qu'on vient sur cette page, aucun formulaire soumis
    echo '
 
 
 
 
 
 
    <form id="connect" method="post" action="">
    <fieldset><legend>Formulaire de connexion</legend>
        <p><label for="login">Login : </label><input type="text" id="login" name="login" tabindex="1" value="" /></p>
        <p><label for="pwd">Mot de passe :</label><input type="password" id="pwd" name="pwd" tabindex="2" /></p>
    </fieldset>
    <div><input type="submit" name="submit" value="Connexion" tabindex="3" /></div>
    </form>
';
}
else
{
    // le formuaire vient d'être soumis
    $login  = (isset($_POST['login'])) ? htmlentities(trim($_POST['login'])) : '';
    $pwd   = (isset($_POST['pwd']))    ? htmlentities(trim($_POST['pwd']))   : '';
  
    if (($login != '') && ($pwd != ''))
    {
        // Login et pwd non vides, on  vérifie s'il y a quelqu'un qui correspond
        $req_utilisateur = sprintf("SELECT
                            nom,
                            prenom,
                            grade,
                            deplacement,
                            adhesion,
                            email,
                            general,
                            admin,
                            wordpress,
                            vente,
                            email2,
                            avatars,
                            actif,
                            urban,
                            deplacementexterrieur
                        FROM
                            users2
                        WHERE
                            (login = '%s' AND passwd = '%s')",$login, md5($pwd));
        $utilisateur = mysql_query($req_utilisateur) or die($req_utilisateur."<br />\n".mysql_error());
  
        if (mysql_num_rows($utilisateur) == 1)
        {
            // Oui il y a quelqu'un ...
            $personne = mysql_fetch_array($utilisateur);
  
            // On  enregistre ses données dans la session
            $_SESSION['login'] = $login; // permet de vérifier que l'utilisateur est bien connecté
            $_SESSION['nom'] = $personne['nom'];
            $_SESSION['prenom'] = $personne['prenom'];
            $_SESSION['grade'] = $personne['grade'];
            $_SESSION['deplacement'] = $personne['deplacement'];
            $_SESSION['adhesion'] = $personne['adhesion'];
            $_SESSION['email'] = $personne['email'];
 $_SESSION['general'] = $personne['general'];
  $_SESSION['admin'] = $personne['admin'];
    $_SESSION['wordpress'] = $personne['wordpress'];
      $_SESSION['vente'] = $personne['vente'];
        $_SESSION['email2'] = $personne['email2'];
          $_SESSION['avatars'] = $personne['avatars'];
            $_SESSION['actif'] = $personne['actif'];
            $_SESSION['urban'] = $personne['urban'];
            $_SESSION['deplacementexterrieur'] = $personne['deplacementexterrieur'];
            // Maintenant que tout est enregistré dans la session, on redirige vers la page des photos
            echo '<p>Vous êtes correctement identifié(e), <a href="Accueil2.php">cliquez ici pour allez à votre compte</a></p>'."\n";
        }
        else
        {
            // Erreur dans le login et / ou dans le mot de passe ...
            echo '<p>Désolé, vous avez peut-être fait une erreur dans la saisie des identifiants, mais votre parcours se finit là ... </p>'."\n";
        }
    }
    else
    {
        // il n'y a personne qui répond à ces 2 identifiants
        echo '<p>Désolé, vous avez peut-être fait une erreur dans la saisie des identifiants, mais votre parcours se finit là ... </p>'."\n";
    };
} // end of (isset($_POST['submit']))
?>
 
<?php
if (!isset($_SESSION["users2"])) {
$mysql_selection_date = mysql_query("SELECT connect FROM users2 WHERE pseudo=".$_SESSION['membre']);
$reponse_temps = mysql_fetch_array($mysql_selection_date);
$_SESSION["connect"] = $reponse_temps["connect"];
mysql_query("UPDATE users2 SET connect='".date("U")."' WHERE pseudo=".$_SESSION['membre']);
}
?>
 
              <div class="clearfix"></div>
 
              <div class="separator">
              
 
                <div class="clearfix"></div>
                <br />
 
                <div>
                
                </div>
              </div>
            </form>
          </section>
        </div>
 
        <div id="register" class="animate form registration_form">
          <section class="login_content">
            <form>
              <h1>Create Account</h1>
              <div>
                <input type="text" class="form-control" placeholder="Username" required="" />
              </div>
              <div>
                <input type="email" class="form-control" placeholder="Email" required="" />
              </div>
              <div>
                <input type="password" class="form-control" placeholder="Password" required="" />
              </div>
              <div>
                <a class="btn btn-default submit" href="index.html"></a>
              </div>
 
              <div class="clearfix"></div>
 
              <div class="separator">
                <p class="change_link">
                  <a href="#signin" class="to_register"> </a>
                </p>
 
                <div class="clearfix"></div>
                <br />
 
                <div>
                   
                </div>
              </div>
            </form>
          </section>
        </div>
      </div>
    </div>
  </body>
</html>

Et j'ai la formule pour rajouter la date
<?php
if (!isset($_SESSION["users2"])) {
$mysql_selection_date = mysql_query("SELECT connect FROM users2 WHERE pseudo=".$_SESSION['membre']);
$reponse_temps = mysql_fetch_array($mysql_selection_date);
$_SESSION["connect"] = $reponse_temps["connect"];
mysql_query("UPDATE users2 SET connect='".date("U")."' WHERE pseudo=".$_SESSION['membre']);
}
?>
Mes je ne sais pas ou l'as rajouter pour la faire fonctionné
Je vous remerci de votre aide
Cordialement

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

20 janv. 2017, 12:57

salut,

tu n'as pas besoin de faire cela, si ton champ est de type date tu peux simplement faire
update user2 set connect = now() where pseudo = ...

il faut mettre cette requête dans le if qui confirme la validité des informations de connexion (avec la tas de variable de session et le message).
tu sais que tu peux avantageusement virer tous ça pour ne mettre directement le tableau issue la requête sql dans un index de session ?

$_SESSION['utilisateur'] = $personne;
ça évite de tout mélanger c'est beaucoup plus claire et limite le nombre de ligne de code ;)


@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 3 Messages

20 janv. 2017, 22:58

Bonjour moogli

Je suis vraiment désolé de t’embête mes j'ai pas compris quand tu marque <<
il faut mettre cette requête dans le if qui confirme la validité des informations de connexion (avec la tas de variable de session et le message). >>

Peut tu me donnée plus de détail et d'information
Je te remercie avance et encore désolé de te déranger
Cordialement

Petit nouveau ! | 3 Messages

20 janv. 2017, 23:07

je relance maintenant que je suis inscrit

Eléphanteau du PHP | 22 Messages

21 janv. 2017, 20:45

Bonjour, Kira1738

Le if donné par moogli est :
if (mysql_num_rows($utilisateur) == 1)
{

et comme il te l'indique récupére uniquement le login de l'utilisateur en variable de session, tu interrogeras la base au besoin.
ne pas oublier de créer un champ date dans la table utilisateur et de l'actualiser avec une requête update dans le fameux if .
Tu peux retirer toutes ces lignes (sauf si tu ne veut pas interroger la base)
$_SESSION['nom'] = $personne['nom'];
$_SESSION['prenom'] = $personne['prenom'];
$_SESSION['grade'] = $personne['grade'];
$_SESSION['deplacement'] = $personne['deplacement'];
$_SESSION['adhesion'] = $personne['adhesion'];
$_SESSION['email'] = $personne['email'];
$_SESSION['general'] = $personne['general'];
$_SESSION['admin'] = $personne['admin'];
$_SESSION['wordpress'] = $personne['wordpress'];
$_SESSION['vente'] = $personne['vente'];
$_SESSION['email2'] = $personne['email2'];
$_SESSION['avatars'] = $personne['avatars'];
$_SESSION['actif'] = $personne['actif'];
$_SESSION['urban'] = $personne['urban'];
$_SESSION['deplacementexterrieur'] = $personne['deplacementexterrieur'];

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

23 janv. 2017, 18:18

salut,

pour les info utilisateaur je pensais à utiliser un tableau en session histoire de garder une certaine cohérence dans le tableau
$_SESSION['user'] = $personne;
pour le nom de l'utilisateur $_SESSION['user']['nom'].
pour savoir s'il est connecté if(!empty($_SESSION['user'])


pour le reste tu as déjà la réponse.

par contre alléger le système te sera bénéfique sur le long terme. C'est plus simple à comprendre et a maintenir => KISS (Keep It Simple & Stupide, rien de péjoratif juste un état à considérer ;) )

@+
Il en faut peu pour être heureux ......