2017-04-12 19 views
0

インターネット上のさまざまなPHPバリデータでこのコードを実行しましたが、この2つの機能(mysql_query,)は現在のバージョンのPHPでは廃止されました。ユーザがログインシステムをPHPにインストールしているかどうかを確認しようとしています

私はログインフォームに入力したユーザー名とパスワードがデータベース/ phpMyAdminの内容とまったく同じでも、次のコードは正しく実行されていませんか?

$sqluserandpass = "SELECT * FROM users WHERE username = '$username' AND password = '$password'"; 
$result = mysqli_query($con, $sqluserandpass); 
$check = mysqli_fetch_array($result); 
if(isset($check)){ 
    //User is existed 
}else{ 
    //User is not existed 
{ 

をあなたは、単にこのような何かを行うことによって、SQLインジェクションを回避する必要があります。:これは動作するはずです

<?php 
    function user_exists($username){ 

    $username = sanitize($username); 
    return (mysql_result(mysql_query("SELECT COUNT(user_Id) FROM `users` WHERE `username` = '$username'"), 0) == 1) ? true : false; 
} 
?> 
+1

* *以下のコードは**です。どこ? –

+0

申し訳ありません、私はそこで編集しました – Donal5

+1

** mysqli _ ***に切り替えてロジック –

答えて

-1

$stmt = $conn->prepare("SELECT * FROM users WHERE (username, password) VALUES (?, ?)"); 
$stmt->bind_param("ss", $username, $password); 

//execute 
$stmt->execute(); 

あなたに有用であった希望:)

+1

これは便利ですが、それでもSQLインジェクションを避ける方法は説明されていないため、悪いです。 – Adder

+0

@Adder私はPreparedStatementの使い方やSQLインジェクションを避ける方法には答えていません。私は彼の問題を解決するために彼の質問に答えています。 –