Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Kävijälaskuri tekstitiedostolla

punppis [17.02.2008 04:16:57]

#

Tarkotus olis tehdä kävijälaskuri tekstitiedostoa apuna käyttäen, joka laskee UNIIKIT kävijät. Tälläistä en ainakaan nopsaa täältä löytänyt, joten kokeilin itse tälläistä pientä koodikolmosta. No eihän tässä nyt näytä toimivan kun kaikki kävijät yhteensä, muut näyttää nollaa. Pitäisi siis laskea kävijät tänään, eilen, tässä kuussa ja yhteensä.

<?php
	$tt = fopen("kavijat.txt", "a") or die("Ei voitu luoda kavijatlaskuritiedostoa! (kavijat.txt)");
	$ip = $_SERVER["REMOTE_ADDR"];
	$day = date("d");
	$month = date("m");
	$year = date("Y");
	fwrite($tt, "$ip|$day|$month|$year\n");
	fclose($tt);

	$file = file("kavijat.txt");
	$tanaan = 0;
	$eilen = 0;
	$kuussa = 0;
	$yhteensa = 0;
	$tanaan_kavijat = array();
	$eilen_kavijat = array();
	$kuussa_kavijat = array();
	$yhteensa_kavijat = array();
	foreach($file as $rivi) {
		$explode = explode("|", $rivi); //0 = ip, 1 = päivä, 2 = kuukausi, 3 = vuosi
		if($explode[1] == $day && $explode[2] == $month && $explode[3] == $year && !in_array($explode[0], $tanaan_kavijat)) {
			$tanaan_kavijat[] = $explode[0];
			$tanaan++;
		}
		if($explode[1] == ($day-1) && $explode[2] == $month && $explode[3] == $year && !in_array($explode[0], $eilen_kavijat)) {
			$eilen_kavijat[] = $explode[0];
			$eilen++;
		}
		if($explode[2] == $month && $explode[3] == $year && !in_array($explode[0], $kuussa_kavijat)) {
			$kuussa_kavijat[] = $explode[0];
			$kuussa++;
		}
		if(!in_array($explode[0], $yhteensa_kavijat)) {
			$yhteensa_kavijat[] = $explode[0];
			$yhteensa++;
		}
	}
?>

Tekstitiedostoon tulee ip:t ja päivämäärät ihan oikeassa muodossa. Tämä laskuri toimi ihan hyvin, kunnes lisäsin vuoden tarkistuksen tonne iffiin... Mikähän tässä nyt kusee?

kasetti [17.02.2008 09:24:19]

#

Kokeileppa kääriä vertailuun "luvut" intvallin sisälle tyyliin:

intval($explode[1]) == intval($day)

jne...

punppis [17.02.2008 15:34:31]

#

kasetti kirjoitti:

Kokeileppa kääriä vertailuun "luvut" intvallin sisälle tyyliin:

intval($explode[1]) == intval($day)

jne...

Kiitos, nyt toimii!

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta