Hei!
Eli mitenkä pystyisi saada ton tekemään kansioihin päivä kohtaisesti hyvin selattavassa muodossa olevia tiedostoja kavijöistä?
<?php $ip = $_SERVER['REMOTE_ADDR']; $referer = $_SERVER['HTTP_REFERER']; $agent = $_SERVER['HTTP_USER_AGENT']; $time = date("Y-m-d G:i:s A"); $text = "".$time." = ".$ip."User Agent: ".$agent."Referer: ".$referer.""; $file = fopen('ips.txt' , 'a'); fwrite($file,$text."\n"); ?>
p.s Haluaisin tehdä sivun missä näkyisi millä selaimella on käyty verkko sivustossani eniten
Jollei oo syytä tehä juuri PHP:lla tai ylipäätään itse kokonaan, niin kannattaa harkita google analytics tms vastaavaan käyttöä:
tuutti kirjoitti:
Jollei oo syytä tehä juuri PHP:lla tai ylipäätään itse kokonaan, niin kannattaa harkita google analytics tms vastaavaan käyttöä:
Millä ilveellä minä muka tuonne pääsen/hyödyn?
Jos alottaisit vaikka kirjautumalla sisään ja noudattamalla ohjeita. Kaikki mitä sun tarvii tehdä, on lisätä pätkä Javascriptiä sivulle, niin Google hoitaa loput.
sami537 kirjoitti:
tuutti kirjoitti:
Jollei oo syytä tehä juuri PHP:lla tai ylipäätään itse kokonaan, niin kannattaa harkita google analytics tms vastaavaan käyttöä:
Millä ilveellä minä muka tuonne pääsen/hyödyn?
Hyödyt tekemällä itsellesi ilmaisen Google -tunnuksen, jonka jälkeen saat Googlelta seurantakoodin. Nuo statistiikkaskriptit ovat kuitenkin sellaisia, että vievät omalta palvelimelta tolkuttoman paljon tilaa muutaman vuoden päästä, joten on järkevää käyttää ulkopuolisia palveluita. Google Analytics antaa tarkkaa tietoa käyttäjistä ja heidän käyttäytymisestä sivuillasi.
Näet esimerkiksi reitit, joita käyttäjät käyttävät päästäkseen sivulle X ja voit tehostaa sivujasi sen perusteella paremmaksi.
<?php $host=gethostbyaddr($_SERVER['REMOTE_ADDR']); $tunnus=$_REQUEST['tunnus']; $f=fopen("tracklog.csv",'a'); $merkkijono='"'.$_SERVER['REMOTE_ADDR'].'",'. '"'.$host.'",'. '"'.$_SERVER['HTTP_USER_AGENT'].'",'. '"'.date("j.n.Y H:i").'"'."\n"; fputs($f,$merkkijono); fclose($f); ?>
Tommosella saat hienon taulukon osoitteesta, reverse DNS nimestä ja selaimesta. Ton csv tiedoston voi avata jollain taulukkolaskennalla.
Reinon koodin luomalla tracklog.csv-tiedostolla ei tee juurikaan mitään, ellei tee samalla omia analysointiskriptejä. Sen lisäksi tiedosto kasvaa nopeasti ja reverse DNS -kyselyt vievät turhaa aikaa antamatta merkittävää hyötyä.
reino kirjoitti:
(koodia)
Minä olen aina miettinyt, että minkä helvetin takia ihmiset koodaavat tällaista paskaa. Katsokaa nyt tuota koodia - onko se lainkaan luettavaa? Aivan järkyttävää suttua.
<?php $file = 'log.txt'; $ip = get_ip(); $host = gethostbyaddr($ip); $date = date('Y-m-d H:i:s'); $agent = $_SERVER['HTTP_USER_AGENT']; $row = "{$ip}, {$host}, {$agent}, {$date}\n"; file_put_contents($file, $row, FILE_APPEND); function get_ip() { if (isset($_SERVER['HTTP_CLIENT_IP'])) { $ip = $_SERVER['HTTP_CLIENT_IP']; } elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; } else { $ip = $_SERVER['REMOTE_ADDR']; } return $ip; }
Koodin luettavuus ei ole subjektiivinen asia. Olen kovin herkkä ärsyyntymään siitä, ettei ihmisiä kiinnosta vähääkään omien tuotostensa laatu.
The Alchemistin get_ip-funktiosta sen verran, että HTTP_CLIENT_IP ja HTTP_X_FORWARDED_FOR ovat täysin turhia ja mahdollisesti hyökkääjän muokkaamia, joten niitä ei tule missään nimessä pidä käyttää (ainakaan ilman validointia). Samaa sarjaa kuin esim. XSS.
Poikeus on jos webbiserverisi edessä on erikoiskonfiguraatiota.
The Alchemist: Okei kiitos tästä,katson mitä tulee aikaan
timoh kirjoitti:
The Alchemistin get_ip-funktiosta sen verran, että HTTP_CLIENT_IP ja HTTP_X_FORWARDED_FOR ovat täysin turhia ja mahdollisesti hyökkääjän muokkaamia, joten niitä ei tule missään nimessä pidä käyttää (ainakaan ilman validointia). Samaa sarjaa kuin esim. XSS.
Poikeus on jos webbiserverisi edessä on erikoiskonfiguraatiota.
Ja tähän voisin sanoa että servu pyörii tällä hetkällä Abyss Web Server X2 avulla
Lisäys:
tuutti kirjoitti:
Jollei oo syytä tehä juuri PHP:lla tai ylipäätään itse kokonaan, niin kannattaa harkita google analytics tms vastaavaan käyttöä:
Tolla idella ei ole mitään järkeä!
Lisäys:
Eli:
Joko localhostiin tiedosto tai FTP serverille
missä on ne tiedot
p.s Sivun osoite (Ei ole 24/7 päällä)
p.p.s Jos mahdollista niin saisinko vähän kommentteja tuohon php scriptiin että tiedän mitä ne kaikki tekee (Olen alottelija PHP:een kanssa)
Lisäys:
Eli testasin tätä ja toimisi ihan hyvin eli
Tavallisen sivun lähde:
<!doctype html> <html> <head> <meta charset="utf-8"> <!-- TemplateBeginEditable name="doctitle" --> <title>Sami's webiste | Media</title> <!-- TemplateEndEditable --> <!-- TemplateBeginEditable name="head" --> <!-- TemplateEndEditable --> <link rel="stylesheet" type="text/css" href="css/index.css" media="screen" /> </style><!--[if lt IE 9]> <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--></head> <body> <div class="container"> <header> <img src="http://85.23.33.82:8080/status.png" alt="Smiley face" width="auto" height="auto" /> </header> <div class="sidebar1"> <ul class="nav"> <li><a href="video.html">Videos</a></li> <li><a href="contat.html">Contat Me</a></li> <li><a href="index.html">Home</a></li> <li><a href="media.php">Media</a></li> </ul> <aside> <h5>Advertisement Info</h5> <p>Contat me with email:</p> <p><a href="maito:root@server12.servehttp.com">Mail Me</a></p> </aside> <!-- end .sidebar1 --></div> <article class="content"> <h1>Home</h1> <section> <h2>Media:</h2> <p>Here will be soon something!</p> </section> <!-- end .content --></article> <aside> <h4>Advertisement</h4> <p>Contat Me if you wan't advertisement space</p> </aside> <footer> <p>© server12.servehttp.com</p> </footer> <!-- end .container --></div> </body> </html> <?php include 'test.php'; ?>
sitten test.php:
<?php $file = 'log.txt'; $ip = get_ip(); $host = gethostbyaddr($ip); $date = date('Y-m-d H:i:s'); $agent = $_SERVER['HTTP_USER_AGENT']; $row = "{$ip}, {$host}, {$agent}, {$date}\n"; file_put_contents($file, $row, FILE_APPEND); function get_ip() { if (isset($_SERVER['HTTP_CLIENT_IP'])) { $ip = $_SERVER['HTTP_CLIENT_IP']; } elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; } else { $ip = $_SERVER['REMOTE_ADDR']; } return $ip; }
ja ihan hieno säädöksi voisi laittaa että siinä on yksi tulos per rivi
sami537 kirjoitti:
Tolla idella ei ole mitään järkeä!
Kui? Paljon enemmän sä siitä hyödyt kun noista omista PHP-viritelmistä. Plussana, ettei tartte ite koittaa säätää niitä kaikkia toimintoja. Pyörää ei kannata keksiä uudelleen.
sami537 kirjoitti:
ja ihan hieno säädöksi voisi laittaa että siinä on yksi tulos per rivi
Niinhän siin on (\n on rivinvaihtomerkki, tietty voit koittaa \r\n jos Windows-palvelin käytössä...)
sami537 kirjoitti:
p.s Haluaisin tehdä sivun missä näkyisi millä selaimella on käyty verkko sivustossani eniten
Varsinainen tavoite kannattaisi kertoa heti kättelyssä, mieluiten jo otsikossa, eikä jälkikirjoituksessa.
Etenkin kun tuo tavoite merkitsee, että tähän asti aikaan saamasi koodi ja keskustelussa esitetyt lisäykset siihen ovat homman triviaalein osa. Keskustelussa on viitattu siihen, että mm. Googlella on valmista koodia, joka hoitaa sitä vaativampaakin osaa, kuten selainten tunnistamista ja ryhmittelyä.
Jos ajattelit esimerkiksi lukea HTTP-USER-AGENT-arvosta vain alkuosan, niin sehän on liki jokaisella selaimella ja sen veljellä ”Mozilla/5.0”. Selaimen todellinen identiteetti kerrotaan sitten vaihtelevasti jossain myöhemmin.
Google Analyticsillä saisit myös käyttäjän käyttöjärjestelmän, resoluution, sivuilla käytetyn ajan yms. Yms. Tietoja. Kannattaa kokeilla.
Edit:
Lisäksi tietenkin saat katsottua miten esim. IE-käyttäjien käyttäytyminen eroaa muista selaimista.
Macro kirjoitti:
sami537 kirjoitti:
Tolla idella ei ole mitään järkeä!
Kui? Paljon enemmän sä siitä hyödyt kun noista omista PHP-viritelmistä. Plussana, ettei tartte ite koittaa säätää niitä kaikkia toimintoja. Pyörää ei kannata keksiä uudelleen.
sami537 kirjoitti:
ja ihan hieno säädöksi voisi laittaa että siinä on yksi tulos per rivi
Niinhän siin on (\n on rivinvaihtomerkki, tietty voit koittaa \r\n jos Windows-palvelin käytössä...)
Joo eli Windows palvelin on käytössä.
edit:Eli koska en halua käyttää JavaScriptii.
Lebe80 kirjoitti:
Google Analyticsillä saisit myös käyttäjän käyttöjärjestelmän, resoluution, sivuilla käytetyn ajan yms. Yms. Tietoja. Kannattaa kokeilla.
Edit:
Lisäksi tietenkin saat katsottua miten esim. IE-käyttäjien käyttäytyminen eroaa muista selaimista.
Tohon en halua mennä koska se idea/ratkasu perustuu JavaScriptiin
sami537 kirjoitti:
Macro kirjoitti:
sami537 kirjoitti:
Tolla idella ei ole mitään järkeä!
Kui? Paljon enemmän sä siitä hyödyt kun noista omista PHP-viritelmistä. Plussana, ettei tartte ite koittaa säätää niitä kaikkia toimintoja. Pyörää ei kannata keksiä uudelleen.
sami537 kirjoitti:
ja ihan hieno säädöksi voisi laittaa että siinä on yksi tulos per rivi
Niinhän siin on (\n on rivinvaihtomerkki, tietty voit koittaa \r\n jos Windows-palvelin käytössä...)
Joo eli Windows palvelin on käytössä.
Käytä aina pelkkää \n-merkkiä tai sitten PHP_EOL-vakiota. Älä koskaan käytä \r\n:ää. Alustalla ei ole mitään väliä. Natiivista poikkeavaa rivinvaihtoa käyttämällä rikkoo ainoastaan Notepadin, joten sillä ei ole mitään väliä. Sekavaa rivinvaihtoa käyttämällä vain kerää itselleen potentiaalisia ongelmia.
sami537 kirjoitti:
Tohon en halua mennä koska se idea/ratkasu perustuu JavaScriptiin.
Ihan hyvin voit laittaa GA:n oman viritelmäsi rinnalle, jolloin pääset vertaamaan harrastelijan ja asiantuntijoiden järjestelmien eroja.
Herätys, vuosi 2012 kutsuu. Javascriptissä ei ole mitään vikaa, kunnon web-sivuja ei saa edes aikaiseksi ilman sitä. Eiköhän Googlella ole mietitty hyvin tarkkaan ja hartaasti tämä ratkaisu.
The Alchemist kirjoitti:
Käytä aina pelkkää \n-merkkiä tai sitten PHP_EOL-vakiota. Älä koskaan käytä \r\n:ää. Alustalla ei ole mitään väliä. Natiivista poikkeavaa rivinvaihtoa käyttämällä rikkoo ainoastaan Notepadin, joten sillä ei ole mitään väliä. Sekavaa rivinvaihtoa käyttämällä vain kerää itselleen potentiaalisia ongelmia.
Ai, mä oon aina luullu että se on \n joka rikkoo Notepadin rivityksen. Tack.
Janz kirjoitti:
Javascriptissä ei ole mitään vikaa
No jaa, vrt. esim. ”JavaScript: The Good Parts” (153 sivua), ”JavaScript: The Definitive Guide” (1078 sivua). ☺
lainaus:
kunnon web-sivuja ei saa edes aikaiseksi ilman sitä.
Kuka saa, kuka ei. Ja riippuu kyllä siitäkin, mitä ollaan tekemässä.
lainaus:
Eiköhän Googlella ole mietitty hyvin tarkkaan ja hartaasti tämä ratkaisu.
Se onkin sitten eri juttu, eikä Google-analytiikassa ole kyse sivujen toimivuudesta vaan seurannasta. Se on tärkeää palvelun tuottajalle. Käyttäjälle, jolla on JavaScript poissa päältä, Google-analyytikan puuttuminen ei tunnu tuon taivaallista (nopeuttaa toimintaa hiukan tietysti, mutta mistäpä sen huomaisi jos ei erikseen tutki). Kun palvelun tuottaja tutkii, miten saa paremman tuoton esimerkiksi verkkokaupasta, niin käyttäjien toiminnan seuraaminen on olennaista *tilastollisessa* mielessä. Tässä ei hirveästi tunnu se, että muutama prosentti käyttäjistä jää seuraamatta.
Yucca kirjoitti:
Janz kirjoitti:
Javascriptissä ei ole mitään vikaa
No jaa, vrt. esim. ”JavaScript: The Good Parts” (153 sivua), ”JavaScript: The Definitive Guide” (1078 sivua). ☺
lainaus:
kunnon web-sivuja ei saa edes aikaiseksi ilman sitä.
Kuka saa, kuka ei. Ja riippuu kyllä siitäkin, mitä ollaan tekemässä.
lainaus:
Eiköhän Googlella ole mietitty hyvin tarkkaan ja hartaasti tämä ratkaisu.
Se onkin sitten eri juttu, eikä Google-analytiikassa ole kyse sivujen toimivuudesta vaan seurannasta. Se on tärkeää palvelun tuottajalle. Käyttäjälle, jolla on JavaScript poissa päältä, Google-analyytikan puuttuminen ei tunnu tuon taivaallista (nopeuttaa toimintaa hiukan tietysti, mutta mistäpä sen huomaisi jos ei erikseen tutki). Kun palvelun tuottaja tutkii, miten saa paremman tuoton esimerkiksi verkkokaupasta, niin käyttäjien toiminnan seuraaminen on olennaista *tilastollisessa* mielessä. Tässä ei hirveästi tunnu se, että muutama prosentti käyttäjistä jää seuraamatta.
Elikkäs olisiko mitään toivoa saada toi ILMAN javascriptia (olkaa te vain eri mieltä mutta haluan sen PHP:eena!) Eli se scripti tarkistais mikä päivä on ja tekis kansion sinne mutta jos siellä olisi jo samalle päivälle kansio se lisäis vain siihen tiedostoon sen tiedot ketä kävi ja sitten YHDEN tiedoston missä on sen päivän käynnit ja niin edelleen?
On kyllä taas melekosta meininkiä. Järkyttävää ignorata muutaman koodirivin js trackeri jolla saat 1000000x paremmat työkalut kuin omasi kansiopurkkaviristelmäsi.
Noh voin tarjota tähän piwikin image trackeria, vaatii hieman työtä saada toimimaan
http://piwik.org/docs/tracking-api/#toc-two-tracking-methods-image-tracking-or-using-the-api
hernih kirjoitti:
On kyllä taas melekosta meininkiä. Järkyttävää ignorata muutaman koodirivin js trackeri jolla saat 1000000x paremmat työkalut kuin omasi kansiopurkkaviristelmäsi.
Noh voin tarjota tähän piwikin image trackeria, vaatii hieman työtä saada toimimaan
http://piwik.org/docs/tracking-api/#toc-two-tracking-methods-image-tracking-or-using-the-api
Kuinka monta kertaa täytyy sanoa että HALUAN SEN TOLLA MENETELMÄLLÄ ENKÄ MUULLA!
p.s tiedän että se on viritelmä mutta tykkään viritelmistä!
Voitko kertoa vielä syyn, mikset voi uhrata 2 minuutin työtä javascript-träkkeriin, vaan haluat mieluummin epävarmemman ja epätarkemman kikkareen, jota et ole saanut edes kuukaudessakaan laitettua?
Lebe80 kirjoitti:
Voitko kertoa vielä syyn, mikset voi uhrata 2 minuutin työtä javascript-träkkeriin, vaan haluat mieluummin epävarmemman ja epätarkemman kikkareen, jota et ole saanut edes kuukaudessakaan laitettua?
Koska yksinkertaisesti en halua mitään HELVETIN 3 party softia käyttää (Minun mielestäni niistä on vain haittaa)
p.s en ole saanut sitä kanion teko/haku juttua toimimaan koska PHP on "vähän" hepreaa minulle (Ainoastaan jos sinä on kommentteja missä sanotaan että mikää tekee mitäkin niin sitten osaan kyllä muokata)
No jos omasta mielestä kuukauden uurastus, joka ei ole tuottanut tulosta, "ei ole haittaa", kun taas 3rdpartyllä olisi homma toiminut kahdessa minuutissa, niin mikäs siinä. Jatkahan heprean opettelua.
Lebe80 kirjoitti:
No jos omasta mielestä kuukauden uurastus, joka ei ole tuottanut tulosta, "ei ole haittaa", kun taas 3rdpartyllä olisi homma toiminut kahdessa minuutissa, niin mikäs siinä. Jatkahan heprean opettelua.
Ehkä niin mutta huluan että kaikki on SAMALLA pelvelimella
Lebe80 kirjoitti:
Nuo statistiikkaskriptit ovat kuitenkin sellaisia, että vievät omalta palvelimelta tolkuttoman paljon tilaa muutaman vuoden päästä, joten on järkevää käyttää ulkopuolisia palveluita.
Ne vievät tilaa, lisäksi pahimmissa tapauksissa jumittavat vain sitä palvelintasi.
Mutta jatka harjoituksia.
Jotenkin tulee mieleen tästä keskustelusta lautapelit. :D
hernih kirjoitti:
Jotenkin tulee mieleen tästä keskustelusta lautapelit. :D
Miten muka?
Ps kenelläkään hyvää kirjautumis scriptiä?
sami537 kirjoitti:
Ps kenelläkään hyvää kirjautumis scriptiä?
Hei mulla on idea! Tee se itse..
Kun alkaa miettimään niin homma ei ole vaikea ja toisaalta jos se tuntuu ylitsepääsemättömältä niin kannattaa katsella jo valmiita esimerkkejä että miten homma about noinniinkuin toimii ja siitä oppia..
Juu, itsekkin kysyn välillä neuvoa jos jonkinlaisiin hommiin mutta ei saakeli.. kirjautumisscriptiä?
Google on kaveri jos ei kykene itse miettimään mitä mahdollisesti siihen tarvis..
Lomake, lähetys, käyttäjän tunnitus, käyttäjän "pitäminen" linjoilla, uloskirjaus..
Tätä keskustelua seurannut jo hetken ja hitto mitä perseilyä..
sami537, pystyt parempaan joten lopeta trollaus, ei tuota enää muuna voi ottaa.
https://github.com/ZF-Commons/ZfcUser
Tuossapa olisi yksi kirjautumismokkula, jota olen itse käyttänyt. Mielestäni se on hyvä.
t0ll0 kirjoitti:
sami537 kirjoitti:
Ps kenelläkään hyvää kirjautumis scriptiä?
Hei mulla on idea! Tee se itse..
Kun alkaa miettimään niin homma ei ole vaikea ja toisaalta jos se tuntuu ylitsepääsemättömältä niin kannattaa katsella jo valmiita esimerkkejä että miten homma about noinniinkuin toimii ja siitä oppia..Juu, itsekkin kysyn välillä neuvoa jos jonkinlaisiin hommiin mutta ei saakeli.. kirjautumisscriptiä?
Google on kaveri jos ei kykene itse miettimään mitä mahdollisesti siihen tarvis..
Lomake, lähetys, käyttäjän tunnitus, käyttäjän "pitäminen" linjoilla, uloskirjaus..Tätä keskustelua seurannut jo hetken ja hitto mitä perseilyä..
sami537, pystyt parempaan joten lopeta trollaus, ei tuota enää muuna voi ottaa.
Tämä ei kyllä ole trollia se on vain niin että jos PHP koodissa EI ole mitään kommentteja en tiedä yhtään että mikä tekee mitäkin!
The Alchemist kirjoitti:
https://github.com/ZF-Commons/ZfcUser
Tuossapa olisi yksi kirjautumismokkula, jota olen itse käyttänyt. Mielestäni se on hyvä.
Kiitos tuosta katsellaan jos vaikka saisi hyvän näköisen toteutuksen aikaseksi tolla :)
Noh, oma viestini oli lähinnä trollausta ja kritisointia huonosta vaatimusmäärittelystä. ZfcUserista ei todennäköisesti ole hyötyä kuin Zend 2:n käyttäjille.
Aihe on jo aika vanha, joten et voi enää vastata siihen.