За последние 24 часа нас посетили 20174 программиста и 1608 роботов. Сейчас ищут 1937 программистов ...

Проблема с регистрацией на сайте

Тема в разделе "Сделайте за меня", создана пользователем Zum, 25 янв 2017.

  1. Zum

    Zum Новичок

    С нами с:
    25 янв 2017
    Сообщения:
    27
    Симпатии:
    0
    Добрый день проблема такова, что при регистрации на сайте в bd-MSQL пароль генерируется нормально и по нему можно зайти нормально, после восстановления пароля на почту пароль не подходит проблемы в скрипте восстановление пароля не может быть скрипт написан на самой простой кодировке md 5 ну самое не понятное мне что виной всему этому. У кого могут быть советы или предложения буду рад выслушать за ранние спасибо за ответ.
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Мало что понятно. Нет запятых, значит либо пароль новый работает и просто на почту не приходит либо работает только старый и на новый не меняется.

    Это хэш md5
     
  3. Zum

    Zum Новичок

    С нами с:
    25 янв 2017
    Сообщения:
    27
    Симпатии:
    0
    Пароль новый на почту приходит и меняется на новый в базе данных но по нему не заходит, даже если я семеню пароль в ручную в bd кодированы md 5 искома зная пароль да пустим 123456 он на новом аккаунте не будет уже работать, даже если вставить в bd старый шифрованный пароль он тоже работать не будет, почему не могу разобраться всё облазил не негде похожей причины не было.
     
  4. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Вас. Очень. Трудно. Читать. Ничерта не понятно.
     
  5. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Тут надо отладку делать, мало вероятно что кому-то это будет интересно.
    Выкладывай код, возможно кто-то посмотрит.
     
  6. Zum

    Zum Новичок

    С нами с:
    25 янв 2017
    Сообщения:
    27
    Симпатии:
    0
    login-файл отвечает за подключение к сайту пояснении не для тупых за ранние простить просто такой человек я, lostpass-скрипт для восстановления пароля на почту, register-скрипт по которому производится регистрация на сайте, при выполнение этого скрипта пароль работает в bd-msql
     

    Вложения:

    • login.txt
      Размер файла:
      1,7 КБ
      Просмотров:
      2
    • lostpass.txt
      Размер файла:
      4,3 КБ
      Просмотров:
      4
    • register.txt
      Размер файла:
      3,4 КБ
      Просмотров:
      4
  7. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    @Zum, может это поможет, у тебя двойной md5 при восстановлении пароля
    PHP:
    1. //перегоняем в md5 хэш
    2. $pass = md5(md5($string));
    и покажи определение функции register_user()
     
    #7 mahmuzar, 26 янв 2017
    Последнее редактирование: 26 янв 2017
  8. Zum

    Zum Новичок

    С нами с:
    25 янв 2017
    Сообщения:
    27
    Симпатии:
    0
    //перегоняем в md5 хэш
    $pass = md5($string); изменил на так, пароль приходит как и раньше но также не работает (((
     
  9. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
     
    denis01 нравится это.
  10. Zum

    Zum Новичок

    С нами с:
    25 янв 2017
    Сообщения:
    27
    Симпатии:
    0
  11. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    @Zum, мне ничего не понятно.
     
  12. Zum

    Zum Новичок

    С нами с:
    25 янв 2017
    Сообщения:
    27
    Симпатии:
    0
    Вы вы имели в виду
    PHP:
    1. if(empty($_POST) == false && empty($errors) == true){
    2.         if($settings['email_confirmation'] == '1') $active = '0'; else $active = '1';
    3.         $register_data = array(
    4.             'username'     => $_POST['username'],
    5.             'password'     => $_POST['password'],
    6.             'email'        => $_POST['email'],
    7.             'name'         => $_POST['name'],
    8.             'ip'           => $_SERVER['REMOTE_ADDR'],
    9.             'date'         => date('Y.m.d'),
    10.             'email_code'   => md5($_POST['username'] + microtime()),
    11.             'active'      => $active
    12.         );
    13.         register_user($register_data);
    14.         header('Location: register.php?success');
    15.         exit();
    16.     } elseif(empty($errors) == false) {
    17.         echo output_errors($errors);
    18.     }
     
  13. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    где код этой функции?
     
  14. Zum

    Zum Новичок

    С нами с:
    25 янв 2017
    Сообщения:
    27
    Симпатии:
    0
    Этот ?
    PHP:
    1. <?php
    2. include 'core/init.php';
    3. logged_in_redirect();
    4.  
    5. if($settings['register'] == false && logged_in() == false){
    6.     protect_page();
    7. }
    8. include 'includes/overall/header.php';
    9. require_once('core/functions/recaptchalib.php');
    10.  
    11. if(empty($_POST) == false) {
    12.     $fields = array('username', 'password', 'password_again', 'email', 'name', 'recaptcha_response_field');
    13.     foreach($_POST as $key=>$value) {
    14.         if(empty($value) && in_array($key, $fields) == true){
    15.             $errors[] = 'All fields are required';
    16.             break 1;
    17.         }
    18.     }
    19.  
    20. //captcha
    21. $resp = recaptcha_check_answer ($settings['recaptcha_private'], $_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"]);
    22. //-------
    23.  
    24.     $_POST['name']     = htmlspecialchars($_POST['name'], ENT_QUOTES);
    25.     $_POST['email']    = htmlspecialchars($_POST['email'], ENT_QUOTES);
    26.     $_POST['username'] = htmlspecialchars($_POST['username'], ENT_QUOTES);
    27.  
    28.     if(empty($errors) == true) {
    29.         if($resp->is_valid == false) {
    30.             $errors[] = "Captcha is not valid !";
    31.         }
    32.         if(user_exists($_POST['username']) == true) {
    33.             $errors[] = 'Sorry, the username \'' . $_POST['username'] . '\' is already taken.';
    34.         }
    35.         if(preg_match("/\\s/", $_POST['username']) == true) {
    36.             $errors[] = 'Your username must not contain any spaces';
    37.         }
    38.         if(strlen($_POST['password']) < 6) {
    39.             $errors[] = 'Password too short, it must be at least 6 characters!';
    40.         }
    41.      
    42.         if($_POST['password'] !== $_POST['password_again']) {
    43.             $errors[] = 'Your passwords need to match!';
    44.         }
    45.      
    46.         if(filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) == false) {
    47.             $errors[] = 'A valid email adress is required';
    48.         }
    49.         if(email_exists($_POST['email']) == true) {
    50.             $errors[] = 'Sorry, the email \'' . $_POST['email'] . '\' is already in use';
    51.         }
    52.     }
    53. }
    54. ?>
    55. <h2>Регистрация</h2>
    56. <?php
    57. if(isset($_GET['success']) && empty($_GET['success'])) {
    58.     $confirm = "";
    59.     if($settings['email_confirmation'] == '1') $confrim = '&nbsp; Please check your email account for activation!';
    60.     echo output_success('Вы были успешно зарегестрированы!' . $confirm);
    61. } else {
    62.     if(empty($_POST) == false && empty($errors) == true){
    63.         if($settings['email_confirmation'] == '1') $active = '0'; else $active = '1';
    64.         $register_data = array(
    65.             'username'     => $_POST['username'],
    66.             'password'     => $_POST['password'],
    67.             'email'        => $_POST['email'],
    68.             'name'         => $_POST['name'],
    69.             'ip'           => $_SERVER['REMOTE_ADDR'],
    70.             'date'         => date('Y.m.d'),
    71.             'email_code'   => md5($_POST['username'] + microtime()),
    72.             'active'      => $active
    73.         );
    74.         register_user($register_data);
    75.         header('Location: register.php?success');
    76.         exit();
    77.     } elseif(empty($errors) == false) {
    78.         echo output_errors($errors);
    79.     }
    80.  
    81. ?>
    82. <form action="" method="post">
    83.     <label>Имя пользователя</label>
    84.     <input class="span3" type="text" name="username" />
    85.  
    86.     <label>Пароль</label>
    87.     <input class="span3" type="password" name="password" />
    88.  
    89.     <label>Пароль Еще Раз</label>
    90.     <input class="span3" type="password" name="password_again" />
    91.  
    92.     <label>Email</label>
    93.     <input class="span3" type="text" name="email" />
    94.  
    95.     <label>Псевдоним</label>
    96.     <input class="span3" type="text" name="name" /><br />
    97.  
    98.     <?php $error = null; echo recaptcha_get_html($settings['recaptcha_public'], $error); ?>
    99.  
    100.     <br /><br />
    101.     <input class="btn btn-primary span3" type="submit" value="Регистрация" />
    102.  
    103. </form>    
    104. <?php
    105. }
    106. include 'includes/overall/footer.php';
    107. ?>
     
    #14 Zum, 27 янв 2017
    Последнее редактирование модератором: 27 янв 2017
  15. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Вот в математики например, зададим функцию F(x) = 1 + x
    Если вызвать F(2) то результат будет 1+ 2 = 3
    Так вот F(x) это register_user($register_data)
    Мы тебя просим показать, что она содержит: 1 + x
     
  16. Zum

    Zum Новичок

    С нами с:
    25 янв 2017
    Сообщения:
    27
    Симпатии:
    0
    Я в php туговат я только только начал его изучать попробую понять что от меня требуется
     
  17. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    @Zum, ты знаешь как определяются функции в php? В принципе без разницы где они определяются. Нам нужно определение этой функции.
    например:
    PHP:
    1. function test(){
    2.    //тестовая функция
    3. }
    4. //это и есть функция
     
  18. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    @Zum а ты хочешь научиться писать программы или просто разовая задача?
     
  19. Zum

    Zum Новичок

    С нами с:
    25 янв 2017
    Сообщения:
    27
    Симпатии:
    0
    Нет Я хочу научится ведь мне дорабатывать сайт и тд
     
  20. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    @Zum по каким книгам учишь HTML, CSS, PHP, MySQL?
    Учил ли в школе информатику и языки программирования?
     
  21. Zum

    Zum Новичок

    С нами с:
    25 янв 2017
    Сообщения:
    27
    Симпатии:
    0
    Учил BASIC давным давно и да я не в курсе как определяется функция могу выложить полностью сайт похоже так будет проще ?
     
  22. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Стоит почитать книги для начинающих по программированию и перед этим школьный курс информатики повторить, это если реально хочешь научиться самостоятельно всё делать.

    Тогда лучше выкладывай, кто-то посмотрит.
     
  23. Zum

    Zum Новичок

    С нами с:
    25 янв 2017
    Сообщения:
    27
    Симпатии:
    0
    https://yadi.sk/d/gC7ZHgBG35gFCR
     
  24. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    PHP:
    1. function register_user($register_data) {
    2.     global $settings;
    3.    
    4.     array_walk($register_data, 'array_sanitize');
    5.     $register_data['password'] = c_hash($register_data['username'], $register_data['password']);
    6.     $active = $register_data['active'];
    7.     $fields = '`' . implode('`, `', array_keys($register_data)) . '`';
    8.     $data = '\'' . implode('\', \'', $register_data) . '\'';
    9.    
    10.     mysql_query("INSERT INTO `users` ($fields) VALUES ($data)");
    11.     if($active == '0'){
    12.         sendmail($register_data['email'], 'Activate your account', "
    13.            Hello " . $register_data['name'] . ",\n\n
    14.            To activate your account, access the link below:\n\n
    15.            " . $settings['url'] . "activate.php?email=" . $register_data['email'] . "&email_code=" . $register_data['email_code'] . " \n\n
    16.        ");
    17.     }
    18. }
    PHP:
    1. function c_hash($username, $password){
    2.     $salt = "fc160cd93ccd8b3bdb8e38c1dbe76f2a7c0371c46741b5a98d0b6074b192b9983195148abf077a5b802d803ec16217474476ef335303cb73a0583d3243d84213";
    3.     $hash = hash('sha512', $password . $salt . $username);
    4.     for($i=1;$i<=1000;$i++){
    5.         $hash = hash('sha512', $hash);
    6.     }
    7.     return $hash;
    8. }
    В итоге, в скрипте восстановления пароля вместе строчки
    PHP:
    1. $pass = md5(md5($string));
    вставь
    PHP:
    1. $pass = c_hash($username, $password);
    И попробуй авторизоваться с новым паролем.
    --- Добавлено ---
    Т.е. восстанови пароль, и потом попробуй авторизоваться.
     
    denis01 нравится это.
  25. Zum

    Zum Новичок

    С нами с:
    25 янв 2017
    Сообщения:
    27
    Симпатии:
    0
    После того как вставил эту функцию пароль перестал приходить на почту