Najdu nekde navod jak napsat pocitadlo pristupu v php abych videl i jakou stranku nastevnik zhledl? Diky za odpoved.
pokud to chces mit primo podle IP adresy, tak
1)v databazi si vytvor tabulku:
CREATE TABLE `pocitadlo` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT ,
`request` VARCHAR( 255 ) NOT NULL ,
`remote_addr` INT( 10 ) UNSIGNED NOT NULL ,
PRIMARY KEY ( `id` )
) TYPE = MYISAM
2) vytvor skript (dejme tomu "pocitadlo.php"), ve kterem bude toto:
<?php
// prihlasovaci udaje samozrejme uprav podle nastaveni MySQL v administraci
mysql_connect("mysql.webzdarma.cz","tvoje_databaze","tvoje_heslo");
mysql_select_db("tvoje_databaze");
$remote_addr = (ip2long($_SERVER['REMOTE_ADDR'])>0)?ip2long($_SERVER['REMOTE_ADDR']):0;
$query = "INSERT INTO pocitadlo VALUES (NULL,'$_SERVER[REQUEST_URI]','$remote_addr')";
mysql_query($query);
?>
3) na zacatek kazde stranky (pripona stranky musi byt .php) vloz tento kod (predpokladam, ze soubor pocitadlo.php se nachazi ve stejnem adresari, jako ten soubor -- jinak musis upravit cestu):
<?php include_once("pocitadlo.php") ?>
4) prohlizet muzes spustenim nasledujiciho skriptu (napr. log.php):
<?php
mysql_connect("mysql.webzdarma.cz","tvoje_databaze","tvoje_heslo");
mysql_select_db("tvoje_databaze");
?>
<table style="border: 1px solid black;">
<tr>
<th style='font-size: 10;'>id</th>
<th style='font-size: 10;'>stranka</th>
<th style='font-size: 10;'>IPa</th>
</tr>
<?php
$query = "SELECT id,request,remote_addr FROM pocitadlo LIMIT 250";
$result = mysql_query($query);
$i=0;
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
echo "<tr";
echo ($i++%2==0) ? " style='background-color: #F9F0BF;'":"";
echo ">\r\n";
echo "<td style='font-size: 11;font-family:Courier New;'>$row[0]</td>";
echo "<td style='font-size: 11;font-family:Courier New;'>$row[1]</td>\r\n";
echo "<td style='font-size: 11;font-family:Courier New;'>";
echo (gethostbyaddr(long2ip($row[2]))=="0.0.0.0") ? "" : gethostbyaddr(long2ip($row[2]));
echo "</td>\r\n";
echo "</tr>\r\n\r\n";
} ?>
</table>
Snad to bude fungovat.
jo a jeste celkovy pocet pristupu:
<?php
mysql_connect("mysql.webzdarma.cz","tvoje_databaze","tvoje_heslo");
mysql_select_db("tvoje_databaze");
$res = mysql_query("SELECT count(id) FROM pocitadlo");
echo mysql_result($res,0,0);
?>
Diky moc. Vyzkousim to co nejdriv a dam vedet jestli to jde nebo ne...
donny: nema byt nahodou jak je za 4 hned prvni echo <tr>";?
ne, melo by to byt dobre. Pro jednotlive radky je
echo "<tr";
echo ($i++%2==0) ? " style='background-color: #F9F0BF;'":"";
echo ">\r\n";
(aby byly od sebe barevne napreskacku odliseny)
Kam mam dat ten celkovy pocet pristupu? Jinak to funguje. takze diky
no dej si ho kam chces.ten kod, co jsem napsal [Datum: 06. 06. 2006 18:45], ti primo na misto, kam ho umistis do php stranky, vypise to cislo.
Jo jeste neco jak to mam zmenit aby se mi zobrazila cela ip adresa a ne jen jeji konec. Zkousel jsem tam nechat jen remote_addr ale to potom neslo vubec...
ve skriptu 4) nahrad vyskyt "gethostbyaddr(long2ip($row[2]))" retezcem long2ip($row[2]).
Hmm nevim jestli to pisu dobre ale prepsal jsem to a nejde to pak vubec. No to je uz jedno vystacim si i s tim jen jeste jestli se da nejak udelat abych tam mel 4 sloupec ve kterem by byl zobrazeny cas... Diky moc za vsechno.
do tabulky pridas sloupec dejmetomu TIMESTAMP typu DATETIME a v INSERTu tam das (bez uvozovek) NOW() - treba INSERT INTO tabulka VALUES('pole1', NOW(), 'pole2')
Takze to mam mit v takohle:
`TIMESTAMP` DATETIME - NOW() - INSERT INTO VALUES('pole1', NOW(), 'pole2')
Jestli jsi to takhle myslel tak mi to napise todle:
1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '- NOW() - INSERT INTO VALUES('pole1', NOW(), 'pole2')
PRIMARY KEY ( `id` )
) T' at line 5
chtelo by to nejakej uvod do mysql,co?
INSERT INTO VALUES('pole1', NOW(), 'pole2')
je spravne. to predtim bylo jen tak, ze tam pouzijes tu mysql funkci NOW().
No prave to ta f-ce NOW se SQL nelibi. I kdyz to je v takovem tvaru jak jsi tet napsal tak to nefaka. Ale kdyz to dam bez toho now tak jo. Zkousel jsem at mi cas zjisti php ale do tabulky se zapsala jen date ale zadny cas ne a pak kdyz jsem to otevrel v log.php tak sloupec cas byl prazdny. (pridal jsem ho do toho log.php i kde ho ma hledat)