2017-05-13 15 views
0

基本認証をMySQLデータベースに接続したいとします。実際には、PHPでログインREST APIを開発しています。現在のところ、PHP Authorizationスクリプトでユーザー名とパスワードをハードコードしていますが、MySQLに接続して、基本認証で自分のデータベースでユーザー名とパスワードを検証する必要があります。ここで PHPの基本認証でSQLクエリを接続する方法

は私のコードです:

<?php 
// User name and password for authentication 

$username = 'admin'; 
$password = 'password'; 

if (!isset($_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP_AUTH_PW']) || 
    ($_SERVER['PHP_AUTH_USER'] != $username) || ($_SERVER['PHP_AUTH_PW'] != $password)) { 
    // The user name/password are incorrect so send the authentication headers 
    header('HTTP/1.1 401 Unauthorized'); 
    header('WWW-Authenticate: Basic realm="Guitar Wars"'); 
    exit('<h2>Guitar Wars</h2>Sorry, you must enter a valid user name and 
      password to access this page.'); 
} 
?> 

そして、私はこのようなクエリ埋め込むしたいと思います:

$query = mysql_query("SELECT username FROM login WHERE username='$username' and password='$password'"); 
+0

mysql_ *は – JYoThI

答えて

0

警告するmysql_query、は、mysql_fetch_array、にmysql_connectなど。拡張子はPHP 5.5で非推奨に.0、それはPHP 7.0.0で削除されました。 代わりに、MySQLiまたはPDO_MySQL拡張を使用する必要があります。

のMysqliが

1文を準備)まず、ユーザーが有効か無効知ることができるカウントデータベースに接続し、最終的には、行に基づいて、ユーザ指定されたユーザー名とパスワードを使用してデータベースを照会。

 //db connection 

     $servername = "localhost"; //host name 

     $username = "username"; //username 

     $password = "password"; //password 

     $mysql_database = "dbname"; //database name 

    //mysqli prepared statement 

     $conn = mysqli_connect($servername, $username, $password) or die("Connection failed: " . mysqli_connect_error()); 

     mysqli_select_db($conn,$mysql_database) or die("Opps some thing went wrong"); 

     $stmt = $conn->prepare("SELECT * FROM $tbl_name WHERE username=? and password=? "); 

     $stmt->bind_param('ss',$myusername,$mypassword); 

     The argument may be one of four types: 

     //i - integer 
     ///d - double 
     //s - string 
     //b - BLOB 
     //change it by respectively 

     $stmt->execute(); 
     $get_result =$stmt->get_result(); 

     $row_count= $get_result->num_rows; 

     if($row_count>0) 
     { 
      echo "valid user "; 
     } 
     else 
     { 
      echo "not valid user"; 

     } 
+0

おかげで、あなたの応答をmysqli_ *準備文またはPDOを使用しようとする推奨されていませんが、私はuはあなたの例と私の認証コードと統合してくださいすることができ、プログラミングで初心者をしています。 –

+0

また、password_hashとpassword_verifyを使用してください。 – Joe

関連する問題