SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Einführung in XHTML, CSS und Webdesign

Einführung in XHTML, CSS und Webdesign zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen
Hilfe Community Kalender Heutige Beiträge Suchen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

 
 
Themen-Optionen Ansicht
  #1  
Alt 27.11.2004, 14:25:34
KiKoN KiKoN ist offline
Anfänger
 
Registriert seit: Oct 2004
Beiträge: 25
Probleme bei nem user online Script

Hi

Ich habe ein Code Schnipsel umgeformt was anzeigt weviel User auf meine Seite online sind.
Ich hab das ein bissel umgeschrieben.
So das nur angemeldete User bei mein kleines cms als online angezeigt. Also keine Gäste, nur registrierte user.

Folgendes ist dabei rausgekommen:

PHP-Code:
$online_time=600;                // Zeit für wie lange ein User als online gezählt werden
                                // soll (in sec - 600 = 10min)
//neuen besucher registrieren (mit ip und zeit)
function insert_new(){
 global 
$conn;
 global 
$pid;
    
mysql_query("INSERT INTO users (ip, lastact) VALUES ('".$_SERVER[REMOTE_ADDR]."', '".time()."') WHERE ID='$pid'");
    
$query=mysql_query("SELECT * FROM counter_count");
    
$count=mysql_fetch_object($query);
    
$count_query=mysql_query("UPDATE counter_count SET count='".($count->count+1)."'");
}
//besucherzahl ansehen
function see(){
 global 
$conn;

    
$query=mysql_query("SELECT * FROM counter_count");
    
$see=mysql_fetch_object($query);
    echo 
$see->count;
}
//checken, ob der aktuelle besuche mit seiner ip schon registriert ist.
//wenn nicht, dann wird funktion insert_new() aufgerufen, welche ihn registriert
function check(){
 global 
$conn;

    
$query=mysql_query("SELECT * FROM users WHERE ip='".$_SERVER[REMOTE_ADDR]."'");
    
$data=mysql_fetch_object($query);
    if(!
$data->ip){
        
insert_new();
    }
}
//hier wird die onlinezeit des aktuellen besuchers aktualsiert, damit die
//online anzeige immer up to date ist
function update(){
 global 
$conn;
    
mysql_query("UPDATE users SET lastact='".time()."' WHERE ip='".$_SERVER[REMOTE_ADDR]."'");
}
//mit dieser funktion wird die anzahl der aktuell als online zählenden user
//angezeigt
function online(){
 global 
$conn;

    
$query=mysql_query("SELECT * FROM users WHERE lastact=".(time()-$online_time));
    if(
$query){
        
$online=mysql_num_rows($query);
    }
    if(
$online 1){ $online=1; }
    echo 
$online;

Für die MySQL Datenbank hab ich folgende Zeilen genommen:
PHP-Code:
CREATE TABLE counter_count 
id int(11NOT NULL auto_increment
count int(10NOT NULL default '0'
PRIMARY KEY (id
TYPE=MyISAM

// Dann noch zwei weitere zeilen in die Tabelle users eingefügt und zwar folgende:
ip varchar(20NOT NULL default ''
lastact varchar(20NOT NULL default '' 
Ausgeben tu ich das wie folgt:
PHP-Code:
check();
update();
echo 
"besucher";
see();
echo 
"
online:"
;
online(); 
Aber das will alles nicht so richtig funktionieren.
geht ich auf die Seite steht da immer folgendes: besucher online:1
An sich ja logisch... nur steht da immer das da nur ein User online ist, obwohl es mehr sein müssten.
Und dann gib es auch noch Sachen mit der Datenbank.
Die Spalten ip und lastact in der Tabelle users ist überall immer leer.
Und auch in der tabelle counter_count hat 0 Zeilen
Kann da wer die Fehler im Script entdeckte :|


Achja die varible $pid die abgefragt wird, ist die UserID die überall immer ermittelt wird.
und das $conn besteht aus diesen zeilen:
PHP-Code:
$conn=mysql_connect($db_host,$db_user,$db_passwort);
mysql_select_db($db,$conn); 

Ps.: Rechtschreibfehler ;)
Mit Zitat antworten
 


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:22:23 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt