petit probleme de md5
<?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.
le 26/02/2005 à 13:45
SiM07
oui je crois que je vais reprendre entierement ma page.
je vous tiendrai au courant
le 26/02/2005 à 13:46
Bzh
Pas beau le SELECT *
Ciao...
Select count
Ciao...
Le * tout simplement parce que je ne sais pas si sa table contient une clé primaire.
le 26/02/2005 à 14:14
Bzh
Arf !!!! J' aurais dû regarder de plus près...
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
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.
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...
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
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 !
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...