2014-11-26 3 views
0

так я писал К и странная проблема случилась это мой регистр FUNC:что-то не так с этим логином и регистрационной формой?

function register($email,$fullname,$password) 
    { 
global $connection; 
$date = time(); 
     $pass = md5($password . SECURE_KEY); 
     return mysql_query("INSERT INTO users(email, fullname, date, password) 
      VALUES('$email', '$fullname', '$date', '$pass')") or die(mysql_error());  
    } 

и это мой Логин:

function login($email, $password, $remember) 
    { 
     global $connection; 
     $login = mysql_query("SELECT * FROM users WHERE email = '$email' AND password = md5('$password')"); 

     if(mysql_num_rows($login)>0) 
     { 
      $loginResult = mysql_fetch_assoc($login); 
      $_SESSION['userid'] =$loginResult['id']; 
      $_SESSION['fullname'] =$loginResult['fullname']; 
      if($loginResult['isAdmin'] == '1') 
       $_SESSION['isadmin'] ='admin'; 




      if($remember) 
      { 
       setcookie('userid',$loginResult['id'], time() + 30, '/'); 
      } 

      return true; 
     } 
     else 
     { 
      return false; 
     } 
    } 

я не могу войти с пользователями, которые я зарегистрироваться прямо сейчас это Войти страница:

$message = ''; 
if(isset($_POST['submit'])) 
{ 
    $remember = false; 
    if(isset($_POST['chkRemember']) && $_POST['chkRemember'] == 'remember') 
     $remember = true; 
    $loginResult = login($_POST['txtEmail'], $_POST['txtPassword'], $remember); 
    if(!$loginResult) 
    { 
     $message = ; 
    } 
    else 
    { 
     redirect_to("index.php"); 
    } 
} 

и это регистр страницы:

if(isset($_POST['submit'])) 
{ 


    register($_POST['txtEmail'],$_POST['txtFullname'], $_POST['txtPassword']) ; 


} 

, когда я зарегистрирую пользователь, он будет добавлен в мою базу данных, но когда я попытаюсь войти в систему, он говорит, что имя пользователя и пароль ошибочны мой код не работает или проблема с базой данных ????

+1

(1) Его открытая для SQL-инъекции. (2) md5 сегодня слаб. (3) '$ message =;' является синтаксической ошибкой. ... Я уверен, что есть больше, но это в основном вопрос вне темы, поскольку он просто «отлаживает мой код для меня». В будущем это никому не поможет. – developerwjk

+0

@developerwjk - md5 никогда не был слабым. Он не предназначен для паролей, это простой алгоритм хэширования «работа». – Scopey

+0

Что-то не так? Использование 'mysql_ *' функций, глобальных переменных, md5 для хэширования паролей, уязвимости для SQL-инъекции – AlexP

ответ

1

Ваш пароль неверен. Пожалуйста, не используйте md5 и посмотрите на использование password_hash. Read about it here.

Ваш пароль неверен, потому что вы добавляете константу во время регистрации, но не во время входа в систему. Удалите это, когда вы используете password_hash, поскольку он заботится о солевом для вас.

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