2013-03-30 5 views
0

При попытке входа на мой сайт скрипт возвращает Im с неправильным именем пользователя или паролем.PHP Session Login возвращает неверное имя пользователя и пароль

Глава index.html:

<?php 
session_start(); 
require_once 'classes/Membership.php'; 
$membership = new Membership(); 
if ($_POST && !empty ($_POST['username']) && !empty ($_POST['password'])) { 
$response = $membership->validate_user($_POST['username'], $_POST['password']); 
} 
?> 

Форма в index.html:

<div class="login" id="register"> 
    <form method="POST" action="" accept-charset="utf-8"> 
     <fieldset> 
     <p> 
     <label for="username">Username</label><br /> 
     <input type="text" name="username" value="" id="username"> 
     </p> 
     <p> 
     <label for="password">Password</label><br /> 
     <input type="password" name="password" value="" id="password"> 
     </p> 
     </fieldset> 
     <input type="submit" class="button" value="Sign in"> 
    </form> 
    </div> 
<?php if(isset($response)) echo "<p class = 'error-msg'>" .$response.".</p>"; ?> 

Membership.php

<?php 
require 'MySQL.php'; 

    class Membership 
    { 
     function validate_user($username, $password) 
     { 
      $mysql = new MySQL(); 
      $ensure_credentials = $mysql->verify_in_db($username,md5($password)); 

      if ($ensure_credentials) 
      { 
       $_SESSION['status'] = 'authorized'; 
       header("location: index_member.php"); 
      } 
      else return "Please enter a correct username and password"; 
     } 
    } 

MySQL.php

<?php 
require_once 'includes/constants.php'; 

    class MySQL 
     { 
      private $conn; 

      function __construct() 
      { 
      $this->conn = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME) 
      or die ('There was a problem connecting to the database.'); 
      } 

      function verify_in_db($username, $password) 
      { 
       $query = "SELECT * 
           FROM users 
           WHERE username = ? AND password = ? 
           LIMIT 1"; 
       if ($stmt = $this->conn->prepare($query)) 
       { 
       $stmt->bind_param('ss', $username, $password); 
       $stmt->execute(); 

        if ($stmt->fetch()) 
        { 
         $stmt->close(); 
         return true; 
        } 
       } 
      } 
     } 

constants.php

<?php 
// Define constants 

define ('DB_SERVER', 'localhost'); 
define ('DB_USER', 'root'); 
define ('DB_PASSWORD', ''); 
define ('DB_NAME', 'membership'); 

Там нет дб пароль, то не следует путать. Стандартный DB на xampp. Учетные данные, которые я пытаюсь использовать, на 100% правильны, константы sql тоже.

+0

Может быть слишком очевидным, но вы введя правильное имя пользователя и пароль? – MichaelRushton

+0

Да, я скопировал из db. – mnlfischer

+1

Вы тоже скопировали пароль? Потому что в базе данных похоже, что это будет 'MD5'd, и, очевидно, вам нужен оригинальный пароль. – MichaelRushton

ответ

-1

Возможно, из-за вашего пароля, как вы сказали. его

'password'

, но это должно быть что-то подобное из-за MD5

 
'fglsdgjdfnfjlsmg905760657604657604jtvymwy' 
+0

не было записи md5 в таблице. Я обновил его, и он работает. Спасибо! – mnlfischer

+0

'username = '?' И пароль = '?' '? Нет ... – MichaelRushton

+0

@MichaelRushton - вы поставили вниз, почему, пожалуйста, объясните. – ncm

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