Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
 Аватар для moonwalk2015
0 / 0 / 0
Регистрация: 01.03.2016
Сообщений: 31

Переменная $_SESSION

10.10.2021, 07:03. Показов 1624. Ответов 13
Метки php (Все метки)

Студворк — интернет-сервис помощи студентам
Парни помогите, пожалуйста. Есть крипт он показывает рекапчу, прокси, vpn, и забаненные ip адреса.
Привязка там идет к сесии, этот файл index.php dle
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
// TO3ls CheckBot and Captcha
function checkBot()
{
    session_start();
 
    $form = "";
 
    $today = date("Y-m-d");
    $offset = strtotime("+3 days");
    $enddate = date("Y-m-d", $offset);
 
    if (empty( $_SESSION["expBotCheck"]) || strtotime($_SESSION["expBotCheck"]) <= strtotime($today) ) {
 
        $_SESSION['return_url'] = $_SERVER['REQUEST_URI'];
 
        $config["recaptcha_public_key"] = "6LcDf0QUAAAAAMfdtOXQpB4RwN44MaGi1rwJPab2";
 
        $form = "<form action='/checkBot.php' method='POST'>";
        $form .= "<script src=\"/engine/classes/js/jquery.js?v=" . time() . "\"></script>";
 
        $form .= "<div class=\"g-recaptcha\" data-sitekey=\"{$config['recaptcha_public_key']}\"></div><script src=\"https://www.google.com/recaptcha/api.js?hl={$lang['wysiwyg_language']}\" async defer></script>";
        $form .= "<button type=''submit'>Войти на сайт</button> ";
        $form .= "</form>";
 
    }
 
    return $form;
}
// TO3ls CheckBot and Captch
 
 
 
 
// Блок ip адресов
$file = file('Proxy/black_list.txt', FILE_IGNORE_NEW_LINES);
$cr = array();
foreach($file as $value)
{
  list($ip, $date) = explode('|', $value);
  $cr[] = $ip;
}
$bot_or_proxy = False;
if(in_array($_SERVER['REMOTE_ADDR'],$cr) ){
$bot_or_proxy = True;
}
 
if( $bot_or_proxy ) {
   
     $checkBotBox = checkBot();
 
     if( !empty( $checkBotBox ) ) {    
 @require_once 'Proxy/Redirect_ip.php';
die;
}
}
// Блок ip адресов
И есть второй файл.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?php
 
/*
 Bot Checker By to3ls
*/
 
session_start();
 
function get_ip() {
 
    $ip = $_SERVER['REMOTE_ADDR'];
 
    $temp_ip = explode(",", $ip);
 
    if(count($temp_ip) > 1) $ip = trim($temp_ip[0]);
 
    if ( filter_var( $ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) ) {
        return filter_var( $ip , FILTER_VALIDATE_IP, FILTER_FLAG_IPV4);
    }
 
    if ( filter_var( $ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) ) {
        return filter_var( $ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6);
    }
 
    return 'not detected';
}
 
function getReturnUrl() {
    if (!empty($_SESSION['return_url'])) {
        $returnUrl = $_SESSION['return_url'];
        unset($_SESSION['return_url']);
        
        return $returnUrl;
    } 
 
    return  '/';
}
 
if (empty( $_POST["g-recaptcha-response"])) {
    die;
}
 
$config["recaptcha_private_key"] = "6LcDf0QUAAAAAERhUoLQQen4PvWnGxz6t5w8BJi_";
 
include_once ('engine/classes/recaptcha.php');
$reCaptcha = new ReCaptcha($config['recaptcha_private_key']);
 
$resp = $reCaptcha->verifyResponse(get_ip(), $_POST['g-recaptcha-response'] );
 
if ($resp != null && $resp->success ) {
 
    $today = date("Y-m-d");
    $offset = strtotime("+3 days");
    $enddate = date("Y-m-d", $offset);
 
    $_SESSION["expBotCheck"] = $enddate;
}
 
header("Location: " . getReturnUrl());
exit;
Ссесия по времени должны кончаться через три дня, а на самом деле, часа через два показывается капча обратно.


