2017-05-25 5 views
0

Ich arbeite an einer Anwendung mit angularJS und PHP auf Back-End, möchte ich die Authentifizierung in meiner Anwendung implementieren, und ich habe versucht, den Code unten eingefügt, aber es erzeugt keinen Fehler, keine Nachricht und wenn ich versuche, einen Benutzernamen und ein Passwort zu setzen, gehe ich zu der Ansicht "admin" was auch immer der Benutzer ich gebe, bedeutet es, dass es nicht überprüft, den Benutzer und das Passwort. In der Datenbank der Tabelle 'Client' habe ich: NomClient und MDP (Passwort).Wie Benutzer-und Passwort-Authentifizierung zu überprüfen

login.html

<ion-content class="padding" ng-controller="loginCtrl"> 
<div class="list list-inset" > 
<label class="item item-input"> 
     <input type="text" placeholder="nom" required="" ng-model="NomClient"> 
</label> 
<label class="item item-input"> 
     <input type="password" placeholder="Password" ng-model="mdp"> 
</label> 
    <button class="button button-block button-positive" ng-click="submit()">Login</button>  
</ion-content> 

app.js

app.controller('loginCtrl', function($scope,$state,$http){ 
    $scope.submit= function(){ 
const url = 'http://localhost/deb/login.php'; 
const postBody = { 
    NomClient: $scope.NomClient, 
    mdp: $scope.mdp 
}; 

$http.post(url, postBody).then(data => { 
    $location.path('/admin'); 
}); 
}; 

login.php

<?php 

$data = json_decode(file_get_contents("php://input")); 

$connect = mysqli_connect("localhost", "root", "", "tem"); 


$response['status'] = 0; 
$response['message'] = ''; 
$NomClient=mysqli_real_escape_string($connect, $data->NomClient); 
$mdp=mysqli_real_escape_string($connect, $data->mdp); 


$query = 'SELECT * FROM `client` WHERE NomClient = "'.$NomClient.'" AND mdp= "'.$mdp.'"'; 


if(mysqli_connect_errno()){ 
    $response['status'] = 0; 
    $response['message'] = "Failed to connect to MySQL: ".mysqli_connect_error(); 
    echo jsone_encode($response);exit; 
} 

$result = mysqli_query($connect, $query); 
$rowcount=mysqli_num_rows($result); 
if($rowcount>0){ 
    $response['status'] = 1; 
    $response['message'] = 'Login successful'; 
} 
else{ 
    $response['status'] = 0; 
    $response['message'] = 'Invalid username of password'; 
} 

echo json_encode($response);exit; 
?> 

Vielen Dank im Voraus

Antwort

-1

OK. Sie haben hier eine Reihe von Problemen. Zu Beginn sollten Sie vorbereitete Anweisungen für die Abfrage verwenden.

$stmt = mysqli_prepare($link,"SELECT * FROM client WHERE NomClient = ? AND mdp=?;"); 
mysqli_stmt_bind_param($stmt,'ss', $NomClient, $mdp); 
mysqli_stmt_execute($stmt); 
mysqli_stmt_store_result($stmt); 
$rowcount = mysqli_stmt_num_rows($stmt) 
mysqli_stmt_free_result($stmt); 
mysqli_stmt_close($stmt); 

Das größere Problem ist, dass Sie das Passwort im Klartext werden die Speicherung und das ist eine schreckliche, schreckliche Weise Passwort-Management zu tun. Bitte schauen Sie in passwort_hash() und password_verify().

+0

Ich stimme Ihren Punkten zu, aber das ist nicht, was er fragt :) – Sean

Verwandte Themen