php sql - mysql_query(INSERT INTO table VALUES(,,,)

Petit nouveau ! | 2 Messages

20 mai 2009, 13:40

Bonjour,

J'ai créé une page d'identification pour un Site Web et je voudrais enregistrer dans une table le Login et la date de connexion, voir code ci-dessous. Par avance je vous en remercie, sincères salutations.
<?php require_once('Connections/connexion_patient.php'); ?>
<?php
// *** Valider l'indentification du User sur le site.
session_start();

$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($accesscheck)) {
  $GLOBALS['PrevUrl'] = $accesscheck;
  session_register('PrevUrl');
}

if (isset($_POST['login'])) {
  $loginUsername=$_POST['login'];
  $password=$_POST['pass'];
  $Date=date("d/m/Y H:i:s");
  $MM_fldUserAuthorization = "niveau";
  $MM_redirectLoginSuccess = "mediatheque/mediatheque_cadre1.htm";
  $MM_redirectLoginFailed = "erreur_log.php";
  $MM_redirecttoReferrer = false;
  mysql_select_db($database_connexion_patient, $connexion_patient);
  
  $LoginRS__query=sprintf("SELECT login, pass, niveau FROM patient WHERE login='%s' AND pass='%s'",
  get_magic_quotes_gpc() ? $loginUsername : addslashes($loginUsername), get_magic_quotes_gpc() ? $password : addslashes($password)); 
   
  $LoginRS = mysql_query($LoginRS__query, $connexion_patient) or die(mysql_error());
  	

  $loginFoundUser = mysql_num_rows($LoginRS);
  
  if ($loginFoundUser) {
    
    $loginStrGroup  = mysql_result($LoginRS,0,'niveau');
    //
    //declare two session variables and assign them
    $GLOBALS['MM_Username'] = $loginUsername;
    $GLOBALS['MM_UserGroup'] = $loginStrGroup;	      

    //register the session variables
    session_register("MM_Username");
    session_register("MM_UserGroup");

    if (isset($_SESSION['PrevUrl']) && false) {
      $MM_redirectLoginSuccess = $_SESSION['PrevUrl'];	
    }
    header("Location: " . $MM_redirectLoginSuccess );
  }
  else {
    header("Location: ". $MM_redirectLoginFailed );
  }
}
// [b]Ou dois-je insérer la ligne ci-dessous pour que la table loghist se mette à jour ?[/b]
//mysql_query("INSERT INTO loghist VALUES('0','$loginUsername','$Date'");

?>

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

20 mai 2009, 14:20

Modération :
Stormtamer, afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.

Des indications sont disponibles sur la manière de mettre en forme vos messages dans la FAQ

ViPHP
ViPHP | 2291 Messages

20 mai 2009, 14:29

J'ai créé une page d'identification pour un Site Web
En ayant déjà coder se que tu montre, je ne voie pas pourquoi tu aurais des soucis à faire un INSERT en base :?:
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

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

21 mai 2009, 12:45

// Ou dois-je insérer la ligne ci-dessous pour que la table loghist se mette à jour ?
//mysql_query("INSERT INTO loghist VALUES('0','$loginUsername','$Date'");
Il te faut mettre cette instruction à l'endroit précis où tu souhaites que php fasse l'insertion dans la base de données.

Il est donc recommandé de le faire après avoir demandé à php d'ouvrir une connexion avec la base de données. Et si tu veux avoir des valeurs pour les variables $loginUsername et $Date, il vaut mieux attendre de les avoir définies. On peut aussi supposer qu'il serait intéressant d'attendre de savoir si l'utilisateur existe avant d'enregistré sa dernière connexion...

A partir de là, tu peux faire ton insertion quand bon te semble, l'idéal étant que ton code reste clair et lisible, donc éviter par exemple de le faire entre 2 déclarations de variables ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit nouveau ! | 2 Messages

23 mai 2009, 16:57

Bonjour, j'ai pas eu beaucoup d'aide sur ce coup là ! Pour ma part j'ai une solution, mais j'aurai aimé quelque chose de plus, comment dire, classe...

La requete est insérée après identification, dans la page qui s'affiche si accescheck est Ok.
<?php require_once('../Connections/connexion_patient.php'); ?>
<?php
//session_start();
$Login=$_SESSION['MM_Username'];
$Date=date("d/m/Y H:i:s");
//echo $Login." ".$Date;
mysql_select_db($database_connexion_patient, $connexion_patient);
$query = "INSERT INTO loghist VALUES(null,'$Login','$Date')";
$Result1 = mysql_query($query, $connexion_patient) or die(mysql_error());
?>
Voilà, je poste, peut-être ça aidera quelqu'un.

Sincères salutations