2013-04-01 4 views
-2

Je ne peux pas me connecter.Lorsque cliquez sur le bouton, connectez-vous à l'écran WRONG USERNAME OU PASSWORD. Le db est l'identifiant, le nom d'utilisateur, le mot de passe et le niveau. SELECT id, username, password, level DE loginMAUVAIS NOM D'UTILISATEUR OU MOT DE PASSE

<?php 
ob_start(); 
$message = ""; 
if (isset ($_POST['login'])) 
    { 
    include 'admin/dbconnect.php'; 
    $username = $_POST['username']; 
    $password = $_POST['password']; 
    if ($username != "" && $password != "") 
    { 

    $sql = "SELECT * FROM login WHERE username = '$username' and password = '$password' "; 
    $result = mysql_query($sql) ; 
    $row = mysql_fetch_array($result, MYSQL_ASSOC); 
    if (mysql_num_rows($result) ==1) 
    { 
     session_start(); 
     $_SESSION['isLogged_in'] = true; 
     $_SESSION['username'] = $row['username']; 
     $_SESSION['level'] = $row['level']; 
     $message = 'Logged-in successfully'; 
     } 
     else 
     { 
      $message = 'WRONG USERNAME OR PASSWORD'; 
     } 
    } 

    else 
    { 
     $message = 'PLEASE RE-INPUT YOUR USERNAME AND PASSWORD'; 
    } 
    } 


    ?> 
+1

Veuillez poster l'URL sur votre site Web afin que nous ne puissions pas la visiter pour stocker nos mots de passe en clair. –

+1

Aussi, nous ne pouvons pas totalement l'enlever via une INJECTION SQL! – deceze

+0

avez-vous vérifié le journal des erreurs? –

Répondre

1

Utilisez mysql_escape_string pour protéger contre les injections sql, même si vous avez php 5.5.0 ou mieux, vous devriez utiliser quelque chose comme mysqli parce que toutes les commandes de mysql_ sont déconseillés.

$sql = sprintf("SELECT * FROM login WHERE username = '%s' and password = '%s'", mysql_real_escape_string($username), mysql_real_escape_string($password)); 

En ce qui concerne le problème réel, il peut être que d'autres personnes ont dit (connexion db) et juste pour être sûr juste dire: (pour des entrées multiples si c'est même possible)

if (mysql_num_rows($result)) 
-2

Can vous essayez à l'aide:

SELECT * FROM login WHERE username = '$username' and password = '$password' LIMIT 1 

LIMIT 1 à la fin.

Peut-être que vous avez plusieurs lignes correspondant au même nom d'utilisateur et mot de passe.

+0

J'ai seulement 1 ligne de données. J'essaie de mettre LIMIT 1 mais ne fonctionne pas –

+0

-1 question n'est pas une réponse. –

Questions connexes