no, je viac spôsobov, najjednoduchším je asi tento: tvoj banner bude odkazovať na skript, ktorý počíta a potom presmeruje na domovskú stránku. prenos sa bude realizovať pomocou _GET premenných, výsledok sa uloží do databázy. a tam máš na výber viacero variantov - či chceš podrobne výpis každého kliku (tj. kto, kedy, odkiaľ, prípadne aký prehliadač použil) alebo ti stačí len to počítadlo, a číslo sa ti nabalí o 1. osobne považujem za výhodnejšiu tú prvú možnosť, aj keď je zložitejšia, ale získaš ďaleko viac informácii a budeš mať istotu, že dáta sú relevantné (tj. budeš povedzme vidieť 100 klikov behom pár minút z jednej IP, takže to budeš považovať len za 1 klik).
no to je filozofia, samotný skript je len rutina (predpokladám teda PHP v spojení s MySQL).
toto bude adresa odkazu:
Kód:
<a href="http://tvojastranka.sk/counter.php?ref=1">TVOJ BANNER</a>
databáza bude mať 2 tabuľky - jednu na bannery, aby si vedel každý konkrétne určiť, a druhý na kliky. nebude vadiť, ak tam bude len jeden banner, ale nebude problém pridať ďalšie.
Kód:
tabulka BANNERY:
stlpce: id_banneru (smallint, primárny index, auto_increment), adresa (varchar);
hodnoty (priklad): 1, www.nejakastranka.sk - to bude len cisty text.
do tejto tabuľky treba vložiť dáta ako prvé a musíš to urobiť ty. vložíš tam len číslo, ktoré bude obsiahnuté v tom banneri (hodnota za ?ref=, napr. 1) a nejaký ten názov banneru, aby si to sám vedel rozlíšiť.
tabulka KLIKY:
stplce: id_kliku (smallint, primárny index, auto_increment), referrer (smallint), ip (varchar), datum (timestamp), prehliadac (varchar);
hodnoty: 1, 1, 192.168.1.1, 2007:01:23 22:30, Opera
no a skript ktorý to bude obsluhovať:
Kód:
<?php
// podmienka kontroluje, ci je zadana hodnota ref a ci je to cislo
// ak nie je, presmeruje sa na stranku s chybovou hlaskou
if(!isset($_GET['ref']) || !ereg('[0-9]+', $_GET['ref'])){
header('Location: http://'.$_SERVER['HTTP_HOST'].'/chybovastranka.html');
exit();
}
// ok, takze mame hodnotu premennej $_GET['ref'] a vieme, ze je cislo
// teraz si sprav spojenie s databazou, ak nevies ako na to v inych temach
// ti urcite poradia
require_once('pristupovy_subor_k_databazi');
// ok, mame pristup k databazi mozme ju naplnat datami
// najlepsie je, ze IP adresu aj prehliadac aj datum netreba specialne ziskavat
// takze si pripravime vlozenie dat do db.
// index kliku (unikatne cislo pre kazdy klik) ani datum netreba pripravit
// vlozi ich SQL stroj.
$referrer=$_GET['ref'];
$ip=$_SERVER['REMOTE_ADDR'];
$prehliadac=$_SERVER['HTTP_USER_AGENT'];
// data su pripravene, v podstate si ich mozes upravovat ako chces...
// ideme vlozit do databazy
$query="
INSERT INTO kliky (id_kliku, referrer, ip, datum, prehliadac)
VALUES ('', '$referrer', '$ip', CURRENT_TIMESTAMP, '$prehliadac')";
$result=myslq_query($query);
if($result){
// ak to bolo uspesne vykonane, presmerujes na stranku aku chces
header('Location: http://'.$_SERVER['HTTP_HOST'].'/');
exit();
} else {
// chyba pri ukladani do databazy
// ak chces vediet, co to je za chybu, tak si ju vypis:
echo "Chyba pri ukladani do databazy: \n <br>";
echo mysql_errno()." - ".mysql_error();
// ale ak to uz budes mat v ostrej prevadzke, netreba to vypisovat, staci
// len chybova hlaska, alebo presmerovanie bez hlasky
}
?>
No a teraz keď si budeš chcieť pozrieť výsledky podľa jednotlivých bannerov:
Kód:
<?php
// zase sa spojime s databazou
require_once('pristupovy_subor_k_databazi');
// sme pripojeni, ideme zbierat data
// najprv si zistime, kolko klikov mame pre kazdy banner
$query="
SELECT COUNT(*) AS pocet, adresa
FROM bannery, kliky
WHERE id_banneru=referrer
GROUP BY referrer
ORDER BY id_banneru ASC
";
$result=mysql_query($query);
echo "
<table>\n
<th>Banner</th><th>Klikov</th>\n
";
while($row=mysql_fetch_array($result)){
echo "
<tr>
<td>".$row['banner']."</td><td>".$row['pocet']."</td>
</tr>
";
}
echo "</table>";
?>
a podrobne každý klik:
Kód:
<?php
// zase sa spojime s databazou
require_once('pristupovy_subor_k_databazi');
// sme pripojeni, ideme zbierat data
// zistime vsetko o kazdom kliku
$query="
SELECT adresa, ip, datum, prehliadac
FROM bannery, kliky
WHERE id_banneru=referrer
ORDER BY id_kliku ASC
";
$result=mysql_query($query);
echo "
<table>\n
<th>Banner</th><th>IP</th><th>Dátum</th><th>Prehliadač</th>\n
";
while($row=mysql_fetch_array($result)){
echo "
<tr>
<td>".$row['banner']."</td><td>".$row['ip']."</td>
<td>".$row['datum']."</td><td>".$row['prehliadac']."</td>
</tr>
";
}
echo "</table>";
?>
tak snáď som to nepísal zbytočne, za prípadné chyby sa ospravedlňujem...
_________________
A. S. Tanenbaum píše:
The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice.