Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> В чём может быть ошибка??, помогите
orlov22region  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 3
Пользователь №: 42072
На форуме: 1 год, 26 дней
Карма:




Решил усовершенствовать модуль регистрации в vii engine cms.
Хотел сделать так, чтобы интервал между регистрацией пользователей с одного IP был час.
Создал таблицу в базе со столбцами ip и time.
ip - ip адрес пользователя.
time - время регистрации.
При попытке зарегистрироваться вылазит "Неизвестная ошибка".
В чем тут может быть ошибка?
(Мой код комментирован //AntiAutoReg)


<?php
/*
Appointment: Завершение регистрации
File: register.php
*/

if(!defined('MOZG'))
die('Hacking attempt!');

//Проверяем была ли нажата кнопка, если нет, то делаем редирект на главную
if(!$logged){
NoAjaxQuery();

//Код безопасности
$session_sec_code = $_SESSION['sec_code'];
$sec_code = $_POST['sec_code'];

//Если код введные юзером совпадает, то пропускаем, иначе выводим ошибку
if($sec_code == $session_sec_code){
//Входные POST Данные
$user_name = ajax_utf8(textFilter($_POST['name'], false, true));
$user_lastname = ajax_utf8(textFilter($_POST['lastname'], false, true));
$user_email = ajax_utf8(textFilter($_POST['email'], false, true));

$user_name = ucfirst($user_name);
$user_lastname = ucfirst($user_lastname);

$user_sex = intval($_POST['sex']);
if($user_sex < 0 OR $user_sex > 2) $user_sex = 0;

$user_day = intval($_POST['day']);
if($user_day < 0 OR $user_day > 31) $user_day = 0;

$user_month = intval($_POST['month']);
if($user_month < 0 OR $user_month > 12) $user_month = 0;

$user_year = intval($_POST['year']);
if($user_year < 1930 OR $user_year > 2007) $user_year = 0;

$user_country = intval($_POST['country']);
if($user_country < 0 OR $user_country > 10) $user_country = 0;

$user_city = intval($_POST['city']);
if($user_city < 0 OR $user_city > 1587) $user_city = 0;

$_POST['password_first'] = ajax_utf8($_POST['password_first']);
$_POST['password_second'] = ajax_utf8($_POST['password_second']);

$password_first = GetVar($_POST['password_first']);
$password_second = GetVar($_POST['password_second']);
$user_birthday = $user_year.'-'.$user_month.'-'.$user_day;

$errors = array();

//Проверка имени
if(preg_match("/^[a-zA-Zа-яА-Я]+$/iu", $user_name) AND strlen($user_name) >= 2) $errors[] = 0;

//Проверка фамилии
if(preg_match("/^[a-zA-Zа-яА-Я]+$/iu", $user_lastname) AND strlen($user_lastname) >= 2) $errors[] = 0;

//Проверка E-mail
if(preg_match('/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i', $user_email)) $errors[] = 0;


//Проверка Паролей
if(strlen($password_first) >= 6 AND $password_first == $password_second) $errors[] = 0;

$allEr = count($errors);

//Если нет ошибок то пропускаем и добавляем в базу
if($allEr == 4){
$check_email = $db->super_query("SELECT COUNT(*) AS cnt FROM `".PREFIX."_users` WHERE user_email = '{$user_email}'");
if(!$check_email['cnt']){


$md5_pass = md5(md5($password_first));
$user_group = '5';

if($user_country > 0 or $user_city > 0){
$country_info = $db->super_query("SELECT name FROM `".PREFIX."_country` WHERE id = '".$user_country."'");
$city_info = $db->super_query("SELECT name FROM `".PREFIX."_city` WHERE id = '".$user_city."'");

$user_country_city_name = $country_info['name'].'|'.$city_info['name'];
}

$user_search_pref = $user_name.' '.$user_lastname;

//AntiAutoReg
$check = $db->super_query("SELECT time FROM `".PREFIX."_stop_reg` WHERE ip = '$_IP' order by aid DESC limit 0,1");
if($check['time'] > (time()-60)) die('ddos');



//Hash ID
$hid = $md5_pass.md5(md5($_IP));

$db->query("INSERT INTO `".PREFIX."_users` (user_email, user_password, user_name, user_lastname, user_sex, user_day, user_month, user_year, user_country, user_city, user_reg_date, user_lastdate, user_group, user_hid, user_country_city_name, user_search_pref, user_birthday, user_privacy) VALUES ('{$user_email}', '{$md5_pass}', '{$user_name}', '{$user_lastname}', '{$user_sex}', '{$user_day}', '{$user_month}', '{$user_year}', '{$user_country}', '{$user_city}', '{$server_time}', '{$server_time}', '{$user_group}', '{$hid}', '{$user_country_city_name}', '{$user_search_pref}', '{$user_birthday}', 'val_msg|1||val_wall1|1||val_wall2|1||val_wall3|1||val_info|1||')");
$id = $db->insert_id();

//AntiAutoReg
$db->query("INSERT INTO `".PREFIX."_stop_reg` (ip, time) VALUES ('{$_IP}', '{$server_time}')");

//Устанавливаем в сессию ИД юзера
$_SESSION['user_id'] = intval($id);

//Записываем COOKIE
set_cookie("user_id", intval($id), 365);
set_cookie("password", md5(md5($password_first)), 365);
set_cookie("hid", $hid, 365);

//Создаём папку юзера в кеше
mozg_create_folder_cache("user_{$id}");

//Директория юзеров
$uploaddir = ROOT_DIR.'/uploads/users/';

@mkdir($uploaddir.$id, 0777);
@chmod($uploaddir.$id, 0777);
@mkdir($uploaddir.$id.'/albums', 0777);
@chmod($uploaddir.$id.'/albums', 0777);

//Если юзер регался по реф ссылки, то начисляем рефералу 10 убм
if($_SESSION['ref_id']){
//Проверям на накрутку убм, что юзер не сам регистрирует анкеты
$check_ref = $db->super_query("SELECT COUNT(*) AS cnt FROM `".PREFIX."_log` WHERE ip = '{$_IP}'");
if(!$check_ref['cnt']){
$ref_id = intval($_SESSION['ref_id']);

//Даём рефералу +10 убм
$db->query("UPDATE `".PREFIX."_users` SET user_balance = user_balance+10 WHERE user_id = '{$ref_id}'");

//Вставялем рефералу ид регистратора
$db->query("INSERT INTO `".PREFIX."_invites` SET uid = '{$ref_id}', ruid = '{$id}'");
}
}


//Вставляем лог в бд
$db->query("INSERT INTO `".PREFIX."_log` SET uid = '{$id}', browser = '{$_BROWSER}', ip = '{$_IP}'");

echo 'ok|'.$id;
} else
echo 'err_mail|';
} else
echo 'no_val';
}
die();
}
?>
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
AllesKlar  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3375
Пользователь №: 38635
На форуме: 2 года, 11 месяцев, 7 дней
Карма: 170




ни $_IP, ни $server_time не определены


--------------------
[продано копирайтерам]
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
orlov22region  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 3
Пользователь №: 42072
На форуме: 1 год, 26 дней
Карма:




Цитата (AllesKlar @ 7.11.2015 - 12:39)
ни $_IP, ни $server_time не определены

Значит они определены в другом файле P.S запрос:

//AntiAutoReg
$db->query("INSERT INTO `".PREFIX."_stop_reg` (ip, time) VALUES ('{$_IP}', '{$server_time}')");

вставляет в базу ip и время нормально, а вот после этого:

//AntiAutoReg
$check = $db->super_query("SELECT time FROM `".PREFIX."_stop_reg` WHERE ip = '$_IP' order by aid DESC limit 0,1");
if($check['time'] > (time()-60)) die('ddos');

Пишет ошибку при регистрации.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
AllesKlar  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3375
Пользователь №: 38635
На форуме: 2 года, 11 месяцев, 7 дней
Карма: 170




Ну тогда так:
$sql = "SELECT time FROM `".PREFIX."_stop_reg` WHERE ip = '$_IP' order by aid DESC limit 0,1";
die($sql);


И выкладывай запрос + структуру таблицы к которой идет запрос и код супер-функции $db->super_query() :)


--------------------
[продано копирайтерам]
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
orlov22region  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 3
Пользователь №: 42072
На форуме: 1 год, 26 дней
Карма:




Цитата (AllesKlar @ 7.11.2015 - 13:02)
Ну тогда так:
$sql = "SELECT time FROM `".PREFIX."_stop_reg` WHERE ip = '$_IP' order by aid DESC limit 0,1";
die($sql);


И выкладывай запрос + структуру таблицы к которой идет запрос и код супер-функции $db->super_query() :)

Что-то я ничего не понял blink.gif huh.gif
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
kristall  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



418 I'm a teapot
******

Профиль
Журнал
Группа: Форумчанин
Завсегдатай форума
Сообщений: 647
Пользователь №: 28374
На форуме: 5 лет, 5 месяцев, 18 дней
Карма: 22




Что непонятного? Проверяй соответствие данных ожидаемым на каждом шаге. Даже там, где тебе кажется, что ошибка исключена.


--------------------
echo '<pre>',print_r($var, 1);die;

root@server# make love && war
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса