2017-05-13 3 views
0

Ich möchte meine grundlegende Autorisierung mit meiner MySQL-Datenbank verbinden. Eigentlich entwickle ich eine Login-REST-API in PHP. Momentan habe ich meinen Benutzernamen und mein Passwort im PHP-Autorisierungsskript fest programmiert, möchte aber eine Verbindung zu MySQL herstellen und den Benutzernamen und das Passwort mit meiner Datenbank mit Basisberechtigung validieren.Wie verbinde ich SQL-Abfrage mit Basis-Authentifizierung in PHP

Hier ist mein Code:

<?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.'); 
} 
?> 

Und ich möchte eine Abfrage wie folgt einbetten:

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

mysql_ * ist try veraltet mysqli_ verwenden * vorbereitete Anweisung oder PDO – JYoThI

Antwort

0

Warnung mysql_query, mysql_fetch_array, mysql_connect etc .. Erweiterungen in PHP 5.5 wurden als veraltet .0, und es wurde in PHP 7.0.0 entfernt. Stattdessen sollte die Erweiterung MySQLi oder PDO_MySQL verwendet werden.

Mysqli vorbereitete Anweisung

1) Zuerst die Datenbank verbinden und die Datenbank mit Benutzer angegebenen Benutzernamen und Passwort schließlich auf Zeile Abfrage zählen können Sie wissen, Benutzer gültig ist oder nicht.

 //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

Dank für Ihre Antwort, aber ich bin Anfänger in der Programmierung, kann u bitte das mit meinem Autorisierungscode mit Ihrem Beispiel integrieren. –

+0

Verwenden Sie bitte auch password_hash und password_verify. – Joe

Verwandte Themen