2017-09-04 11 views
-2

ログインコードを作成しましたが、クエリが機能していないため、アカウントが正しくないと言っているので、いいものではないと思っていました。クエリでmysqli変数が機能しない

'SELECT * FROM `hexa-it-login` WHERE `e_mail`="'.$e_mail.'" AND `password`="'.$password.'"' 

ここに完全なコードがあります。

require 'connect.php'; 
if(isset($_POST['login'])){ 
    $e_mail = $_POST['e_mail']; 
    $password = $_POST['password']; 
    $result = mysqli_query($con, 'SELECT * FROM `hexa-it-login` WHERE `e_mail`="'.$e_mail.'" AND `password`="'.$password.'"'); 
    if(mysqli_num_rows($result)==1){ 
     $_SESSION['e_mail'] = $e_mail; 
     header('Location: ../paneel0.php'); 
    } 
    else 
     echo "Dit account bestaat niet!"; 
} 
+1

プリペアドステートメントを使用するのではなく、生の文字列連結を使用しているため、クエリがそれほど優れていません。あなたのクエリは簡単にSQLインジェクションすることができ、データベースに悪いことが起こる可能性があります。 –

+0

私は2017年に誰もが準備文を使っていたと思っていましたが、間違っているように見えました...まず最初に、このリンクを確認して、準備された文を使用してください:http://php.net/manual/en/mysqli.prepare.php –

+0

DBにパスワードが保存されている可能性があります。**暗号化されています**一方でログインを確認しています**プレーン**パスワード。これは他の部分を実行する理由の一つになります。 –

答えて

-4

より具体的には、次のことを実行しようと、

まず使用mysqli_error、それは、エラーのいずれかの種類がある場合は、あなたが知っているよう

if (!$result = mysqli_query($con, 'SELECT * FROM `hexa-it-login` WHERE `e_mail`="'.$e_mail.'" AND `password`="'.$password.'"')) 
    { 
     echo("Error description: " . mysqli_error($con)); 
    } 

第二に、必ずしますユーザーが実際にデータベースに存在する場合。

これはあなたの問題の正確な解決策ではありませんが、これにより結果が出る可能性があります。

+1

* Paaji *、質問にコメントを提出してください。これは答えではありません。 –

+1

@NanaPartykar私はあなたが私のポストの最後の行を見逃したと思う –

+0

私のデータベースhahahaで暗号化されたパスワードwhas md5を忘れてしまった。とにかく Thx! –

関連する問題