Käyttäjiä Linjoilla

empty 01.01.02 19:10

Esimerkki miten saa käyttäjät jotka on sivuilla näkymään. Vatii MySql Tietokannan

 Tekstiversio  Arvo: -3 (6 ääntä)  Äänestä: +  -
<?php
###############################################################
# Käyttäjiä sivuilla # Tai jonkun muun pohja käyttää MySQL:ää #
###############################################################
# Tämä käy käyttijiä online-laskurin tekemisen pohjaksi #######
###############################################################
# Pohja: Niko  # Voit poistaa kommentit jos et tarvitse niitä #
###############################################################
# Tehdään taulukko #
####################
CREATE TABLE linjoilla (
   timestamp int(15) DEFAULT '0' NOT NULL,
   ip varchar(40) NOT NULL,
   file varchar(100) NOT NULL,
   PRIMARY KEY (timestamp),
   KEY ip (ip),
   KEY file (file)
);
# Tehdään taulukko loppuu
# Asetukset
$server = "localhost"; // MySql serveri - localhost toimii yleensä
$db_user = ""; // Käyttäjä MySql:ään
$db_pass = ""; // Salasana MySql:ään
$database = "kayttajaasivuilla"; // Tietokanta
// Johon tallennetaan tiedot
$timeoutseconds = 300; // Timeout sekunneissa jolloin käyttäjä lähtee pois viimeisestä avauksesta
# Minimi 300s, maksimia ei käytännössä ole
# Asetukset loppuu
# Scripti alkaa
$timestamp = time();
$timeout = $timestamp-$timeoutseconds;

mysql_connect($server, $db_user, $db_pass);
$insert = mysql_db_query($database, "INSERT INTO linjalla VALUES ('$timestamp','$REMOTE_ADDR','$PHP_SELF')");
if(!($insert)) {
 print "Virhe! Lisäys epäonnistui > ";
}
$delete = mysql_db_query($database, "DELETE FROM linjalla WHERE timestamp<$timeout");
if(!($delete)) {
 print "Virhe! Poisto epäonnistui > ";
}
$result = mysql_db_query($database, "SELECT DISTINCT ip FROM linjalla WHERE file='$PHP_SELF'");
if(!($result)) {
 print "Virhe! Ei voitu valita > ";
}
$user = mysql_num_rows($result);


mysql_close();
if($user == 1) {
 print("<b>$user</b> käyttäjä linjoilla\\n");
} else {
 print("<b>$user</b> käyttäjää linjoilla\\n");
}
# Jos käyttäjiä 1
# Tulostaa 1 käyttäjä linjalla
# jos 1 >
# Tulostaa 480 käyttäjää

?>

EDIT by Tombad:
Korjattu runsas määrä kielioppivirheitä.

amp_god 11:33 3.10.02 
Mitä ihmettä toi tarvii apachen, mysql, ja php:n lisäksi? [ itkee noista Create table plaa plaa plaa riveistä ]
empty 20:16 2.12.02 
$delete = mysql_db_query($database, "DELETE FROM linjalla WHERE timestamp<$timeout");
<- Toimiiks toi muka 300s kuluttua ajamisesta? miten vitus?!?
djf 02:21 4.12.02 
Siellä on virheitä koodissa, osassa kohdista lukee taulun nimenä linjoilla ja osassa linjalla.
pellari 11:36 3.4.03 
kopioitu codewalkerista?
Poistaminen toimii, koska $timeout = $timestamp-$timeoutseconds

Eli kun katsoo että taulun nimi "linjoilla" toistuu tuolla koodissa, niin tämä näemmä toimii.
Rolle 17:21 11.9.03 
Ei toimi minulla :/