Autor Zpráva
Jcas
Profil *
Jak to funguje?
Protože zatím nejsem na cizím serveru, ale testuji php na jednom počítači, na kterým mám apache a stránky si zobrazuji jako *localhost*, tak mně napadá, že se ip nezapisuje do souboru právě proto.

$aktualni = $REMOTE_ADDR;  //aktuální ip adresa
	$ipsoubor = fopen("ip_adresa.txt", "r");            //zapsání ip adresy odesílatele hlasu
	$ip = fread($ipsoubor, filesize("ip_adresa.txt")+10);
	fclose($ipsoubor);

	$write = $ip.$aktualni."Đ";

	$kam = fopen("ip_adresa.txt", "r+");
	fwrite($kam,$write);
	fclose($kam); 
Alphard
Profil
Na localhostu je obvykle 127.0.0.1, zkuste $_SERVER['REMOTE_ADDR']
Jcas
Profil *
Tak to taky nic
nightfish
Profil
Jcas:
var_dump($_SERVER);
a podívej se, jestli je tam něco připomínající IP adresu
AM_
Profil
$aktualni = $_SERVER['REMOTE_ADDR'];  //aktuální ip adresa
    $kam = fopen("ip_adresa.txt", "a");
    fwrite($kam,$aktualni."\n");
    fclose($kam); 

Pokud máš PHP na Apache a není tam nějaký další problém (zákaz zápisu do složky), mělo by to fungovat.
Alphard
Profil
Když už jsme začali přepisovat celý skript, viděl bych to na:
file_put_contents('ip_adresa.txt', $_SERVER['REMOTE_ADDR']."\n", FILE_APPEND);
pointer
Profil *
a co tak:
$_SERVER['HTTP_X_FORWARDED_FOR']
Jcas
Profil *
bezva, děkuji
Ještě drobný dotaz. Chápu to dobře?

Dnes je normální, že běžní uživatelé, jsou za routrem a takový router za sebou schovává několik počítačů (několik uživatelů). Použiju-li na serveru ve scriptu $_SERVER['REMOTE_ADDR'], znamená to, že script si přečte adresu routeru? Že tedy bude několik uživatelů se stejnou adresou?

Rozhoduji se, jakou podmínku (zamezit opakovanému hlasování) použít pro anketu.
cookie, nebo remote addr?
PostCC
Profil
Cookie lze obelstít až trestuhodně snadno a gramotnost uživatelů v této oblasti narůstá exponenciální řadou.

IP adresa má tu nevýhodu, že za jedním routerem (proxy) mohou být stovky různých uživatelů a zároveň může jedna IP představovat různé počítače - v sítích, kde jsou adresy přidělovány dynamicky.

Další metodou může být například porovnávání dalších atributů požadavku, například Agent string, nicméně ani to není dostatečně unikátní ukazatel.

Resumé - neexistuje spolehlivě použitelná metoda k identifikaci počítače, nechcete-li tedy přistoupit k registraci uživatelů a svázání hlasování s účtem.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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

0