0
mongodbからユーザー名とパスワードを検証したいと思います。パスワード&のパスワードが自分のPHPコードと一致する場合、管理ページに進みます。 ユーザー名とパスワードに対して角度検証が機能していますが、mongodb dbは機能していません。 私は間違いをどこにしているのか分かりますか?PHPを使ってmongodbからユーザー名とパスワードを検証できません
のindex.php
<?php
include('login.php'); // Includes Login Script
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>LoginIN</title>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script type="text/javascript" src="js/angular.min.js"></script>
<link href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet">
<link href="styles/bootstrap.min.css" rel="stylesheet">
<link href="styles/signin.css" rel="stylesheet">
<script src="js/app.js"></script>
</head>
<body ng-app="postAngular" ng-controller="PostController as postCtrl">
<div id="wrapper">
<header id="top">
<center><h1>Leave Reporting System</h1></center>
<div class="container">
<form class="form-signin" ng-submit="postCtrl.postForm()">
<ul>
<?php if(isset($errorMessage)):?>
<?php endif ?>
<h2 class="form-signin-heading">Please sign in</h2>
<input type="text" name="username" class="form-control" placeholder="Email address" ng-model="postCtrl.inputData.username" required >
<input type="password" name="password" class="form-control" placeholder="Password" required ng-model="postCtrl.inputData.password">
<div class="checkbox">
<label>
<input type="checkbox" value="remember" name ="remember">Remember me
</label><br>
</div>
<div role="alert" ng-show="errorMsg">{{errorMsg}}</div>
<input name="login" button class="btn btn-lg btn-primary btn-block" type ="submit" value=" Log in">
<br>
<a href="">Forgot your password?</a>
</ul>
</form>
</div>
</body>
</html>
login.php
<?php
$errorMessage ="";
//session_start();
if(isset($_POST['login'])){
$usr = $_POST['username'];
$pass = $_POST['password'];
$conn = new MongoClient();
$db = $conn->lrs;
$col = $db->Login;
$query = array(
'username' => $usr,
'password' => md5($pass)
);
$cursor = $col->findOne($query);
foreach($cursor as $obj){
$foundusr = $obj['username'];
$foundpass = $obj['password'];
if($obj['username']== $usr && $obj['password']= $pass){
header('location: admin.php');
} else {
$errorMessage = "<h3>Username/password did not match.</h3>";
}
}
}
?>
私もその1つを試みましたが、それでも動作しません。問題は検証です。フォームアクションを使わずに、ユーザ名とパスワードで検証されていないので、ナビゲーションもありません。 –
'$ cursor'に何かがありましたか?私はそれが何にもマッチするとは思わない。 'username'フィールドにいくつかの制約があると仮定すると、ユーザー名だけで照会して、存在していれば保存したパスワードをハッシュします。 – Tomahock
あなたが使用しているMongoDBドライバがhttp://php.net/manual/en/class.mongoclient.phpで非推奨であり、PHP7と互換性がないことに注意してください – Tomahock