Autor Zpráva
Noobiq
Profil *
ahojte.

mam php kod:

<?
if (File_Exists ("book.dat")):
$fp = FOpen ("book.dat","r");
$data = FRead ($fp, FileSize("book.dat")); FClose($fp);
endif;
$fp = FOpen ("book.dat", "w");
FWrite ($fp, $add.$REMOTE_ADDR);
FClose ($fp);
?>

malo by to zapisat do suboru book.dat IP adresu kazdeho kto navstivi danu stranku, lenze ono to len vypise chybu

Warning: fread() [function.fread]: Length parameter must be greater than 0 in /home/www/index.php on line 168

s toho som zistil ze subor musi byt vecsi nez 0 bajtov. lenze ked do toho suboru nieco napisem, tak php prebehne bezproblemov ale po otvoreni suboru book.dat je prazdny a pri dalsej navsteve zasa hlasi chybu.
(ale davnejsie to adresu zapisalo ale vzdy tu staru prepisalo)

vedel by mi niekdo poradit? (a este aby adresi pripisoval, a ne prepisoval vzdy staru novou)
Alphard
Profil
Mělo by to stačit takhle
$fp = FOpen ("book.dat", "a+");
FWrite ($fp, $_SERVER['REMOTE_ADDR']."\n"); 
FClose ($fp);


Vkládej prosím kód mezi značky [pre] a [/pre] (stačí kliknout na ).
AM_
Profil
popř. pro PHP5:
file_put_contents("book.dat", $_SERVER['REMOTE_ADDR']."\n", FILE_APPEND);
fajzen
Profil
Noobiq
mohlo by to byť aj tak ako to máš, ale načítané dáta ukladáš do premennej $data, lenže do súboru potom vkladáš premennú $add, ktorá je prázdna... okrem toho máš asi vypnuté globálne premenné, preto je aj premenná $REMOTE_ADDR prázdna, používaj namiesto nej $_SERVER['REMOTE_ADDR']
Noobiq
Profil *
super funguje to. dakujem vsetkym

akym prikazom by sa dalo spravit aby jednu konkretnu (alebo viacero) IPciek nezapisovalo?
AM_
Profil
$exceptions = array('1.2.3.4', '5.6.7.8', ...);
if (!in_array($_SERVER['REMOTE_ADDR'], $exceptions)){
  //zapsat
}
Noobiq
Profil *
nejak to nefunguje (skusal som viac variant), resp. stale to zapisuje aj ip ktore by nemalo.

zalezi do ktoreho riadku to vlozim?
AM_
Profil
Noobiq
co trochu vlastní snahy? vypiš si klíčové proměnné v daném místě a zjisti si, co je kde špatně. Můj kód funguje.
tak jak se to vezme, pokud před to hodíš die() tak to pochopitelně záleží :)

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: