Autor | Zpráva | ||
---|---|---|---|
pito Profil |
#1 · Zasláno: 26. 5. 2011, 07:55:24
Zdravím,
Mám počítadlo které mi zjišťuje čas a ip návštěvníka a posílá to do DB,ale mám takový problém,že v databazi mám stejné ip třeba i co kažkou 1hod. a tím pádem mám na webu v počítadle více návštěv než na Toplistu.(můj má př. 18 lidi a Toplis 6 lidi) nějak to blbne má to nastavené aby ip stejná se zapisovala co 12h.Ale nefunguje to.Nevíte někdo co s tým?Nebo čím je lepší nahradit ip? pocitadlo.php include('db.php'); $ip = $_SERVER['REMOTE_ADDR']; if ($ip=="xx.xxx.xx.xxx" || $ip=="xx.xxx.xx.x" || $ip=="0.0.0.2"){ // pokud je IP adresa navstevnika napsana tady, vzkaz se neulozi a zobrazi se mu tato hlaska echo "<h3>Nevím kdo jsi,ale ničíš mi počitadlo proto máš BAN! Popros admina ať Tě smaže z banlistu</h3>"; exit; // skript se dale neprovede } // konec ip ban $result = mysql_query("SELECT 1 FROM pocitadlo WHERE ip = '$ip' AND datum > NOW() - INTERVAL 12 HOUR;"); if(mysql_num_rows($result) == 0) { mysql_query("INSERT INTO pocitadlo (ip, datum) VALUES('$ip', NOW())"); } $navstevnost_mesicni = mysql_result(mysql_query("SELECT COUNT(1) FROM pocitadlo WHERE datum > CURDATE() - DAYOFMONTH(CURDATE())+1;"),0); $navstevnost_tydenni = mysql_result(mysql_query("SELECT COUNT(1) FROM pocitadlo WHERE datum > CURDATE() - (DAYOFWEEK(CURDATE())+5)%7;"),0); $navstevnost_denni = mysql_result(mysql_query("SELECT COUNT(1) FROM pocitadlo WHERE datum > CURDATE();"),0); echo "Měsíční návštěvnost je: $navstevnost_mesicni<br>\n"; echo "Týdenní návštěvnost je: $navstevnost_tydenni<br>\n"; echo "Dnešní návštěvnost je: $navstevnost_denni<br>\n"; ve scriptu jde vidět,že jsem tam zkoušel i IP adresy které mi furt se zapisovali do DB banovat. |
||
Spectator Profil |
#2 · Zasláno: 26. 5. 2011, 12:02:52
"SELECT 1 FROM pocitadlo WHERE ip = '$ip' AND datum < NOW() - INTERVAL 12 HOUR" Nemá být ta podmínka spíš obráceně? |
||
pito Profil |
#3 · Zasláno: 26. 5. 2011, 16:18:58
Spectator:
To máš špatně.Zkoušel jsem to udělat jak píšeš,ale pokažde co aktualizují stránku mně to připíše do počitadla tedy do DB.Takže to mám správně asi. |
||
pito Profil |
#4 · Zasláno: 26. 5. 2011, 21:55:39
tak kde je chyba?
|
||
Keeehi Profil |
#5 · Zasláno: 26. 5. 2011, 22:12:36
pito:
Fungovat by to mělo správně. |
||
pito Profil |
#6 · Zasláno: 26. 5. 2011, 23:03:33
Keeehi:
:) to mám od tebe. Nejde to nějak nahradit třeba cookies?To ip? |
||
Keeehi Profil |
#7 · Zasláno: 26. 5. 2011, 23:55:50
pito:
„to mám od tebe“ Já vím. A mě to funguje, takže chyba bude nejspíš někde u tebe. Je to celý script, nebo tam ještě někde kolem něco je? Popř. je někam includován? „Nejde to nějak nahradit třeba cookies?To ip?“ Samozřejmě že jde. Řádek 7-10 by se upravil. Jenom je tam pak problém, že boti (a nejen ti), kteří s cookies nebudou pracovat, ti tam budou započítáváni pořád. |
||
Spectator Profil |
#8 · Zasláno: 27. 5. 2011, 08:00:04
pito:
Máš pravdu, napsal jsem blbost. Omlouvám se. |
||
pito Profil |
#9 · Zasláno: 27. 5. 2011, 14:30:36
Keeehi:
mám to includované do index.php <? include "pocitadlo.php"; ?> |
||
pito Profil |
#10 · Zasláno: 27. 5. 2011, 14:32:07
kotroloval jsem index.php a zapomněl jsem smazat
<?php session_start(); include("db.php"); ?> ale to by nemnělo vliv na to ne? |
||
pito Profil |
#11 · Zasláno: 28. 5. 2011, 10:23:17
smazal jsem to,ale pořád stejné tak už nevím
|
||
YoSarin Profil |
#12 · Zasláno: 28. 5. 2011, 17:33:11
A když to zkusíš pustit samotné? tzn přímo jako /pocitadlo.php (místo index.php)
|
||
pito Profil |
#13 · Zasláno: 29. 5. 2011, 20:50:18
jak to pustim samotne tak to funguje.Takze to jako nemuzu includovat? nebo to nemuzu dat do index?
|
||
YoSarin Profil |
#14 · Zasláno: 29. 5. 2011, 23:20:55
pito:
Tak to znamená, že chyba je patrně někde jinde v kódu který jsi sem vložil (třeba může být zakopaný pes v některém jiném includovaném souboru apod.). Takže buď sem vlož i zbytek kódu (index.php, db.php (poté co smažeš citlivé údaje), nebo si to zkus u sebe otestovat - postupně zakomentovávej a odkomentovávej řádky které by to mohly způsobit... |
||
pito Profil |
#15 · Zasláno: 30. 5. 2011, 21:07:00
pito:
„jak to pustim samotne tak to funguje“ Ted nevim jestli to počítá mně dobrře nebo Toplist :) v db mám každou jinou ip celkem 5 návštěvníku a v Toplistu je pouze jeden,ale to mi nějak nepasuje hm tak zž nevím. |
||
pito Profil |
#16 · Zasláno: 30. 5. 2011, 21:12:25
YoSarin:
posílám jestli to nějak pomůže: db.php <?php $spojeni = mysql_connect("server","db_name","heslo" ) or die ('Spatne zadane udaje (asi heslo, server nebo jmeno.) v db.php'); mysql_select_db("DB_name", $spojeni) or die ('Spatne zadana databaze v admin/db.php'); mysql_query("SET character_set_client=utf8"); mysql_query("SET character_set_connection=utf8"); mysql_query("SET character_set_results=utf8"); ?> a index.php <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd"> <!-- saved from url=(0034)http://stolarskeprace.cz/--> <HTML lang=cs xmlns="http://www.w3.org/1999/xhtml" xml:lang="cs"><HEAD> <TITLE>Stolařské práce</TITLE> <META http-equiv=Content-Type content="text/html; charset=utf-8"> <link rel="stylesheet" type="text/css" href="style.css" /> <link rel="stylesheet" type="text/css" href="standard.css" /> <META content="MSHTML 6.00.2900.3395" name=GENERATOR></HEAD> <meta name='description' content='Stolařské práce nabízí zakázkovou výrobu nabytku na míru, kuchyňské linky, ložnice, obývací pokoje, schodiště, dveře' /> <meta name='keywords' content='stolařství, nábytek, kuchyně, ložnice, dětské pokoje, altán, altány, stolarstvi, Stolařství, skříně, skříňky, kuchyňské linky, truhlarstvi, truhlářství, stolar, truhlar, schodiště' /> <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-23316646-1']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script> <script type="text/javascript" src="js/prototype.js"></script> <script type="text/javascript" src="js/scriptaculous.js?load=effects,builder"></script> <link media="screen" rel="stylesheet" href="colorbox.css" /> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script> <script src="colorbox/jquery.colorbox.js"></script> <script> $(document).ready(function(){ //Examples of how to assign the ColorBox event to elements $("a[rel='example1']").colorbox(); $("a[rel='example2']").colorbox({transition:"fade"}); $("a[rel='example3']").colorbox({transition:"none", width:"75%", height:"75%"}); $("a[rel='example4']").colorbox({slideshow:true}); $(".example5").colorbox(); $(".example6").colorbox({iframe:true, innerWidth:425, innerHeight:344}); $(".example7").colorbox({width:"80%", height:"80%", iframe:true}); $(".example8").colorbox({width:"50%", inline:true, href:"#inline_example1"}); $(".example9").colorbox({ onOpen:function(){ alert('onOpen: colorbox is about to open'); }, onLoad:function(){ alert('onLoad: colorbox has started to load the targeted content'); }, onComplete:function(){ alert('onComplete: colorbox has displayed the loaded content'); }, onCleanup:function(){ alert('onCleanup: colorbox has begun the close process'); }, onClosed:function(){ alert('onClosed: colorbox has completely closed'); } }); //Example of preserving a JavaScript event for inline calls. $("#click").click(function(){ $('#click').css({"background-color":"#f00", "color":"#fff", "cursor":"inherit"}).text("Open this window again and this message will still be here."); return false; }); }); </script> <body> <div id="wrapper"> <div id="header"> </div> <div id="left"> <div id="logo"> <h1>Stolařské práce</h1> <p>Realizujeme Vaše sny</p> </div> <div id="nav"> <ul> <li class="important"><a href="index.php?page=uvod">Úvodní stránka</a></li> <li><a href="index.php?page=nabizime">Nabízíme</a></li> <li><a href="index.php?page=ukazka-praci&kat=altany">Ukázka prací</a></li> <li><a href="index.php?page=kontakt">Kontakt</a></li> </ul> </div> <div id="news"> <h2>Zakázková výroba</h2> <p><li> kuchyňské linky <br> <li> nábytek <br> <li> schodiště <br> <li> podlahy <br> <li> kancelářský nábytek <br> <li> dětské pokoje <br> <li> pergoly atd. </p> <div class="hr-dots"> </div><br><br> <h2>Kontakt</h2> <p><b>Stolařské práce</b> <br><br> <img src="images/phone.png"> 736 133 089<br> <img src="images/phone.png"> 736 175 266<br> <img src="images/phone.png"> 731 256 588<br> <img src="images/email.png"> stolarskeprace@seznam.cz</p> <br><br><br> <center> <a href="http://www.toplist.cz/" target="_top"><img src="http://toplist.cz/count.asp?id=929379&logo=mc" border="0" alt="TOPlist" width="88" height="60"/></a> </center> <br> <center> </center> <br> <br><br><br><br> <h2>Spřátelené weby</h2><br> <li> <a href="http://www.pilaharatyk.cz/">Pila Haratyk</a> <br> <li> <a href="http://www.gutskabasta.eu/">Gutská Bašta</a> <br> <li> <a href="http://www.topkoupelny.7x.cz">Top koupelny</a> <br> <li> <a href="http://www.shan.cz">Shan</a> <br> <li> <a href="http://www.matrace-mabo.cz">Matrace mabo</a> <br> <li> <a href="http://www.bartosini.cz">Bartosini</a> <br> <br><br><br><br><br><br><br><br> </div> </div> <?php /* * Tento kousek vzdy includuje do "stredu" stranky volany soubor pres URL * Priklad volani: index.php?page=registrace * do stredu se nacte soubor registrace.php */ if (IsSet($_GET['page'])){ // pokud byl odeslan ?page= ... $soubor=$_GET['page']; $soubor2= dirname($_SERVER['SCRIPT_FILENAME'])."/".$soubor.".php"; if(file_exists($soubor2)){ //pokud soubor existuje, nacteme ho do stredu include $soubor2; }else{ //pokud soubor neexistuje, zavolame error404.php include "error404.php"; } }else{ // Pokud nebyl paramentr page volany, nacteme uvod.php include "uvod.php"; } /* * Tento kousek kódu nám v případě nějakého erroru vypíše Alert. * Jednotlivé hlášky jsou v souboru inc/error_msg.php * Je tam pole hlášek, vždy voláme číslo hlášky v poli * Příklad: index.php?page=uvod&Alert=0 */ if(isset($_GET['Alert'])){ require "inc/error_msg.php"; // V tomto souboru jsou ty hlasky $JsAlert=$_GET['Alert']; echo '<script language="javascript" type="text/javascript">alert("'.$Rvi[$JsAlert].'");</script>'; } ?> <div class="clear"> </div> <div id="footer"> <div id="copyright"> Copyright © 2010 stolařské práce, Všechna práva vyhrazena. <a href="administrace.php">admin</a> </div> <div id="footerline"></div> </div> </div> </body> </html> |
||
pito Profil |
#17 · Zasláno: 30. 5. 2011, 21:13:16
jestli to nahodou nedela i to includovani stranek do index.php co?
|
||
YoSarin Profil |
#18 · Zasláno: 31. 5. 2011, 12:10:57
pito:
Jen tam nikde nevidím include toho počítadla... |
||
pito Profil |
#19 · Zasláno: 31. 5. 2011, 21:09:18 · Upravil/a: pito
YoSarin:
To jsem už smazal byl na řádku 106. |
||
pito Profil |
#20 · Zasláno: 2. 6. 2011, 14:09:36
Prosím o pomoc
|
||
YoSarin Profil |
#21 · Zasláno: 2. 6. 2011, 16:00:32
A pořád to ukládá do databáze uživatele se stejnou IP častěji než 1x za 12 hodin? Je dost dobře možné že to tvoje počítadlo zapisuje i boty, které třeba toplist ignoruje...
|
||
pito Profil |
#22 · Zasláno: 3. 6. 2011, 14:58:47
jak by to šlo zablokovat či banovat ty boty.Už jsem zkoušel botovat,ale těch ip tam začíná být víc.
|
||
YoSarin Profil |
#23 · Zasláno: 3. 6. 2011, 17:10:29
pito:
Ověřováním $_SERVER['HTTP_USER_AGENT'] na text "bot", třeba... A původní problém s vkládáním dat do db více než jednou za 12 hodin už se vyřešil? |
||
pito Profil |
#24 · Zasláno: 3. 6. 2011, 17:15:33
YoSarin:
„A původní problém s vkládáním dat do db více než jednou za 12 hodin už se vyřešil?“ Ne to jsem nevyřešil.Nevím si rady. |
||
Časová prodleva: 13 let
|
0