简单的PHP mongoDB用户名和密码检查网站
问题描述:
所以,我有一个名为'会员'的集合,并且我有我的每个'成员'的用户名和密码。 我需要知道的是我怎么检查,看看两者是否匹配,即用户名+密码=成功简单的PHP mongoDB用户名和密码检查网站
这是我曾尝试并正确进行搜索,只是它没有返回错误,如果没有用户
public function userlogin($data)
{
$this->data = $data;
$collection = $this->db->members;
// find everything in the collection
$cursor = $collection->find(array("username"=>$this->data['username'], "password"=>$this->data['password']));
$test = array();
// iterate through the results
while($cursor->hasNext()) {
$test[] = ($cursor->getNext());
}
//Print Results
if($test == NULL)
{
print "Sorry we are not able to find you";
die;
}
//print json_encode($test);
}
答
事情是这样的:
$mongo = new Mongo();
$db = $mongo->dbname;
$user = $db->collection->findOne(array("username" => $username, "password" => $password));
if ($user->count() > 0)
return $user;
return null;
或者:
$user = $db->collection->findOne(array("username" => $username, "password" => $password));
$user->limit(1);
if ($user->count(true) > 0)
return $user;
return null;
答
假设一个用户名/密码组合是唯一的,你可以使用一个findOne:
$mongoConn = new Mongo();
$database = $mongoConn->selectDB('myDatabase');
$collection = $database->selectCollection('members');
$user = $collection->findOne(array('username' => $username,'password' => $password));
如果你想限制回来某些字段中的数据,你可以在findOne结束指定它们:
$user = $collection->findOne(array('username' => $username,'password' => $password),array('_id','firstname','lastname'));
+0
@RussellHarrower仅供参考,我做了一个编辑,以帮助您找回_id,名和姓。 – Aaron 2012-03-23 13:58:54
感谢芽,我怎么什么限制返回得到,我只想有_id数量和@RussellHarrower你可以使用'findOne'或'limit'姓氏和名字 – RussellHarrower 2012-03-22 21:49:56
。检查更新。 – Ben 2012-03-22 22:01:30