2014-12-03 2 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). Существует множество библиотек аутентификации, вам действительно не нужно писать свои собственные. –

+0

@ChristianVarga Я обязательно изменю это (посмотрю, посмотрим, как это реализовано), но на данный момент просто хочу узнать, как запрашивать базу данных. Спасибо, хотя – Maddy

ответ

3

Чтобы получить имя пользователя и пароль от входа пользователя, что вам нужно сделать что-то, как показано ниже;

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

Затем вы можете использовать:

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

Привет, спасибо за ответ. Я сделал изменения, которые вы предложили, и они имеют больше смысла. Но моя веб-страница выглядит пустой. Есть ли способ отлаживать это? Я изменил код, если бы вы могли посмотреть. Спасибо за помощь – Maddy

+0

, вы перенаправляете свою форму на страницу2.php, это та же самая страница, на которой у вас есть этот код PHP? – DShah

+0

Я использовал page2 для перенаправления моего вывода, чтобы узнать, какие значения я получаю. Я выяснил ошибку, не отображая ничего (мне не хватало полуколонок). Должен ли я перенаправить на ту же страницу? – Maddy

Смежные вопросы