par
moogli » 05 oct. 2014, 20:32
salut,
merci d'utiliser les bbcode (les petits carrés / rectangles au dessus de la zone de saisie) afin de mettre en forme ton message que cela soit lisible.
pour ton code
- tu peux te passer des isset empty jouant ce role (si la variable n'existe pas = pas d'erreur et retourne true).
- extract est a proscrire (possibilités de collision / écrasement de variable, perte de l'origine des variables => foutoire). .
- on n'utilise pas le mot de passe dans la requête sql (parce que c'est une chance de plus de la passe en clair sur le réseau).
- if ($row['login'] != $login) s'il n'y a pas de résultat il y aura une erreur (undefined index) et le test va être validé. Au final c'est le but rechercher mais ce n'est pas "propre".
- $_SESSION['login'] = $_POST['login']; => autant ne l'écrire qu'une fois avant le switch
- en sql les délimiteurs de chaines de caractères c'est les apostrophes pas les guillemets
Donc si tu as un message c'est que tu dois vérifier effectivement user / password qui ne doivent pas correspondre ou exister dans la base de données
au final
<?php
$sql = 'SELECT mot_de_passe,status FROM admin_smtp WHERE login=\'' . mysql_escape_string($_POST['login']) . '\'';
$result = mysql_query($sql) ;
if($result === false) {
// message d'erreur pertinent et pas de die, inclus l'index et le message doit s'afficher correctement dans la mise en page. et mieux un "production" ce message ne doit pas être affiché mais seulement logé et un message bateau (genre erreur technique) doit être affiché).
}else {
$data = mysqll_fetch_assoc($result);
if($data == null){
echo '<p>Login existe pas merci de recommencer</p>';
include('./index.php'); // On inclut le formulaire d'identification
exit;
}else {
if(data['mot_de_passe'] == $_POST['mot_de_passe']) {
le switch
}else {
// mot de passe KO !
}
}
dernière chose vu ton code les mots de passes sembles stockés en clair dans la base de données c'est une mauvaise idée, il est préférable d'utiliser un hash.
la fonction
password_hash peux t'aider pour cela

.
@+