Session

Signaler
Messages postés
24
Date d'inscription
mercredi 30 novembre 2005
Statut
Membre
Dernière intervention
22 mai 2007
-
Messages postés
1406
Date d'inscription
mercredi 17 août 2005
Statut
Membre
Dernière intervention
28 août 2007
-
je m authenfie et sur cete page je verifie le mot de passe et le login.est ce sur cette page que doit créer ma session? si oui pouvez vous me dire si ce code est juste.
merci d'avance

<?php
session_start();
include("connexion.php");


if (isset($_POST['log'],$_POST['Motpasse'])){


 $nom = $_POST['log'];
 $passe= $_POST['Motpasse'];
     
 $result=mysql_query("select * from utilisateur where NomMemUti ="$nom" and MotdepasseUti="$passe"");
 
 
 if($rst=mysql_fetch_assoc($result)){
 
   $_SESSION['$nom'];
   
   echo "
Authentification correcte
";   
   echo "Passer au Menu"; 
  
 }else{  
  echo "<meta http-equiv='refresh' content="0; url='acces.html'">";
 }
 
 
 
 
}else{ 
 echo "<meta http-equiv='refresh' content="0; url='acces.html'">";
}
?>

4 réponses

Messages postés
414
Date d'inscription
lundi 19 juillet 2004
Statut
Membre
Dernière intervention
23 septembre 2014

Bonjour

Oui tu peux créer tes variables de session ici, et verifier si elles existent dans les pages où l'authentification est nécessaire.

Je te conseille de remplacer dans ta requête $nom par addslashes($nom) et de faire de même pour le mot de passe. Ca limitera (un peu) les risques d'injection SQL...
Messages postés
403
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
7 août 2020
1
Bonjour,

Petite précision, si tu possède une base de données mysql, préfères plutôt la fonction mysql_real_escape_string à addslashes(). Cette fonction est spécialement conçus pour les base mysql (il doit exister le même style de fonction pour les autres bases de données).

Bonne prog :)
Messages postés
403
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
7 août 2020
1
Bonjour,

Petite précision, si tu possède une base de données mysql, préfères plutôt la fonction mysql_real_escape_string à addslashes(). Cette fonction est spécialement conçus pour les bases mysql (il doit exister le même style de fonction pour les autres bases de données).

Bonne prog :)
Messages postés
1406
Date d'inscription
mercredi 17 août 2005
Statut
Membre
Dernière intervention
28 août 2007
9
Salut,

Effectivement l'utilisation de mysql_real_escape est primordial !!!!!

Je rajouterais : vérifie que tu ne trouve bien qu'un seul utilisateur... Si tu en trouve deux, ça veut dire qu'il y a bug qque part... Et tu ne peux pas être sûr que le premier utilisateur sorti de ta base (celui que tu choisis avec mysql_fetch_* est vraiment le bon.)

donc :
if ( mysql_num_rows($result) !== 1 ) {

    // Gestion erreur ici

    // Je te conseil de te faire envoyer un mail, car ce genre d'erreur prouve soit une tentative d'injection URL,

    // soit que ta table d'utilisateur est branlantte !!!

    mail ( 'ma.pomme@phpcs.fr', 'ERREUR de connexion sur mon.site.web : plusieurs utilisateurs trouvés', print_r($GLOBALS));

    // et puis le reste pour authentification échouée

}

A+