За последние 24 часа нас посетили 18033 программиста и 1700 роботов. Сейчас ищут 1530 программистов ...

Создал регистрацию прошу заценить.

Тема в разделе "PHP для новичков", создана пользователем AnteFil, 16 дек 2014.

  1. AnteFil

    AnteFil Активный пользователь

    С нами с:
    14 янв 2014
    Сообщения:
    531
    Симпатии:
    4
    Notice: Undefined variable: login in /var/www/antefil/data/www/aqru.ru/reg.php on line 28 Notice: Undefined variable: db in /var/www/antefil/data/www/aqru.ru/reg.php on line 28 Warning: mysql_query() expects parameter 2 to be resource, null given in /var/www/antefil/data/www/aqru.ru/reg.php on line 28 Warning: mysql_num_rows() expects parameter 1 to be resource, null given in /var/www/antefil/data/www/aqru.ru/reg.php on line 30 Array ( [login] => 1 [password] => 1 )
    В работе можно посмотреть aqru.ru/reg3.php при вводе логина и пароля

    Добавлено спустя 2 минуты 4 секунды:
    Не я не попов vk.com/antefil
     
  2. denis01

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

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

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Нет такой переменной.
    Майэскуэль заплевался, передал не понятно что ему.
    Дебаж.

    Поверю только паспорту и что бы были сведетели которые это подтвердили бы, а так... По фоткам не плохо повеселились вы однажды, молодцы:)
     
  4. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    Нижневартовск это урал?
     
  5. vitaliy_php

    vitaliy_php Новичок

    С нами с:
    22 июл 2014
    Сообщения:
    8
    Симпатии:
    0
    Ввел комментарий из кода в поисковик, тут же получил ссылку на руселлеровский сайт, ну и на форумы, где выложены куски кода с такими же комментами. Теперь понятно откуда дровишки...
    Действительно, не зная таких основ, как функции и тернарный оператор рановато делать проекты. Нужно начать с основ, а потом и до реализации регистрации дойдет.
     
  6. AnteFil

    AnteFil Активный пользователь

    С нами с:
    14 янв 2014
    Сообщения:
    531
    Симпатии:
    4
    Нижневартовск это сибирь югра
     
  7. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Это тебя не оправдывает
     
  8. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    ну немного оправдывает - http://youtu.be/FlBcvgkleAQ?t=27s

    PS не я это сказ.
     
  9. AnteFil

    AnteFil Активный пользователь

    С нами с:
    14 янв 2014
    Сообщения:
    531
    Симпатии:
    4
    Почти готово
    Код (PHP):
    1. <?php
    2. ini_set('display_errors',1);
    3. define ( 'fatalerror', true );
    4. include_once ('config.php');
    5. // Подключаем файл с пользовательскими функциями
    6. require_once('reg.php');
    7. // Записываем полученные пост данные в массив $fields
    8. $fields['login'] = $_POST['login'];
    9. $fields['password'] = $_POST['password'];
    10. $fields['email'] = $_POST['email'];
    11. $fields['g-recaptcha-response'] = $_POST['g-recaptcha-response'];
    12. // Обрабатываем даныне и результат запишем в новый массив с ошибками $errors
    13. $errors['login'] = proverkaLogina(trim($fields['login']));
    14. $errors['password'] = proverkaParolya(trim($fields['password']));
    15. $errors['email'] = proverkaEmail(trim($fields['email']));
    16. $errors['g-recaptcha-response'] = proverkaKapcha(trim($fields['g-recaptcha-response']));
    17.  
    18.  
    19. // Проверяем есть ли у нас ошибки что бы выполнять скрипт дальше если ошибок нет вперёд
    20. if($errors['login'] == '1' and $errors['password'] == '1') { echo 'Можем идти дальше';} else { echo 'ЧЁТ НЕ ТАК';}
    21. ?>
    И сами функциии
    Код (PHP):
    1. <?php
    2. ini_set('display_errors',1);
    3. include_once ('config.php');
    4. function proverkaLogina($str) {
    5.     // Инициализируем переменную с возможным сообщением об ошибке
    6.     $error = '';
    7.     // Если отсутствует строка с логином, возвращаем сообщение об ошибке
    8.     if(!$str) {
    9.         $error = 'Вы не ввели имя пользователя';
    10.         return $error;
    11.     }
    12.     $pattern = '/^[-_.a-z\d]{4,16}$/i';    
    13.     $result = preg_match($pattern, $str);
    14.     // Если проверка не прошла, возвращаем сообщение об ошибке
    15.     if(!$result) {
    16.         $error = 'Недопустимые символы в имени пользователя или имя пользователя слишком короткое (длинное)';
    17.         return $error;
    18.     } else { 
    19.     connect();
    20.     $sql = "SELECT `id` FROM `user` WHERE `login`='" . $str . "'";
    21.     $query = mysql_query($sql) or die("<p>Невозможно выполнить запрос: " . mysql_error() . ". Ошибка произошла в строке " . __LINE__ . "</p>");
    22.     
    23.     if(mysql_num_rows($query) > '0') {
    24.     $error = 'Пользователь с указанным логином уже зарегистрирован в системе';
    25.     mysql_close();
    26.     return $error;
    27.     }
    28.     }
    29.  
    30.     // Если же всё нормально, вернем значение true
    31.     return true;
    32. }
    33.  
    34. // Проверка пароля пользователя
    35. function proverkaParolya($str) {
    36.     // Инициализируем переменную с возможным сообщением об ошибке
    37.     $error = '';
    38.     // Если отсутствует строка с логином, возвращаем сообщение об ошибке
    39.     if(!$str) {
    40.         $error = 'Вы не ввели пароль';
    41.         return $error;
    42.     }
    43.     $pattern = '/^[_!)(.a-z\d]{6,16}$/i';    
    44.     $result = preg_match($pattern, $str);
    45.     // Если проверка не прошла, возвращаем сообщение об ошибке
    46.     if(!$result) {
    47.         $error = 'Недопустимые символы в пароле пользователя или пароль слишком короткий (длинный)';
    48.         return $error;
    49.     }
    50.     // Если же всё нормально, вернем значение true
    51.     return true;
    52. }
    53. function proverkaEmail($str) {
    54.     // Инициализируем переменную с возможным сообщением об ошибке
    55.     $error = '';
    56.     // Если отсутствует строка с почтой, возвращаем сообщение об ошибке
    57.     if(!$str) {
    58.         $error = 'Вы забыли ввести почту';
    59.         return $error;
    60.     }
    61.     $pattern = '/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i';    
    62.     $result = preg_match($pattern, $str);
    63.     // Если проверка не прошла, возвращаем сообщение об ошибке
    64.     if(!$result) {
    65.         $error = 'Недопустимые символы в пароле пользователя или пароль слишком короткий (длинный)';
    66.         return $error;
    67.     }
    68.     // Если же всё нормально, вернем значение true
    69.     return true;
    70. }
    71.  
    72. function proverkaKapcha($str) {
    73.     // Инициализируем переменную с возможным сообщением об ошибке
    74.     $error = '';
    75.     // Если отсутствует строка с почтой, возвращаем сообщение об ошибке
    76.     if(!$str) {
    77.         $error = 'Вы забыли ввести Капчу';
    78.         return $error;
    79.     }
    80.     $ip = $_SERVER['REMOTE_ADDR'];
    81.     $homepage = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret=ключ&response='.$str.'&remoteip='.$ip.'');
    82.     $res = json_decode($homepage, true);
    83.     // Если же всё нормально, вернем значение true
    84.     if(!$res['success']== 1)
    85.     {
    86.     $error = 'Косяк с капчёй';
    87.     return $error;
    88.     }
    89.     return true;
    90. }
    91.  
    92. ?>
    Ну вот что то начинает наклёвываться !!!!
     
  10. Fell-x27

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

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Твой метод пятимерной квазифильтрации имени Попова осудили и ты теперь решил вовсе пускать в БД все, что приходит из адресной строки. Из крайности в крайность. Еще и регулярки зачем-то... А что будешь делать, если ошибок несколько, кстати?
     
  11. denis01

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

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

    AnteFil Активный пользователь

    С нами с:
    14 янв 2014
    Сообщения:
    531
    Симпатии:
    4
    В бд отправляеться то что прошло проверку регуляркой не все подряд а больше одной ошибки в функции быть не может
     
  13. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
  14. Fell-x27

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

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Эхехе... Все очень печально.
    1) Твоя проверка регуляркой - порча данных, не более того;
    2) Делать ретурн после каждой ошибки вместо того, чтобы сразу обработать все, что передал пользователь с тем, чтобы показать ему разом список косяков - это то, за что я в начале 2000х ненавидел 95% сайтов. Потому, что, блджат, пока зарегаешься, придется страницу 10 раз обновить. А скорость, надо сказать, была не то что сейчас.
     
  15. AnteFil

    AnteFil Активный пользователь

    С нами с:
    14 янв 2014
    Сообщения:
    531
    Симпатии:
    4
    Да хоть код посмотри потом пиши
     
  16. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ой пожалуй поступит так же как ты с советом... да вообще с любым советом...
     
  17. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
  18. AnteFil

    AnteFil Активный пользователь

    С нами с:
    14 янв 2014
    Сообщения:
    531
    Симпатии:
    4
    Вообщем многое переделал исходный код уже не покажу а вот результат есть http://esns.ru/registration.php
    1) Реализована мультиязычность сайта
    2) Реализована регистрация на сайте (пока без проверки и верификации но думаю это вопрос пары дней)

    PS Там ещё менюшка к монитору прилипает ))))
     
  19. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.583
    Симпатии:
    1.761
    Хороша регистрация, я ещё ничего ввести не успел, а оно уже ругается, что я чего-то не ввёл...
     
  20. AnteFil

    AnteFil Активный пользователь

    С нами с:
    14 янв 2014
    Сообщения:
    531
    Симпатии:
    4
    Она не ругается она говорить что нужно сделать
     
  21. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.794
    Симпатии:
    1.330
    Адрес:
    Лень
    Код (PHP):
    1. //Проверяем есть ли у нас  данные с капчи если есть то пишем это в переменную 
    2. if ($grecaptcha == '') { unset($grecaptcha);} } 
    Хд