Dodana omejitev klikov/minuto pri izpolnjevanju dolocene ankete (zaenkrat 100)
This commit is contained in:
parent
65c97fa7af
commit
dfc8b403b3
69
function.php
69
function.php
@ -248,13 +248,6 @@ if ($admin_type > -1) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Sledenje spremembam (tracker)
|
|
||||||
// deluje tudi v adminu...
|
|
||||||
/*if ($global_user_id != 0) {
|
|
||||||
sisplet_query("INSERT INTO user_tracker (uid, timestamp, what) VALUES ('$global_user_id', '" . time() . "', '" . $_SERVER["REQUEST_URI"] . "')");
|
|
||||||
}*/
|
|
||||||
|
|
||||||
|
|
||||||
// Preverimo ce je spremenljivka countable (zaradi ogromno warningov v kodi, kjer se counta prazno spremenljivko)
|
// Preverimo ce je spremenljivka countable (zaradi ogromno warningov v kodi, kjer se counta prazno spremenljivko)
|
||||||
if (!function_exists('is_countable')) {
|
if (!function_exists('is_countable')) {
|
||||||
function is_countable($var) {
|
function is_countable($var) {
|
||||||
@ -263,12 +256,21 @@ if (!function_exists('is_countable')) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Preverimo klike na minuto pri izpolnjevanju anekte da se ne zapolni sql
|
||||||
|
if(!checkClicksPerMinute()){
|
||||||
|
|
||||||
|
http_response_code(425);
|
||||||
|
echo '<h1>Service Unavailable.</h1>';
|
||||||
|
|
||||||
|
die();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Preverimo tip hierarhije
|
// Preverimo tip hierarhije
|
||||||
$hierarhija_type = preveriTipHierarhije();
|
$hierarhija_type = preveriTipHierarhije();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/******* SPLOSNE FUNKCIJE *******/
|
/******* SPLOSNE FUNKCIJE *******/
|
||||||
|
|
||||||
// Skrajsa string, in ga odreze lepo za besedo in ne kar vmes :)
|
// Skrajsa string, in ga odreze lepo za besedo in ne kar vmes :)
|
||||||
@ -1143,4 +1145,55 @@ function root_dir($file = null)
|
|||||||
return __DIR__ .'/'. $file;
|
return __DIR__ .'/'. $file;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Pri izpolnjevanju ankete preverimo stevilo klikov na minuto - ce jih je prevec, respondenta zavrnemo, drugace se lahko sql zafila in streznik ni vec odziven
|
||||||
|
function checkClicksPerMinute(){
|
||||||
|
|
||||||
|
// Stevilo klikov/minuto na anketo (izpolnjevanje), ki jih se pustimo preden zablokiramo dostop
|
||||||
|
$click_minute_limit = 100;
|
||||||
|
|
||||||
|
// Preverimo ce gre za izpolnjevanje ankete
|
||||||
|
if($_SERVER["SCRIPT_NAME"] != '/main/survey/index.php')
|
||||||
|
return true;
|
||||||
|
|
||||||
|
// Preverimo ce gre za prvi prihod na doloceno stran ankete in ne na prvo stran
|
||||||
|
if(isset($_GET['grupa']))
|
||||||
|
return true;
|
||||||
|
|
||||||
|
// Preverimo ce je id ankete ustrezno nastavljen
|
||||||
|
if(!isset($_GET['anketa']) || $_GET['anketa'] <= 0)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
|
||||||
|
$click_time = time();
|
||||||
|
|
||||||
|
$sql = sisplet_query("SELECT click_count, click_time FROM srv_clicks WHERE ank_id='".$_GET['anketa']."'");
|
||||||
|
if (mysqli_num_rows($sql) > 0) {
|
||||||
|
|
||||||
|
list($click_count, $first_click_time) = mysqli_fetch_array($sql);
|
||||||
|
|
||||||
|
// Ce nismo znotraj minute vse resetiramo in pustimo naprej
|
||||||
|
if($click_time - $first_click_time > 60){
|
||||||
|
$sqlI = sisplet_query("UPDATE srv_clicks SET click_count='1', click_time='".$click_time."' WHERE ank_id='".$_GET['anketa']."'");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Click count je ok - pustimo naprej
|
||||||
|
if($click_count < $click_minute_limit){
|
||||||
|
$sqlI = sisplet_query("UPDATE srv_clicks SET click_count=click_count+1 WHERE ank_id='".$_GET['anketa']."'");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
// Click count je previsok - ZAVRNEMO
|
||||||
|
else{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$sqlI = sisplet_query("INSERT INTO srv_clicks (ank_id, click_count, click_time) VALUES ('".$_GET['anketa']."', '1', '".$click_time."')");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
?>
|
?>
|
@ -9294,3 +9294,14 @@ UPDATE misc SET value='20.09.16' WHERE what="version";
|
|||||||
INSERT INTO srv_help (help, what) VALUES ('Upload omejitev', 'srv_upload_limit');
|
INSERT INTO srv_help (help, what) VALUES ('Upload omejitev', 'srv_upload_limit');
|
||||||
|
|
||||||
UPDATE misc SET value='20.09.18' WHERE what="version";
|
UPDATE misc SET value='20.09.18' WHERE what="version";
|
||||||
|
|
||||||
|
## Tabela dostopov do izpolnjevanja - preverjanje stevila klikov na minuto
|
||||||
|
CREATE TABLE srv_clicks (
|
||||||
|
ank_id INT(11) NOT NULL,
|
||||||
|
click_count SMALLINT NOT NULL DEFAULT 0,
|
||||||
|
click_time INT(11) NOT NULL,
|
||||||
|
PRIMARY KEY (ank_id),
|
||||||
|
CONSTRAINT fk_srv_clicks_ank_id FOREIGN KEY (ank_id) REFERENCES srv_anketa (id) ON DELETE CASCADE ON UPDATE CASCADE
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
|
UPDATE misc SET value='20.09.21' WHERE what="version";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user