petit probleme de md5

Répondre
LA GLOBULE
le 26/02/2005 à 13:35
LA GLOBULE
<?php
$sql = 'SELECT count(*) FROM membres WHERE pseudo = "'.$_POST['login'].'" AND password="'.md5($_POST['pwd']).'"';
$req = mysql_query($sql) or die('ERREUR SQL ! '.$sql.''.mysql_error());

$nb = mysql_fetch_array($req);

if ($nb[0] == 0) {
// mauvais login ou mauvais mot de passe
}
elseif ($nb[0] == 1) {
// compte ok
}
else {
// problème : au moins deux comptes ont le meme login / password
}
?>


Tu peux faire quelque chose de ce genre.
SiM07
le 26/02/2005 à 13:45
SiM07
oui je crois que je vais reprendre entierement ma page.

je vous tiendrai au courant
LA GLOBULE
le 26/02/2005 à 13:49
LA GLOBULE
Select count smiley

Ciao...

Le * tout simplement parce que je ne sais pas si sa table contient une clé primaire.
Rex
le 26/02/2005 à 17:17
Rex
Au sujet des apostrophes, je m'explique :

Dans le cas flagrant ici, si les magic_quotes sont activés, il n'y a pas de risque d'injection SQL.
Mais l'auteur de ce script en a-t-il conscience ?

En cela, les magic_quotes ont sauvé de nombreux sites web.

Mais une chose est claire, si on a conscience des problèmes d'injection SQL, il faut absolument utiliser mysql_real_escape_string (et non addslashes) en faisant attention de supprimer les slahes introduit par magic_quotes s'ils sont activés.
Un hamster dit : J'ai dressé le scientifique, quand j'appuie sur le bouton, il me donne des graines
LA GLOBULE
le 26/02/2005 à 17:47
LA GLOBULE
Personnellement, j'ai pris la mauvaise habitude de faire confiance au magic_quotes.
Sur mon hebergement actuel, que j'ai depuis des années, les magic_quotes sont et seront toujours activées.

C'est une erreur de ne plus se préoccuper de ce problème.

A ce propos d'ailleurs, je suis en train de refaire tous les cours (ca fait 1 mois que j'ai commencé, je n'ai toujours pas fini :/) pour prendre en considération tous ces problèmes.
Bzh
le 26/02/2005 à 18:19
Bzh
Ha oui !!! Ok...

La je suis tt à fait d' accord avec toi !!! Rex...

Si les magic_quotes sont activés pas de souci...

En cela, les magic_quotes ont sauvé de nombreux sites web.


Tout à fait d' accord avec toi !!!

Et je suis bien placé pour parler...

Merci... Bye...
SiM07
le 26/02/2005 à 20:42
SiM07
Voici le nouveau

<?php
if (isset($_POST['login']) && empty($_POST['pwd'])){
echo '<body onLoad="alert(\'Vous avez pas rentré de mot de passe ! \')">'.'<meta http-equiv="refresh" content="0;URL=index.php">';
}

elseif (empty($_POST['login']) && isset($_POST['pwd'])){
echo '<body onLoad="alert(\'Vous n avez pas rentré de login ! \')">'.'<meta http-equiv="refresh" content="0;URL=index.php">';
}

elseif (isset($_POST['login']) && isset($_POST['pwd'])) {

$login = addslashes($_POST['login']);
$pwd = $_POST['pwd'];

$sql = 'SELECT password FROM membres Where pseudo="'.$login.'"';
$req = mysql_query($sql);
$data = mysql_fetch_array($req);
mysql_close();

$sqlpwd = $data['password'];

if ($sqlpwd != $pwd) {
?><body onLoad="alert('Votre mot de passe ou votre login est incorrect, veuillez reessayer.')"><meta http-equiv="refresh" content="2;URL=index.php"><?
}

elseif ($sqlpwd == $pwd) {
$temps = 300;
setcookie ("pseudo", $_POST['login'], time() + $temps);
setcookie ("password", $_POST['pwd'], time() + $temps);
?><meta http-equiv="refresh" content="0;URL=membres.php"><?
}

else {
Merci de me signaler le probleme !
}

}


?>






Par contre a l'inscription je comptait retirer les caractere speciaux avec
mysql_real_escape_string


mais ceci va les suprimer non donc si par exemple je m'inscrit en S!M07 comme je fait d'habitude sur les forum phpbb la ca ne marchera pas si ? sinon il fat que je met un message d'erreur mais je ne sais pas comment le faire celui-là !
A moins que le ! sois remplacer par des caractere autoriser.

De meme pour l'adresse e-mail il faut suprimé les caractere speciaux sauf le arobase comment ?

Enfin bon si on pouvais me repondre merci

Je crois que je commence a etre tres enervant !
Bzh
le 26/02/2005 à 20:57
Bzh
Non, il ne supprime pas...

Il rajoute jute le \ devant pour échaper...

C' est tout !!!

Lors de l' affichage utilise stripslash() pour enlever les \ ...

Ciao...
Répondre
LoadingChargement en cours