Jump to content
php.lv forumi

Laika intervāls


zuicis

Recommended Posts

Sveiki, sen neesmu te rādijies :/ ...

Principā vajadzīga palīdzība ar laika intervāla izveidošanu-> piemēram uzspiežam uz bannera no konkrētas IP banneris pazūd uz 24 stundām no nospiešanas reizes. iesviedīšu php skriptu kur jāieliek šis variants kurš būtu jāuzcep.

 

<?php

 

if (isset($hostname) and isset($database) and isset($db_login) and isset($db_pass)) {

 

$dbconn = mysql_connect($hostname, $db_login, $db_pass) or die("nevaru pieklauveet");

 

mysql_select_db($database) or die("nevar atrast datubazi");

 

$query = "SELECT url,visits FROM ban50 WHERE id=$id";

 

$result = mysql_query($query) or die("Kljuda pieprasijumaa");

 

$rows = mysql_fetch_row($result);

 

$visits = $rows[1] + 1;

 

$cdate = date("Y-m-d h:i:s");

 

$query = "UPDATE ban50 SET visits=$visits WHERE id=$id";

 

$result = mysql_query($query) or die("Kljuda pieprasijumaa");

$query = "INSERT INTO ban_stats_visits50 (id, address, agent, datetime, referer) VALUES ('$id', '$REMOTE_ADDR', '$HTTP_USER_AGENT', '$cdate', '$HTTP_REFERER')";

 

$result = mysql_query($query) or die("Kljuda pieprasijumaa");

 

$query = "UPDATE userinf SET r_res1=r_res1+50 ";

 

$result = mysql_query($query) or die("Kljuda pieprasijumaa");

mysql_close($dbconn);

 

header("Location:$rows[0]");

 

}

?>

ideāli būtu ielikt kādu konkrētu nosacījumu ieboldotajā rindiņā , bet nezinu vai tas darbotos .. tāpēc domāju ka jāpieliek klāt jauns php skripts kuršs aktivizēšanas laikā konkrētam bannera ID uzliek 24 stundu laika atskaiti lai tas atkal parādītos .. ceru ka spēsiet palīdzēt ;)

Link to comment
Share on other sites

Nevar viņam uzdāvināt kūkiju par bannera apgrāpstīšanu ? Tad arī būtu mazāka noslodze DB

Piem.:

 

setcookie("banneris1", 'banneris1', time()+86400);

 

un

 

if($_COOKIE['banneris1']) {

echo "tāds jau ir skatīts";

}

Edited by martins256
Link to comment
Share on other sites

emm nu cepums ir cepums, agri vai veelu izdomaas kaads, ka cepumus var izdzēst un tad sāksies bardaks, tai spēlei kuru taisu (pati spele jau 99% gatava) ir alternatīva versija kā vākt resursus (zeltu) - klikšķinot pa banneriem kuriem ir dažādas vērtības (piem ir sadaļa ar banneriem kuru vērtība ir 50 zelta stieņu ir sadaļā kur vērtība ir 500 zelta stienju ... ) ja likšu cepumā kuru var izdzēst tad sāksies reāls bardaks - zelta pa pilnam un ja tā ir pa pilnam tad tirgū var nopirkt pārējos 8 resursu veidus ... tākā zelta iegūšanu esmu izveidojis samērā sarežģītu un ilglaicīgu tad arī iešāvās ideja par tiem banneriem - pasūtītājs samaksā un es ielieku vinja banneri - man ir labi, spēlētājam ir labi ... principā banneru sadaļa ir pēdējā .. ā nu vēl sms sistēma - bet tur tikai līgumi ... līdz ar to neder cookiji ... labāk lieka noslodze uz db nekā "haļavnie" resi un bardaks tirgū...

Link to comment
Share on other sites

Liekas vienkārši. Kad useris ielogojās, viņa ielogošanās laiku ieglabā tabulā, ja tabulā esošais laiks ir vecaks par 24h vai cik vajag un tad arī dara visu pārejo ar resursiem.

Edited by apophis
Link to comment
Share on other sites

emm atseviski banneriem jau ir uztaisīts cikos konkrētais banneris un nokādas ip ir uzspiests .. jāuzliek tikai tas 24 stundu aizliegums spiest konkrēto banneri pēc id no klienta IP ... bet pie svēdienas negribas īpaši domāt it īpaši ja pretī 6 smagas darba dienas un viss notiekās tikai svētdienās un vēlos vakaros ...

Link to comment
Share on other sites

Nu vienkāršākais veids neizmantojot nekādus citus palīglīdzekļus manuprāt sanāk šāds.

Uztaisi tabulai UNIQUE indeksu laukiem banera_id | usera_ip | datums (yyyy-mm-dd) (vienu uz visiem laukiem kopīgu) un taisi tikai INSERTUS .. attieciigi ja INSERTs izdodas (neatgriezh false) var "dot zeltu" ja neizdodas tas nozīme ka uz banera 24h laikā no konkrētās IP ir klišķināts.. Tā aiztaupīsies selecti etc.

Atkarīgs gan cik daudz to "baneru" un cik daudz klišķinātāju..

Link to comment
Share on other sites

×
×
  • Create New...