Voit kerätä yksinkertaisia tietoja käyttäjistä sivuillasi. Tiedot rivitetään siististi tekstifiluun.
<?php // Tarvitset tietoja.txt:n, ja sinun tarttee vielä laittaa chmodet kuntoon. // © Mikael Korpela aka simison // www.laturi.org :: korpela@kanetti.com // mitkä tiedot kerätään $aikaleima = date("Y-m-d H:i:s"); $ip = $_SERVER['REMOTE_ADDR']; $selain = $_SERVER['HTTP_USER_AGENT']; $yhteys = gethostbyaddr($REMOTE_ADDR); $fil1 = $SERVER_NAME; $fil2 = $REQUEST_URI; $tiedostoon = "$fil1.$fil2"; $edelurl = $HTTP_REFERER; // lisätään tyhjää väleihin, jotta rivistä tulee siisti $tyhja = strlen($ip); for ($i = 1; $i <= (16-$tyhja); $i++) { $vali1= $vali1." "; } $tyhja = strlen($selain); if ($tyhja <91) { for ($i = 1; $i <= (70-$tyhja); $i++) { $vali2= $vali2." "; } } $tyhja = strlen($yhteys); if ($tyhja <91) { for ($i = 1; $i <= (40-$tyhja); $i++) { $vali3= $vali3." "; } } $tyhja = strlen($tiedostoon); if ($tyhja <91) { for ($i = 1; $i <= (65-$tyhja); $i++) { $vali4= $vali4." "; } } // kootaan rivi $kavija = "Aikaleima: $aikaleima IP: $ip $vali1 Selain: $selain $vali2 Yhteys: $yhteys $vali3 Nykyinen URL: $tiedostoon $vali4 Edellinen URL: $edelurl"; // avataan tiedosto mihin tiedot kerätään ja kirjoitetaan rivi $file = fopen("tietoja.txt", "a+"); if($file) { fputs($file, $kavija); fputs($file, "\r\n"); fclose($file); } ?>
Kivaa... copyrait merkki vaihtu "& copy;":ksi...
Bugeja löytyy, mutta ne korjataan. :) Ja vähän kommenttia: Tehtävänsä hoitava vinkki, mutta tyhjän tilan lisäyksen olisi voinut tehdä tyylikkäämmin.
on tosta kai jotain hyötyyki
Ihan hyvä koodi, mutta tohon ku sisällyttäis vielä kävijälaskurin..
aikaa ei ikinä kannata tallenneta date() muotoon vaan mktime() jolloin siitä voi purkaa halutessa vaikka pelkän päivän.
tyhjän välin lisäys on turha, koska jos tiedot tallentaa esim: "ip|aika|edellinen|nykynen|" muotoon niin ne voi purkaa niin miten huvittaa... ja vie vähemmän tilaa :P
mutta hyvä et joku pisti tälläsenkin tänne, sainpahan tietooni millä saa edellisen sivun osotteen talteen! :)
mikä chmodi?
Yhillä mun sivuilla käy nii paljo peeloi, että toi on ihan hyödyllinen siel ;)
Ei toimi. Aina kun kokeilen tulee teksti: Warning: fopen(tietoja.txt) [function.fopen]: failed to create stream: Permission denied in /mbnet/s/samisoft/index.php on line 255
Osaisikohan kukaan auttaa? Tarkoittaako tuo 225, että käyttöoikeudet on laitettava 225? Mutta tuossa olisi vain yksi ongelma, nimittäin se, että menetän itseltänikin käyttöoikeudet, jolloin minun on kuitenkin suurennettava käyttöoikeuksia.
Sun pitää tehä tollanen tiedosto kun: tietoja.txt
Mihin se muuten ne tiedot tallentas. ;)
Ja toi 255 on rivin numero: osaatko englantia(line)
Mikä cmodi on turvallisin ettei kukaan pääse riehumaan?
En nyt hirveesti tiiä php:stä, mut ei kai sillä cmodilla oo väliä, ku ei kukaan kuitenkaan helposti tuu lukee sun .php-tiedoston lähdekoodii ja nää, mihin tiedostoon sä oot .php-tiedoston asettanu tallentamaan tiedot. Ainakaan mikään tavallinen Matti Meikäläinen. Pistä vaan joku vähän vaikeemmin arvattavissa oleva tiedostonimi sille .txt-tiedostolle, kuten joku "hotomotorakspumpootiiaalililiieeaa.txt". Sit voit pistää muille kirjotusoikeudet, mut älä lukuoikeuksii. Sillon kukaan ei tiiä, mihin tiedostoon tiedot on kerätty.
Kuuluisko tohon $fil2 = $REQUEST_URI; kohtaan tulla URI vai URL?
Ei toimi mulla. Ei näy mitään.
http://www.saunalahti.fi/~ronny/tietoja.php
tietoja.php
tietoja.txt
http://www.saunalahti.fi/~ronny/tietoja.txt Eikö muka näy?
Ideoita miten saan näkymään aloitussivun selailijan edellisen urlin?.
Sivuni ovat osoittestta www.kotisivut.com/sivut/. aloitussivu on index.html josta on automaattinen ohjaus index.php:lle. Ja kun index.php:llä on tietojen keruu näkyy edellisenä sivuna index.html.
Ideoita?
Onko joku konffannut tämän analogin reportti ohjelmaa varten ?
Aihe on jo aika vanha, joten et voi enää vastata siihen.