Autor Zpráva
dusan22
Profil *
zdravim!
prosim vas, nepomohol by mi niekto z vas mudrych?
potrebujem aby mi ulozilo kazdeho navstevnika do txtoveho suboru,
v tvare
xxx.xx.xxx.xx, xx:xx:xx, xx.xx.xxxx;
IP, cas, datum;

ak bude niekto taky laskavy a aspon mi da linku.
dakuejm velmi pekne moc velmi.
souki
Profil
Předpokládám, že ti jde o uložení data a ne datumu...
Vhodnější by byla databáze, ale pokud trváš na souboru, tak by ti mohli pomoct následující odkazy

Datum:
načíst datum

IP:
$_SERVER["REMOTE_ADDR"]

Soubor:
otevřít soubor
zapsat řetězec
zavřít soubor
carcoolka
Profil *
<?
$datum = date ("d.m.Y o H:i:s, v l");
$ipcka = $_SERVER["REMOTE_ADDR"];
$data = $datum.$ipcka;
$subor = fopen ("data/ip_log.txt", "a");
$zapisat = fputs ($subor,"$data",30);
$zavriet = fclose ($subor);
?>

taketo nieco? toto staci?
dusan22
Profil *
to nic nerobi ...
jrm
Profil
<?
$ip = $_SERVER['REMOTE_ADDR'];
$cas = Date("H:i:s, d.m.Y");
$zapis = " " . $ip . ", " . $cas;
$fn1 = "statistika.dat"; // jméno souboru

if (file_exists($fn1)):
$fp1 = fopen($fn1,"a"); // pro zápis na konec souboru
fwrite($fp1,$zapis);
fclose($fp1);
else:
$fp1 = fopen($fn1,"w"); // zalozi soubor
fwrite($fp1,$zapis);
fclose($fp1);
endif;
?>
echo
Profil *
co sa datumu/casu tyka, myslim ze najvyhodnejsie je ukladat ci uz do textoveho 'flat' suboru alebo do databazy takzvany 'Unix timestamp' pomocou fukcie time() a potom pri vypise formatovat ten 'timestamp' pomocou fukcie date().
souki
Profil
echo
Znáš nějakou speciální výhodu unix timestamp oproti normálnímu MySQL zápisu ve stylu YYYY-MM-DD HH:MM:SS ?
echo
Profil *
samozrejme mozem si vybrat potom z niekolkych moznych formatov

napr.:
$date_format="F j, Y, g:i a"; // March 10, 2001, 5:16 pm
$date_format="m.d.y"; // 03.10.01
$date_format="j, n, Y"; // 10, 3, 2001
$date_format="Ymd"; // 20010310
$date_format='h-i-s, j-m-y, it is w Day z '; // 05-16-17, 10-03-01, 1631 1618 6 Fripm01
$date_format='i is he jS day.'; // It is the 10th day.
$date_format="D M j G:i:s T Y"; // Sat Mar 10 15:16:08 MST 2001
$date_format='H:m:s m is mo h'; // 17:03:17 m is month
$date_format="H:i:s"; // 17:16:17

$date_format="d.m.Y H:i:s";

$today = date($date_format,$timestamp)

a nie som obmedzeny iba na YYYY-MM-DD HH:MM:SS
dusan22
Profil *
a na co sluzi ten "textovy 'flat' subor" ? ... aky je rozdiel medzi nim a obycajnym txtckom?
dusan22
Profil *
ps da sa dat aby mi to ukladalo vzdy do noveho riadka?
IP, CAS, DATUM
IP, CAS, DATUM
IP, CAS, DATUM
.
.
.
ja som tam doplnil <br> takze v html to vyzera ako keby to ukladalo pod seba ale v skutocnosti to samozrejme dava pri sebe jenom mezi to narve <br>
jrm
Profil
dusan22 - zkus ten kód co jsem dal výše, včera večer jsem ho i zkusil:

127.0.0.1, 22:33:24, 29.05.2007
127.0.0.1, 22:34:43, 29.05.2007
DJ Miky
Profil
ps da sa dat aby mi to ukladalo vzdy do noveho riadka?

Přidáš na konec řádku „\n“.
chceckitdown
Profil *
dekuji moc.

<?

$ip = $_SERVER['REMOTE_ADDR'];
$cas = Date("d.m.Y o H:i:s, v l");
$zapis = $ip . ", " . $cas . " ";
$fn1 = "data/statistika.dat";

if (file_exists($fn1)):
$fp1 = fopen($fn1,"a");
fwrite($fp1,$zapis);
fclose($fp1);
else:
$fp1 = fopen($fn1,"w");
fwrite($fp1,$zapis);
fclose($fp1);
endif;
?>


uz mi to uklada, muzu se jeste zeptat jak tam udelam, aby mi neukladalo 50x zasebou tu istou adresu, jenom s ruznym casem, kdys clovek prepne tak ho ulozi zasa, a tak dale a kazdy je tam cca 50x ...
a to zbytocne pretezuje ten web.

jak mam napsat tu podminku aby $ip porovnava s posledni?
echo
Profil *
to aby neukladalo 50x za sebou sa da vyriesit pomocou cookies kde sa da nastavyt expiracia podla chuti
v pricipe takto:

$counter_expiration=(60*60); //60 mins, 60secs
$counter_cookie='nejaky_counter';
$value='nieco';

dam podmienku
if (isset ($_COOKIE[$counter_cookie] ) ) {}
else
{
tu budu tie tvoje riadky
....
a nastavim cookie
setcookie ($counter_cookie, $value, time()+$counter_expiration);
}

ohladom nastavovania cookies si pozri
http://php.net/manual/cs/function.setcookie.php
Toto téma je uzamčeno. Odpověď nelze zaslat.

0