За последние 24 часа нас посетили 20276 программистов и 1609 роботов. Сейчас ищут 1872 программиста ...

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

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

  1. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Делай отладку, проверь, что на выходе этой функции, потом проверь, что в $sql
     
    denis01 нравится это.
  2. Zum

    Zum Новичок

    С нами с:
    25 янв 2017
    Сообщения:
    27
    Симпатии:
    0
    $pass = hash($username, $password); переделал функцию пароль начал приходить на почту но по прежнему не заходит на сайт (((
    Может ли быть, что при регистрации есть команда которая разрешает сохранять в БД пароль?
    И сохраняет его в кеш каким-либо образом? И при всем этом сохраняя в кеш дополнительный ключ или сертификат пользователя? Или же, может ли быть такое, что БД закрыта от внесения каких-либо данных из вне скрипта регистрации?
    --- Добавлено ---
    Ну я не вижу ничего сверхъестественного в этом скрипте регистрации.
    PHP:
    1. <?php
    2. if(isset($_GET['success']) && empty($_GET['success'])) {
    3.     $confirm = "";
    4.     if($settings['email_confirmation'] == '1') $confrim = '&nbsp; Please check your email account for activation!';
    5.     echo output_success('Вы были успешно зарегестрированы!' . $confirm);
    6. } else {
    7.     if(empty($_POST) == false && empty($errors) == true){
    8.         if($settings['email_confirmation'] == '1') $active = '0'; else $active = '1';
    9.         $register_data = array(
    10.             'username'     => $_POST['username'],
    11.             'password'     => $_POST['password'],
    12.             'email'        => $_POST['email'],
    13.             'name'         => $_POST['name'],
    14.             'ip'           => $_SERVER['REMOTE_ADDR'],
    15.             'date'         => date('Y.m.d'),
    16.             'email_code'   => md5($_POST['username'] + microtime()),
    17.             'active'       => $active
    18.         );
    19.         register_user($register_data);
    20.         header('Location: register.php?success');
    21.         exit();
    22.     } elseif(empty($errors) == false) {
    23.         echo output_errors($errors);
    24.     }
    25.  
    26. ?>
    --- Добавлено ---
    В добавок просто снёс пароль
     

    Вложения:

    • 12324123.jpg
      12324123.jpg
      Размер файла:
      50,1 КБ
      Просмотров:
      5
  3. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    @Zum, скрипт как-нибудь отлаживаешь?
    Делай вывод всего, и тогда ты увидишь где проблема.
    А вот переделывать функцию c_hash не нужно.

    Включи вывод ошибок, если не включен
    PHP:
    1. ini_set("display_errors", 1);
    --- Добавлено ---
    У тебя в коде используется расширение mysql которое уже удалено в новых версиях php.
    Надо узнать какая версия php.
     
    denis01 нравится это.
  4. Zum

    Zum Новичок

    С нами с:
    25 янв 2017
    Сообщения:
    27
    Симпатии:
    0
    Написал в файле .htacces строчку php_flag disolay_errors 1 . После чего зайдя на страницу восстановления пароля, при попытки отправить новый пароль на странице появилась ошибка Fatal error: Call to undefined function c_hash() in /home/s/shapiroj/gidmc.ru/public_html/lostpass.php on line 106 . Что в принципе означает что функция c_hash() не верно работает. На сколько я узнал php скрипты у меня на сайте работают на версии не выше 5.6 . Попробовав поставить тот же сайт на версию скриптов php 7.1 сайт безуспешно отказался работать.
     
  5. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Плохо перевел.
    Если не выше, зачем версию поднимаешь? Я тебе сказал, что у тебя в коде используются функции которые уже выпилены в новых версиях.

    А по существу, в ошибке говорится, что функция такая не определена. Это значит, что функция на самом не определена, или же не подключен файл где эта функция определена. В данном случае это второй пункт.

    Инклуд сделай в начале скрипта восстановления пароля.
    include 'core/init.php';

    Я пытаюсь тебе помочь, а ты читаешь через строчку.
    --- Добавлено ---
    И восстанови функцию c_hash если вносил какие либо изменения.
     
  6. Zum

    Zum Новичок

    С нами с:
    25 янв 2017
    Сообщения:
    27
    Симпатии:
    0
    PHP:
    1. $settings_dir = "../settings"; include 'core/init.php';
    2.  
    3.  
    4. $username = mysql_real_escape_string($_POST['username']);
    5. $password = mysql_real_escape_string($_POST['password']);
    6. $email = mysql_real_escape_string($_POST['email']);
    7.  
    8. // проверяем, если юзер в таблице с таким же логином
    9.     $query = "SELECT `user_id`
    10.                FROM `users`
    11.                WHERE `username`='{$username}'
    12.                LIMIT 1";
    13.     $sql = mysql_query($query) or die(mysql_error());
    14.     if (mysql_num_rows($sql)==1)
    15.     {
    16. //если есть
    17. //генерируем пороль      
    18. $simvols = array ("0","1","2","3","4","5","6","7","8","9",
    19.                         "a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z",
    20.                         "A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");
    21.       for ($key = 0; $key < 6; $key++)
    22.         {
    23.           shuffle ($simvols);
    24.           $string = $string.$simvols[1];
    25.  
    26.         }
    27.  
    28. //перегоняем в md5 хэш
    29. $pass = c_hash($username, $password);
    Изменил путь к скрипту через который подключается сайт к бд и тд
    PHP:
    1. $settings_dir = "../settings"; include 'core/init.php . Пароль приходит только теперь два пароля за место одного и я заметил такую вещь в скрипте users.php
    2. [php]function c_hash($username, $password){
    3.    $salt = "fc160cd93ccd8b3bdb8e38c1dbe76f2a7c0371c46741b5a98d0b6074b192b9983195148abf077a5b802d803ec16217474476ef335303cb73a0583d3243d84213";
    4.    $hash = hash('sha512', $password . $salt . $username);
    5.    for($i=1;$i<=1000;$i++){
    6.        $hash = hash('sha512', $hash);
    7.    }
    8.    return $hash;
    9. }
     
  7. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Как понять два пароля?
    Пароль в бд обновляется? Удалось зайти используя пароль полученный на почту?
    --- Добавлено ---
    И? Что за вещь?
     
  8. Zum

    Zum Новичок

    С нами с:
    25 янв 2017
    Сообщения:
    27
    Симпатии:
    0
    Два пароля и не один не подходит !В бд пароль меняется. А вещь я имел в виду скрипт .
    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;
     
  9. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    Функцию? Что с ней не так?
    --- Добавлено ---
    Как я уже говорил, отлаживай код. Без отладки, ты никогда не найдешь ошибку.
    http://phpfaq.ru/debug
     
    denis01 нравится это.
  10. Zum

    Zum Новичок

    С нами с:
    25 янв 2017
    Сообщения:
    27
    Симпатии:
    0
    При помощи отладки что вы подсказали, раньше он выдавал ошибку теперь не выдаёт будто скрипты работают исправно (((((
    Даже в файле gidmc.ru.error.log пусто
     
    #35 Zum, 4 фев 2017
    Последнее редактирование: 4 фев 2017
  11. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  12. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    @Zum, перейди по ссылке и почитай до конца. Отладка, это нечто больше чем вывод ошибок на экран.
     
    denis01 нравится это.
  13. Zum

    Zum Новичок

    С нами с:
    25 янв 2017
    Сообщения:
    27
    Симпатии:
    0
    Я почитал. И у меня появился новый вопрос. Я долго копался в сайте и тут набрел на ошибку которая гласит "Что MSQL устарел и будет удален" Покопался в инете и нашел инфу про то что сейчас пользуются MSQLi. Но как же теперь все исправить? Или же не стоит ничего менять в MSQL скриптах? И есть ли программа которая облегчает переход с MSQL на MSQLi?
     
  14. mahmuzar

    mahmuzar Старожил

    С нами с:
    6 апр 2012
    Сообщения:
    4.631
    Симпатии:
    425
    Адрес:
    РД, г. Махачкала.
    У тебя есть возможность дать удаленный доступ к сайту?
    --- Добавлено ---
    Я бы глянул и сделал за тебя, раз тема в этом разделе.
     
  15. Zum

    Zum Новичок

    С нами с:
    25 янв 2017
    Сообщения:
    27
    Симпатии:
    0
    У вас есть почта или скайп ?