Autor Zpráva
Roman X2
Profil
Zdravím jak udělat script který se vloží do kodu stránky (index.htm)

A každého návštevníka stránek to zapíše s infomacemi o IP adrese a čase do .txt souboru

Případne co všchno by se dalo zjistit o návštevníkovi
Joker
Profil
Roman X2:
"INFO" není právě titulek vystihující podstatu dotazu.

Na to je potřeba skript na straně serveru, tj. server musí umět skriptování na straně serveru.
Obvykle se používá PHP, tam bude IP adresa (pokud bude) uložená v proměnné $_SERVER['REMOTE_ADDR']
Pro ostatní informace můžete zkusit nejdříve:
<?php var_dump($_SERVER) ?>

...a z toho si vybrat "zajímavé" údaje.

Zapisování do souboru v PHP viz
fopen() fwrite() fclose()
Taps
Profil
Joker
Roman X2
popř. pro zápis do souboru lze použít i file_put_contents
Roman X2
Profil
Jsem tu novej a moc se v tom neviznám
imploder
Profil
Bude to chtít zámek, aby se nestalo, že při dvou návštěvnících současně budou dva skripty (tj. 2 instance toho samého) zapisovat zároveň do jednoho souboru. Vytvoření a smazání adresáře (funkce mkdir a unlink jsou atomické), takže adresář poslouží jako signalizace právě zapisujícího skriptu.

$jmeno = "info.txt"; // jméno souboru - použije se i na zámek (pro přehlednost, aby nebyl bordel kdyby bylo zámků víc)
while(true) {
  if(mkdir('./lock/'.$jmeno)) { // bylo volno a teď jsi jediný, kdo má přístup
    
    /* otevři soubor, zapiš do něj informace a zavři ho */
    $fp = fopen($jmeno, 'a+');
    fwrite($fp, "\n IP: " . $_SERVER['REMOTE_ADDR'] . "; nějaké další informace...");
    fclose($fp);

    unlink('./lock/'.$jmeno); break; // hotovo
  } 
  else {
    sleep(1); // počkej vteřinu než to zase zkusíš
  }
}


Aby nebylo možné ukončit skript tlačítkem "Zastavit" v prohlížeči, musí být zapnutá direktiva ignore_user_abort. Na začítku skriptu se nastaví zavoláním
ignore_user_abort(true);

Pak skript nebude možné ukončit z prohlížeče. Kdyby to šlo a někdo klikl na "Zastavit", mohl by zámek zůstat vytvořený a pak by se k souboru info.txt nešlo vůbec dostat (než by přišel admin a smazáním zámku to dal do pořádku).
Roman X2
Profil
Jenom zíram pánové jak jste se to naučily :) fakt kouzla

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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