Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: PHP: MySQL Online laskuri

Tumettaja [09.08.2008 23:06:02]

#

Yksinkertaisesti toteutettu tietokantaa käyttävä online laskuri.

Luo skriptille seuraavanlainen taulu:

CREATE TABLE online(ip TEXT, time INT);
<?php
//tiedot joilla yhdistetään tietokantaan
$serveri = "localhost";
$tunnus = "";
$salasana = "";
$tietokanta = "";

//yhteys tietokantaan
$yhteys = mysql_connect($serveri, $tunnus, $salasana) or die("Yhdistäminen ei onnistunut");
mysql_select_db($tietokanta, $yhteys) or die("Tietokantaa ei löytynyt");

//käyttäjän ip-osoite ja minuutin edessäpäin oleva aikaleima muuttujiin
$ip = $_SERVER['REMOTE_ADDR'];
$time = time() + 60;

//tarkistetaan löytyykö käyttäjästä merkintää
$online_or_not = mysql_query("SELECT * FROM online WHERE ip = '" . $ip . "'");

if(mysql_num_rows($online_or_not) == 1) {
	//jos merkintää ei ole, luodaan merkintä minuutin edessäpäin olevalla aikaleimalla
	mysql_query("INSERT INTO online (ip, time) VALUES ('" . $ip . "', '" . $time . "')");

} else {
	//jos käyttäjästä on merkintä, päivitetään merkinnän aikaleimaa minuutin eteenpäin
	mysql_query("UPDATE online SET time = '" . $time . "' WHERE ip = '" . $ip . "'");

}
//poistetaan lopuksi kaikki merkinnät joiden aikaleima on vanhentunut
mysql_query("DELETE FROM online WHERE time < '" . time() . "'");

//tarkistetaan paikalla olevien käyttäjien määrä
$online = mysql_query("SELECT COUNT(*) FROM online");
$online_count = mysql_num_rows($online);

//tulostetaan paikalla olevien käyttäjien määrä
if(mysql_num_rows($online_count) == 1) {

	echo $online_count . "käyttäjä online.";

} else {

	echo $online_count . "käyttäjää online.";

}

?>

Vastaus

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

Tietoa sivustosta