chuky78
Messages postés6Date d'inscriptionmercredi 23 mars 2005StatutMembreDernière intervention10 avril 2009 19 nov. 2008 à 01:14
bonjour je suis dans le meme cas que hotfirenet, il me semble que quand on interroger la base il fallait mettre host et les mot de passe pour y asseder
est ce qu'avac le php 5 ou le poo ce n'est plus utiles, car la je m'y perds
hotfirenet
Messages postés8Date d'inscriptionmardi 20 mai 2003StatutMembreDernière intervention10 novembre 2006 10 nov. 2006 à 15:04
Comment on l'utilise ta class car moi la poo je connais pas du tout
wolfcyber95
Messages postés48Date d'inscriptionjeudi 8 septembre 2005StatutMembreDernière intervention16 août 2010 16 oct. 2006 à 16:30
merci beaucoup kankrelune, je vais faire ca, et pour un ID de session j'ai vu ca sur php.net je suis en train de modifier ma classe pour le faire, je la reposterai des que possible. ++
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 16 oct. 2006 à 13:36
Ah j'oubliais... il peut être bien de rajouder en session un id spécial pour éviter le vol de session... va voir sur...
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 16 oct. 2006 à 13:30
C'est mieux... .. . ;o)
Sinon si je puis me permettre...
- 1 - je pense que ta classe ne devrait pas gérer l'affichage du formulaire et des messages d'erreur... sont boulot c'est de controler l'internaute pas de faire de l'affichage... qui plus est forcer l'affichage depuis ta classe peut poser des problèmes si on utilise un système de templates
- 2 - en reprenant le 1 ta methode valid_auth() devrait prendre en argument le nom d'utilisateur et le pass qui sont soummis... ce qui permet directement dans le code de faire...
if($monObj->valid_auth($_POST['uname'],$_POST['upass']))
// c'est bon
else
// c'est pas bon
Qui plus est cela permet d'utiliser, dans le formulaire, les noms de champs que l'on veut et non pas d'être cantoné à user et passwd... .. .
- 3 - tu ne fait aucun echappement de caractère avant de faire ta requete... c'est risqué... très risqué... toujours utiliser mysql_real_escape_string sur les variables provenant de l'utilisateur... .. .
- 4 - session_unset() est déprécié il me semble... utilise plutot session_destroy()
$_SESSION = array();
if (isset($_COOKIE[session_name()]))
setcookie(session_name(), '', time()-42000, '/');
session_destroy();
- 5 - ne t'embete pas à passer les valeurs de session dans base64, etc... cela pouvait s'avérer necessaire pour le stockage en cookie mais pour les session c'est inutile... tu perd du temps pour rien... .. .
- 6 - avant de faire ton mysql_fetch_array() sur le résultat retourné par mysql vérifis que mysql à trouvée quelque chose... car si l'utilisateur c'est planté en entrant son pseudo ça risque de planter... qui plus est utilise empty plutot que != "" car si ta variable est null ça passe (et ça casse ?)... .. .
function valid_auth($name,$pass)
{
if(!empty($name) and !empty($pass)) // Verifie que les champs ne sont pas vides
{
// Selectionne le mot de passe suivant le login
$result = mysql_query('SELECT passwd FROM comptes WHERE user=\''.mysql_real_escape_string($name).'\'');
if(mysql_num_rows($result) !== 1) // on a trouvé l'utilisateur ou pas ?
return false;
$pass = md5($pass); // Hasch le mot de passe
$row = mysql_fetch_array($result);
if($row['passwd'] === $pass) // Verifie si le mot de passe est correct
{
$_SESSION[$this->name_session] = array(
'name' => $name,
'pass' => $pass
);
return true;
}
}
return false;
}
Voili voilou... .. .
@ tchaOo°
lefter
Messages postés63Date d'inscriptionlundi 7 juin 2004StatutMembreDernière intervention16 mai 2009 16 oct. 2006 à 12:55
Utilise les variables de sessions + ip utilisateur pour l'identification, c'est moins risqué!!!
°Tchao°
wolfcyber95
Messages postés48Date d'inscriptionjeudi 8 septembre 2005StatutMembreDernière intervention16 août 2010 14 oct. 2006 à 20:02
Merci kankrelune... j'ai suivi tes conseils
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 14 oct. 2006 à 17:54
Ulla... une authentification basée sur les cookies... risqué... .. .
19 nov. 2008 à 01:14
est ce qu'avac le php 5 ou le poo ce n'est plus utiles, car la je m'y perds
10 nov. 2006 à 15:04
16 oct. 2006 à 16:30
16 oct. 2006 à 13:36
http://www.phpcs.com/codes/CLASSE-SESSION-AUTHENTIFICATION_39893.aspx
j'en parle brievement... .. .
@ tchaOo°
16 oct. 2006 à 13:30
Sinon si je puis me permettre...
- 1 - je pense que ta classe ne devrait pas gérer l'affichage du formulaire et des messages d'erreur... sont boulot c'est de controler l'internaute pas de faire de l'affichage... qui plus est forcer l'affichage depuis ta classe peut poser des problèmes si on utilise un système de templates
- 2 - en reprenant le 1 ta methode valid_auth() devrait prendre en argument le nom d'utilisateur et le pass qui sont soummis... ce qui permet directement dans le code de faire...
if($monObj->valid_auth($_POST['uname'],$_POST['upass']))
// c'est bon
else
// c'est pas bon
Qui plus est cela permet d'utiliser, dans le formulaire, les noms de champs que l'on veut et non pas d'être cantoné à user et passwd... .. .
- 3 - tu ne fait aucun echappement de caractère avant de faire ta requete... c'est risqué... très risqué... toujours utiliser mysql_real_escape_string sur les variables provenant de l'utilisateur... .. .
- 4 - session_unset() est déprécié il me semble... utilise plutot session_destroy()
$_SESSION = array();
if (isset($_COOKIE[session_name()]))
setcookie(session_name(), '', time()-42000, '/');
session_destroy();
- 5 - ne t'embete pas à passer les valeurs de session dans base64, etc... cela pouvait s'avérer necessaire pour le stockage en cookie mais pour les session c'est inutile... tu perd du temps pour rien... .. .
$_SESSION[$this->name_session] = array(
'name' => $this->user,
'pass' => $this->passwd
);
- 6 - avant de faire ton mysql_fetch_array() sur le résultat retourné par mysql vérifis que mysql à trouvée quelque chose... car si l'utilisateur c'est planté en entrant son pseudo ça risque de planter... qui plus est utilise empty plutot que != "" car si ta variable est null ça passe (et ça casse ?)... .. .
function valid_auth($name,$pass)
{
if(!empty($name) and !empty($pass)) // Verifie que les champs ne sont pas vides
{
// Selectionne le mot de passe suivant le login
$result = mysql_query('SELECT passwd FROM comptes WHERE user=\''.mysql_real_escape_string($name).'\'');
if(mysql_num_rows($result) !== 1) // on a trouvé l'utilisateur ou pas ?
return false;
$pass = md5($pass); // Hasch le mot de passe
$row = mysql_fetch_array($result);
if($row['passwd'] === $pass) // Verifie si le mot de passe est correct
{
$_SESSION[$this->name_session] = array(
'name' => $name,
'pass' => $pass
);
return true;
}
}
return false;
}
Voili voilou... .. .
@ tchaOo°
16 oct. 2006 à 12:55
°Tchao°
14 oct. 2006 à 20:02
14 oct. 2006 à 17:54
@ tchaOo°