Espace membre: Impossible d'authentifier

Invité
Invité n'ayant pas de compte PHPfrance

18 oct. 2005, 20:18

echo $res => Resource id #8non
echo $req => select * from administrator where login="Admin" and passwd="e3afed0047b08059d0fada10f400c1e5"non

Mammouth du PHP | 19672 Messages

18 oct. 2005, 20:27

Le code proposé par jeff revu et corrigé:
<?php
session_start();//demarrage de la session
include ('config.php');

$log = isset($_POST['login']) ? addslashes(trim($_POST['login'])) : 'inconnu';
$mdp = isset($_POST['mdp'])   ? addslashes(trim($_POST['mdp']))   : 'inconnu';

$connection = mysql_connect($host, $user, $pass) or die(mysql_error());
$req = "SELECT * FROM administration WHERE login='". $log ."' and mdp='". md5($mdp) .";";//avec hachage md5 pour le mdp
$res = mysql_query($req) or die ('Erreur:'.mysql_error());
if(mysql_num_row($res) > 0)//verif de l'existence de l'utilisateur
{
    $_SESSION['log']  = $log;
    $_SESSION['auth'] = "oui";
}
else
{
    echo 'non';
}
?>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

18 oct. 2005, 20:29

j ai deja corrige le code comme addslasche => addslashes ...

Mammouth du PHP | 19672 Messages

18 oct. 2005, 20:35

Mouais, sauf que la proposition au niveau de l'opérteur ternaire me semblait un peu farfelue. Je ne suis pas certain que le résultat attendu était le bon, mais ça avait l'air de fonctionner si j'en juge par l'affichage de ta requête. Maintenant il faudrait savoir si ça fonctionne ou non: dans ta base, les mots de passes sont bien hachés avecc md5() ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

18 oct. 2005, 20:40

avec AES_ENCRYPT

Mammouth du PHP | 19672 Messages

18 oct. 2005, 20:56

Ça peut bien ne pas fonctionner alors .... la requête n'est pas bonne et il ne faut pas traiter le mot de passe avec md5() mais directement en SQL avec AES_ENCRYPT:
<?php
//....
$req = "SELECT * FROM administration WHERE login='". $log ."' and mdp=AES_ENCRYPT('". $mdp ."', 'cle_de_chiffrement');";//avec chiffrement SQL AES_ENCRYPT pour le mdp
//....
?>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

19 oct. 2005, 02:29

est ce une methode securise? ou bien le md5 est la meilleure

Mammouth du PHP | 19672 Messages

19 oct. 2005, 09:14

C'est aussi sécurisé voire mieux que md5 et ça présente un avantage : md5() ou sha1() sont des méthodes de hachage irréversible. Si l'internaute abonné perd son mot de passe, il faut en générer un nouveau. AES_ENCRYPT en rechange est une méthode de cryptographie réversible. Ça n'en est pas moins crypté et l'ajout d'une clé de cryptage rend le système encore moins évident à casser. Et en utilisant AES_DECRYPT, tu peux inverser le processus pour renvoyer son mot de passe à l'étourdi qui a perdu le sien.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: