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
Нет такой переменной. Майэскуэль заплевался, передал не понятно что ему. Дебаж. Поверю только паспорту и что бы были сведетели которые это подтвердили бы, а так... По фоткам не плохо повеселились вы однажды, молодцы
Ввел комментарий из кода в поисковик, тут же получил ссылку на руселлеровский сайт, ну и на форумы, где выложены куски кода с такими же комментами. Теперь понятно откуда дровишки... Действительно, не зная таких основ, как функции и тернарный оператор рановато делать проекты. Нужно начать с основ, а потом и до реализации регистрации дойдет.
Почти готово Код (PHP): <?php ini_set('display_errors',1); error_reporting(E_ALL); define ( 'fatalerror', true ); include_once ('config.php'); // Подключаем файл с пользовательскими функциями require_once('reg.php'); // Записываем полученные пост данные в массив $fields $fields['login'] = $_POST['login']; $fields['password'] = $_POST['password']; $fields['email'] = $_POST['email']; $fields['g-recaptcha-response'] = $_POST['g-recaptcha-response']; // Обрабатываем даныне и результат запишем в новый массив с ошибками $errors $errors['login'] = proverkaLogina(trim($fields['login'])); $errors['password'] = proverkaParolya(trim($fields['password'])); $errors['email'] = proverkaEmail(trim($fields['email'])); $errors['g-recaptcha-response'] = proverkaKapcha(trim($fields['g-recaptcha-response'])); // Проверяем есть ли у нас ошибки что бы выполнять скрипт дальше если ошибок нет вперёд if($errors['login'] == '1' and $errors['password'] == '1') { echo 'Можем идти дальше';} else { echo 'ЧЁТ НЕ ТАК';} ?> И сами функциии Код (PHP): <?php ini_set('display_errors',1); error_reporting(E_ALL); include_once ('config.php'); function proverkaLogina($str) { // Инициализируем переменную с возможным сообщением об ошибке $error = ''; // Если отсутствует строка с логином, возвращаем сообщение об ошибке if(!$str) { $error = 'Вы не ввели имя пользователя'; return $error; } $pattern = '/^[-_.a-z\d]{4,16}$/i'; $result = preg_match($pattern, $str); // Если проверка не прошла, возвращаем сообщение об ошибке if(!$result) { $error = 'Недопустимые символы в имени пользователя или имя пользователя слишком короткое (длинное)'; return $error; } else { connect(); $sql = "SELECT `id` FROM `user` WHERE `login`='" . $str . "'"; $query = mysql_query($sql) or die("<p>Невозможно выполнить запрос: " . mysql_error() . ". Ошибка произошла в строке " . __LINE__ . "</p>"); if(mysql_num_rows($query) > '0') { $error = 'Пользователь с указанным логином уже зарегистрирован в системе'; mysql_close(); return $error; } } // Если же всё нормально, вернем значение true return true; } // Проверка пароля пользователя function proverkaParolya($str) { // Инициализируем переменную с возможным сообщением об ошибке $error = ''; // Если отсутствует строка с логином, возвращаем сообщение об ошибке if(!$str) { $error = 'Вы не ввели пароль'; return $error; } $pattern = '/^[_!)(.a-z\d]{6,16}$/i'; $result = preg_match($pattern, $str); // Если проверка не прошла, возвращаем сообщение об ошибке if(!$result) { $error = 'Недопустимые символы в пароле пользователя или пароль слишком короткий (длинный)'; return $error; } // Если же всё нормально, вернем значение true return true; } function proverkaEmail($str) { // Инициализируем переменную с возможным сообщением об ошибке $error = ''; // Если отсутствует строка с почтой, возвращаем сообщение об ошибке if(!$str) { $error = 'Вы забыли ввести почту'; return $error; } $pattern = '/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i'; $result = preg_match($pattern, $str); // Если проверка не прошла, возвращаем сообщение об ошибке if(!$result) { $error = 'Недопустимые символы в пароле пользователя или пароль слишком короткий (длинный)'; return $error; } // Если же всё нормально, вернем значение true return true; } function proverkaKapcha($str) { // Инициализируем переменную с возможным сообщением об ошибке $error = ''; // Если отсутствует строка с почтой, возвращаем сообщение об ошибке if(!$str) { $error = 'Вы забыли ввести Капчу'; return $error; } $ip = $_SERVER['REMOTE_ADDR']; $homepage = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret=ключ&response='.$str.'&remoteip='.$ip.''); $res = json_decode($homepage, true); // Если же всё нормально, вернем значение true if(!$res['success']== 1) { $error = 'Косяк с капчёй'; return $error; } return true; } ?> Ну вот что то начинает наклёвываться !!!!
Твой метод пятимерной квазифильтрации имени Попова осудили и ты теперь решил вовсе пускать в БД все, что приходит из адресной строки. Из крайности в крайность. Еще и регулярки зачем-то... А что будешь делать, если ошибок несколько, кстати?
В бд отправляеться то что прошло проверку регуляркой не все подряд а больше одной ошибки в функции быть не может
Эхехе... Все очень печально. 1) Твоя проверка регуляркой - порча данных, не более того; 2) Делать ретурн после каждой ошибки вместо того, чтобы сразу обработать все, что передал пользователь с тем, чтобы показать ему разом список косяков - это то, за что я в начале 2000х ненавидел 95% сайтов. Потому, что, блджат, пока зарегаешься, придется страницу 10 раз обновить. А скорость, надо сказать, была не то что сейчас.
Вообщем многое переделал исходный код уже не покажу а вот результат есть http://esns.ru/registration.php 1) Реализована мультиязычность сайта 2) Реализована регистрация на сайте (пока без проверки и верификации но думаю это вопрос пары дней) PS Там ещё менюшка к монитору прилипает ))))
Код (PHP): //Проверяем есть ли у нас данные с капчи если есть то пишем это в переменную if ($grecaptcha == '') { unset($grecaptcha);} } Хд