Вот что я нашел
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
    session_start();
    $time = 200000;
    $time_now = time();
    if (!isset($_SESSION["time"])) $_SESSION["time"] = $time_now + $time;
    if ($time_now - $_SESSION["time"]  >= $time)
    {
        $_SESSION["time"] = $time_now;
        echo "Перешел прошло 55,56";
    }
    else
    {
        echo "Не прошло " . $time . " секунд";
    }
?>
Проверил работает, но как его в мой код вставить, незнаю. Подскажите!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.10.2021, 07:03
Ответы с готовыми решениями:

$_SESSION
ребята, помогите разобраться на простом примере, как правильно работать с сессией. допустим имеется две страницы (html_1.php и...

Не сохраняется $_SESSION
Здравствуйте, пытаюсь сохранить адрес почты в сессию $_SESSION = $answer_agent_check -&gt; email;, при попытки вывести - пустота, если...

Использование $GLOBALS или $_SESSION
Здравствуйте. Существует такая ситуация, что нужно сделать инициализацию системы. То есть мне нужен ряд параметров доступных в любом...

13
220 / 173 / 115
Регистрация: 19.01.2015
Сообщений: 524
10.10.2021, 08:11
PHP
1
2
3
4
5
 $today = date("Y-m-d");
    $offset = strtotime("+3 days");
    $enddate = date("Y-m-d", $offset);
 
    $_SESSION["expBotCheck"] = $enddate;
;
Вот это, проще заменить на:
PHP
1
$_SESSION["expBotCheck"] = time() + 60*60*24*3;
И вот это:
PHP
1
2
3
4
5
    $today = date("Y-m-d");
    $offset = strtotime("+3 days");
    $enddate = date("Y-m-d", $offset);
 
    if (empty( $_SESSION["expBotCheck"]) || strtotime($_SESSION["expBotCheck"]) <= strtotime($today) )
На:
PHP
1
if (empty( $_SESSION["expBotCheck"]) || strtotime($_SESSION["expBotCheck"]) <= time() )

И ещё важно сколько сама сессия живёт и сессионная кука.
1
193 / 140 / 36
Регистрация: 19.11.2020
Сообщений: 881
10.10.2021, 08:29
Цитата Сообщение от moonwalk2015 Посмотреть сообщение
// Блок ip адресов
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[SPOILER]$file = file('Proxy/black_list.txt', FILE_IGNORE_NEW_LINES);
$cr = array();
foreach($file as $value)
{
 list($ip, $date) = explode('|', $value);
 $cr[] = $ip;
}
$bot_or_proxy = False;
if(in_array($_SERVER['REMOTE_ADDR'],$cr) ){
$bot_or_proxy = True;
}
if( $bot_or_proxy ) {
$checkBotBox = checkBot();
if( !empty( $checkBotBox ) ) { 
 @require_once 'Proxy/Redirect_ip.php';
die;
}
}[/SPOILER]
Почему бы этот говнокод не заменить на ?
PHP
1
2
3
4
5
6
7
if(mb_stripos(file_get_contents('Proxy/black_list.txt'), $_SERVER['REMOTE_ADDR']) !== false) {
    $checkBotBox = checkBot();
    if(!empty( $checkBotBox) ) { 
        @require_once 'Proxy/Redirect_ip.php';
        die;
    }
}
1
 Аватар для moonwalk2015
0 / 0 / 0
Регистрация: 01.03.2016
Сообщений: 31
10.10.2021, 08:36  [ТС]
Пропала капча почему то
0
 Аватар для moonwalk2015
0 / 0 / 0
Регистрация: 01.03.2016
Сообщений: 31
10.10.2021, 09:43  [ТС]
Капча появилась, но на сайт уже при прохождении капчи, на сайт не входит

Добавлено через 59 минут
Методом тыка выяснил и за этого кода не работает. Я в php не понимаю.
PHP
1
$_SESSION["expBotCheck"] = time() + 60*60*24*3;
0
220 / 173 / 115
Регистрация: 19.01.2015
Сообщений: 524
10.10.2021, 11:45
Цитата Сообщение от moonwalk2015 Посмотреть сообщение
Методом тыка выяснил и за этого кода не работает
Не может из-за этого не работать. Или вставили не туда, или стерли лишнего, или не стерли ненужное.
0
 Аватар для moonwalk2015
0 / 0 / 0
Регистрация: 01.03.2016
Сообщений: 31
10.10.2021, 11:53  [ТС]
Да тут напутать невозможно, хоть и в коде не понимаю.
Файл checkBot.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<?php
 
/*
 Bot Checker By to3ls
*/
 
session_start();
 
function get_ip() {
 
    $ip = $_SERVER['REMOTE_ADDR'];
 
    $temp_ip = explode(",", $ip);
 
    if(count($temp_ip) > 1) $ip = trim($temp_ip[0]);
 
    if ( filter_var( $ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) ) {
        return filter_var( $ip , FILTER_VALIDATE_IP, FILTER_FLAG_IPV4);
    }
 
    if ( filter_var( $ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) ) {
        return filter_var( $ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6);
    }
 
    return 'not detected';
}
 
function getReturnUrl() {
    if (!empty($_SESSION['return_url'])) {
        $returnUrl = $_SESSION['return_url'];
        unset($_SESSION['return_url']);
        
        return $returnUrl;
    } 
 
    return  '/';
}
 
if (empty( $_POST["g-recaptcha-response"])) {
    die;
}
 
$config["recaptcha_private_key"] = "6LcDf0QUAAAAAERhUoLQQen4PvWnGxz6t5w8BJi_";
 
include_once ('engine/classes/recaptcha.php');
$reCaptcha = new ReCaptcha($config['recaptcha_private_key']);
 
$resp = $reCaptcha->verifyResponse(get_ip(), $_POST['g-recaptcha-response'] );
 
if ($resp != null && $resp->success ) {
 /*
    $today = date("Y-m-d");
    $offset = strtotime("+3 days");
    $enddate = date("Y-m-d", $offset);
 
    $_SESSION["expBotCheck"] = $enddate;*/
    $_SESSION["expBotCheck"] = time() + 60*60*24*3;
}
 
header("Location: " . getReturnUrl());
exit;
 
  header( "Location: "  . $_SERVER['HTTP_REFERER'] );
  if (isset($_SERVER['HTTP_CF_CONNECTING_IP'])) 
$_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_CF_CONNECTING_IP'];
 
if (filesize("Proxy/recaptcha.csv")<10485760) {
 $fh=fopen("Proxy/recaptcha.csv","a+");
 flock($fh,LOCK_EX);
 fseek($fh,0);
 while (!feof($fh)) $str.=fread($fh,8192);
$str.=date("H:i:s d:m:Y")." |ip ".htmlspecialchars($_SERVER['REMOTE_ADDR']." |UA ".$_SERVER['HTTP_USER_AGENT']." |lang ".$_SERVER['HTTP_ACCEPT_LANGUAGE']." |Url ".$_SERVER['REQUEST_URI']." |Reff ".$_SERVER['HTTP_REFERER']." \r\n");
 ftruncate($fh,0);
 fwrite($fh,$str);
 flock($fh,LOCK_UN);
 fclose($fh);
 }
 exit;
?>
файл index.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
// TO3ls CheckBot and Captcha
function checkBot()
{
    session_start();
 
    $form = "";
 /*
        $today = date("Y-m-d");
    $offset = strtotime("+3 days");
    $enddate = date("Y-m-d", $offset);
 
  //  if (empty( $_SESSION["expBotCheck"]) || strtotime($_SESSION["expBotCheck"]) <= strtotime($today) )*/
 if (empty( $_SESSION["expBotCheck"]) || strtotime($_SESSION["expBotCheck"]) <= time() )
 
     {
 
        $_SESSION['return_url'] = $_SERVER['REQUEST_URI'];
 
        $config["recaptcha_public_key"] = "6LcDf0QUAAAAAMfdtOXQpB4RwN44MaGi1rwJPab2";
 
        $form = "<form action='/checkBot.php' method='POST'>";
        $form .= "<script src=\"/engine/classes/js/jquery.js?v=" . time() . "\"></script>";
 
        $form .= "<div class=\"g-recaptcha\" data-sitekey=\"{$config['recaptcha_public_key']}\"></div><script src=\"https://www.google.com/recaptcha/api.js?hl={$lang['wysiwyg_language']}\" async defer></script>";
        $form .= "<button type=''submit'>Войти на сайт</button> ";
        $form .= "</form>";
 
    }
 
    return $form;
}
// TO3ls CheckBot and Captch
// Блок ip адресов
$bot_or_proxy = False;
if(mb_stripos(file_get_contents('Proxy/black_list.txt'), $_SERVER['REMOTE_ADDR']) !== false) 
 
{
    $bot_or_proxy = True;
    $checkBotBox = checkBot();
    if(!empty( $checkBotBox) ) { 
        @require_once 'Proxy/Redirect_ip.php';
        die;
    }
}
// Блок ip адресов

Есть третий файд, где капча подгружается, может и за этого
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php
if (isset($_SERVER['HTTP_CF_CONNECTING_IP'])) $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_CF_CONNECTING_IP'];
if (filesize("Proxy/Заблокированные_ip.csv")<10485760) {
 $fh=fopen("Proxy/Заблокированные_ip.csv","a+");
 flock($fh,LOCK_EX);
 fseek($fh,0);
 while (!feof($fh)) $str.=fread($fh,8192);
$str.=date("H:i:s d:m:Y")." ,ip ".htmlspecialchars($_SERVER['REMOTE_ADDR']." , ".
  $_SERVER['HTTP_USER_AGENT']." , ".$_SERVER['HTTP_ACCEPT_LANGUAGE']." , ".$_SERVER['REQUEST_URI']." , ".$_SERVER['HTTP_REFERER']."|\r\n");
 ftruncate($fh,0);
 fwrite($fh,$str);
 flock($fh,LOCK_UN);
 fclose($fh);
 
}
 
 
 
?>
<style type="text/css"> 
  button { 
    border: none;
    border-radius: 7px;
    padding: 10px 25px;
    background: #0a58ca;
    cursor: pointer;
    text-transform: uppercase;
    font-weight: bold;
    color: white;
  }
  button:hover { 
    background: #ff6600;
  } 
   
</style>
 
 
<center><p><br><br><br><br><br><br><br><br><center><h2>Вы ис­поль­зуе­те VPN или про­кси–сер­вер!<br>
По­жа­луй­ста, под­вер­ти­те, что Вы не ро­бот и на­жми­те кноп­ку вой­ти на сайт!<br>
Эта ра­зо­вая про­вер­ка, ко­то­рой боль­ше не бу­дет!</h2></center></p>
 
<?php echo $checkBotBox; ?>
 
</center>
Разгадываю, нажимаю войти, и не входит.
Методом тыка, выяснил, этот код
PHP
1
$_SESSION["expBotCheck"] = time() + 60*60*24*3;
0
220 / 173 / 115
Регистрация: 19.01.2015
Сообщений: 524
10.10.2021, 12:09
Лучший ответ Сообщение было отмечено moonwalk2015 как решение

Решение

PHP
1
if (empty( $_SESSION["expBotCheck"]) || strtotime($_SESSION["expBotCheck"]) <= time() )
Тут strtotime убрать нужно:
PHP
1
if (empty( $_SESSION["expBotCheck"]) || $_SESSION["expBotCheck"] <= time() )
1
 Аватар для moonwalk2015
0 / 0 / 0
Регистрация: 01.03.2016
Сообщений: 31
10.10.2021, 12:18  [ТС]
Большее спасибо! Сейчас работает, посмотрю как будет по времени. Но вот загвоздка, браузер если закрыл, и сразу открыл, и капча обратно, что делать хз.
Надо куки наверно.
0
220 / 173 / 115
Регистрация: 19.01.2015
Сообщений: 524
10.10.2021, 12:31
Цитата Сообщение от moonwalk2015 Посмотреть сообщение
Но вот загвоздка, браузер если закрыл, и сразу открыл, и капча обратно, что делать хз.
Использовать куки вместо сессий, поставить на 3 дня куку которая будет означать что не нужно капчу показывать, если нет такой куки то показывать капчу.
Минус в том что куку подделать можно.

Добавлено через 8 минут
Или можно попробовать в htaccess добавить строки:
Code
1
2
php_value session.gc_maxlifetime 260000
php_value session.cookie_lifetime 260000
1
 Аватар для moonwalk2015
0 / 0 / 0
Регистрация: 01.03.2016
Сообщений: 31
10.10.2021, 12:34  [ТС]
Да мне сайт топят реф спамом, я ip адреса блокирую и общедоступные прокси по базе, а вот теперь хочу попробовать закрыть все кроме бывшего СССР.
Можете, пожалуйста, показать пример, как именно куку прикрутить, а за несколько дней я испробую все варианты, и остановлюсь на подходящем.
Я этот код не писал, программист писал, а он сейчас пропал, но и тут на форуме с ним уже помогали, дня три назад.

Добавлено через 1 минуту
Это у меня есть, я первым делом, попробовал это, дня два уже ищу решение, и вот потом суда обратился.
PHP
1
2
php_value session.gc_maxlifetime 260000
php_value session.cookie_lifetime 260000
0
220 / 173 / 115
Регистрация: 19.01.2015
Сообщений: 524
10.10.2021, 12:53
Лучший ответ Сообщение было отмечено moonwalk2015 как решение

Решение

Цитата Сообщение от moonwalk2015 Посмотреть сообщение
Можете, пожалуйста, показать пример, как именно куку прикрутить,
PHP
1
2
3
4
5
6
7
8
9
if ($resp != null && $resp->success ) {
 /*
    $today = date("Y-m-d");
    $offset = strtotime("+3 days");
    $enddate = date("Y-m-d", $offset);
 
    $_SESSION["expBotCheck"] = $enddate;*/
    $_SESSION["expBotCheck"] = time() + 60*60*24*3;
}
Поменять на:
PHP
1
2
3
if ($resp != null && $resp->success ) {
setcookie("BotCheck", 1, time() + 60*60*24*3, '/');
}
и
PHP
1
if (empty( $_SESSION["expBotCheck"]) || $_SESSION["expBotCheck"] <= time() )
на:
PHP
1
if (!isset($_COOKIE["BotCheck"]) || $_COOKIE["BotCheck"] != 1 )
Добавлено через 7 минут
Цитата Сообщение от moonwalk2015 Посмотреть сообщение
а вот теперь хочу попробовать закрыть все кроме бывшего СССР.
Вместе с гуглом?
Проще всего через cloudflare это делать. Или если стоит геомодуль то его использовать, но cloudflare проще и поисковики не заблокирует.
1
 Аватар для moonwalk2015
0 / 0 / 0
Регистрация: 01.03.2016
Сообщений: 31
10.10.2021, 13:09  [ТС]
Большее спасибо! Все работает.

Добавлено через 3 минуты
Вместе с гуглом?
Проще всего через cloudflare это делать. Или если стоит геомодуль то его использовать, но cloudflare проще и поисковики не заблокирует.
Нет, США открыта, да и там проверка на UA

PHP
1
2
3
4
5
6
7
function BadSocTraf() {
// список рефереров которым показывать антибота:
return preg_match("/(bingbot|Chrome-Lighthouse|Mediapartners-Google|APIs-Google|AdsBot-Google-Mobile|AdsBot-Google|Googlebot-Image|Googlebot-News|Googlebot|AdsBot-Google-Mobile-Apps|Mail.RU_Bot|YandexAccessibilityBot|YandexAdNet|YandexBlogs|YandexBot|YandexBot|YandexCalendar|YandexDialogs|YandexDirect|YandexDirectDyn|YandexFavicons|YaDirectFetcher)/i", @$_SERVER['HTTP_USER_AGENT']);
}
// в итоге антибот будет покзываться только трафу с плохим реферером, а также закладочному трафику:
if (BadSocTraf() == @trim($_SERVER['HTTP_USER_AGENT']) ) {
if(strpos($_SERVER['HTTP_REFERER'], 'iframe-toloka.com') == FALSE){


PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
// Блок страны
$bot_or_proxy = False;
require_once './Proxy/ip2location.class.php';
 
$ip = new ip2location();
$ip->open('./Proxy/IP2LOCATION-LITE-DB1.BIN');
$record = $ip->getAll($_SERVER['REMOTE_ADDR']);
$code = $record->countryShort;
$redir = True;
 
//RUSSIA
if ($code == "RU") {
    $redir = false;
}
//МОЛДОВА, РЕСПУБЛИКА
if ($code == "MD") {
    $redir = false;
}
//Республика Армения
if ($code == "AM") {
    $redir = false;
}
//УКРАИНА
if ($code == "UA") {
    $redir = false;
}
//Республика Азербайджан
if ($code == "AZ") {
    $redir = false;
}
//ГРУЗИЯ
if ($code == "GE") {
    $redir = false;
}
//Литовская Республика
if ($code == "LT") {
    $redir = false;
}
//Республика Беларусь
if ($code == "BY") {
    $redir = false;
}
//Республика Узбекистан
if ($code == "UZ") {
    $redir = false;
}
//Латвийская Республика
if ($code == "LV") {
    $redir = false;
}
//Республика Таджикистан
if ($code == "TJ") {
    $redir = false;
}
//  Эстонская Республика
if ($code == "EE") {
    $redir = false;
}
//  Киргизская Республика
if ($code == "KG") {
    $redir = false;
}
//  Республика Казахстан
if ($code == "KZ") {
    $redir = false;
}
//  Туркменистан
if ($code == "TM") {
    $redir = false;
}
//США
if ($code == "US") {
    $redir = false;
}
 
if ($redir != false) {
 $bot_or_proxy = True;
}
    if( $bot_or_proxy ) {
   
     $checkBotBox = checkBot();
 
     if( !empty( $checkBotBox ) ) {
        
       // echo $checkBotBox; // -- Перенес в blockProxy
        @require_once 'Proxy/country _blockProxy.php';
        die;
     }
 
}
// Блок страны
Добавлено через 1 минуту
Вы на заказ скрипты пишете?

Добавлено через 8 минут
Сейчас это все работает с этой базой
https://lite.ip2location.com/d... pe-country
И этой
https://lite.ip2location.com/d... ip-country
Планирую потом прикрутить черный и белый список по анс
https://lite.ip2location.com/database-asn эту базу прикрутить и код в порядок привести, частично по кускам сам собирал.
0
193 / 140 / 36
Регистрация: 19.11.2020
Сообщений: 881
10.10.2021, 16:10
Я от спама увернулся очень легко. Если это бот? То мы просто заполняем через js какие то данные, которые будут только у пользователя (К примеру положение мышки на экране - если есть, то даём разрешение).

Если бот долбит контактные формы ? Просто добавляет невидимое поле. И если оно будет заполнено, ничего не делаем.

Если бот слишком много обращается к сайту ? Создаёт БД и записываем IP адрес, и смотрим, если он долбит быстрее чем в N секунду разрешено. Блокируем доступ к этому сайту, не давая даже никакой капчи в рот.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.10.2021, 16:10
Помогаю со студенческими работами здесь

Работа с массивами $_SESSION и $_COOKIE
Такой вот эстетический, если можно так выразиться, вопрос..) Сколько примерно переменных можно хранить в сессионном массиве, чтобы это...

Сохранить выбранный элемент из MySQL в $_SESSION
Добрый вечер, Имеется скрипт 1.php session_start(); $sql_1 = &quot;SELECT ID,text,dt FROM Notes WHERE username='test' ORDER BY ID DESC...

PHP и Arduino. COM порт. Не сохраняется $_SESSION
Требуется управлять платой Arduino по usb - ком интерфейс. Ос ubuntu. Отправка в ком порт - как и в файл: fopen, fwrite. Сначала делал...

Авторизация c $_SESSION и $_COOKIE на PHP сайте
Привет всем! У меня есть проблема с сессиями. Объясню подробнее: У меня стоит Apache2.2 и PHP 5.4 шаренная папка localhost для...

Возможность записывать значения в $_SESSION при итерации
можно ли при итериции записывать в $_SESSION значения?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru