2014-12-03 83 views
0

我是mongoDb和PHP的新手。 我想创建一个简单的登录页面,它将从文本字段获取用户输入,并在数据库中查找记录是否存在。MongoDB和PHP简单登录

现在我能够传递硬编码的值,将重定向到新页面,但我无法查询数据库。

如果有人能引导我在仪式方向。我在网上查看过各种教程,但一直无法获得我需要的东西。

<? PHP  
session_start(); 
?> 

<html> 
<head> 
<title> Movie Database </title> 
</head> 

<?PHP 

$_SESSION["loggedInUser"] = $username; 


    try { 
     // open connection to MongoDB server 
     $conn = new Mongo('localhost'); 

     // access database 
     $db = $conn->test; 

     // access collection 
     $collection = $db->items; 


     $userName = $_POST['username']; 
     $userPass = $_POST['userPassword']; 


     $user = $db->$collection->findOne(array('username'=> 'user1', 'password'=> 'pass1')); 

     foreach ($user as $obj) { 
      echo 'Username' . $obj['username']; 
      echo 'password: ' . $obj['password']; 
      if($userName == 'user1' && $userPass == 'pass1'){ 
       echo 'found'    
      } 
      else{ 
       echo 'not found'    
      } 

     } 

     // disconnect from server 
     $conn->close(); 

    } catch (MongoConnectionException $e) { 
     die('Error connecting to MongoDB server'); 
    } catch (MongoException $e) { 
     die('Error: ' . $e->getMessage()); 
    } 

$_SESSION["loggedInUser"] = $correct; 

?> 

<body> 
<br> 
<center><h1> Welcome to CS348 Login Page </h1></center> 
<br> 
<form action="page2.php" METHOD="POST"> 
<label>Username :</label> 
<input type="text" Name="username"> 
<br> 
<label>Password :</label> 
<input type="password" Name="userPassword"> 
<br> 
<br> 
<input type="submit" value="Login"> 
<br> 
</FORM> 
</body> 
</html> 

我不知道如何从文本框中获取userinput并查询数据库。

感谢您的帮助

+1

请_please_ ** **请不要密码保存为纯文本。 [哈希和盐](https://crackstation.net/hashing-security.htm)。有很多认证库,你真的不需要自己写。 – 2014-12-03 04:01:29

+0

@ChristianVarga我肯定会改变这种情况(将查看,看看如何实现),但现在只想学习如何查询数据库。谢谢 – Maddy 2014-12-03 04:05:14

回答

3

要想从用户输入您需要做类似下面的用户名和密码;

$username = $_POST['username']; 
$password = $_POST['userPassword']; 

然后你可以使用:

$user = $db->$collection->findOne(array('username'=> $username, 'password'=> $password)); 
+0

嗨,谢谢你的回复。我确实做出了你所建议的改变,而且他们更有意义。但是,我的网页是空白的。有没有一种方法可以调试?如果你能看一看,我已经修改了代码。感谢您的帮助 – Maddy 2014-12-03 04:37:36

+0

您正在将您的表单重定向到page2.php,这是您拥有此PHP代码的相同页面吗? – DShah 2014-12-03 04:39:11

+0

我正在使用page2重定向我的输出以查看我得到的值。我弄清楚了不显示任何东西的错误(我错过了分号)。我应该重定向到同一页面吗? – Maddy 2014-12-03 04:40:38