Über Webspell :/

Joined
Aug 26, 2005
Messages
224
Points
0
Hi ich hätte da mal ne frage (am besten an welche die sich mit webspell auskennen)

also ich habe mich damals als admin angegeben (ich habs ja auch installiert xD)

jetzt habe ich meinen namen geändert. aber bei "WHOISONLINE" und in der Shoutbox wird noch mein alter name angezeigt. wie fixe ich das?? ich finde da nichts ;/ hoffe auf hilfe. thx
 
Ich kenn mich jetzt nicht mit Webspell aus aber schau doch einfach mal in die entsprechende Tabelle der Datenbank und änder ggf. deinen Nickname nach Wunsch.
 
wobei dort wiederum die frage ist, ob er es findet :/ wenn du mir sagt, wo ich webspell finde, also wenn man es gratis runterladen kannst und mir nen link gibt schreibe ich dir ein script, welches den eintrag in der db ändert :)
 
Link siehe HP-FAQ :D

oder auch: http://www.webspell.org

Der Entwickler hatte dieses Projekt vor langer Zeit stillgelegt und daher freigegeben. Aber anscheinend hat sich nen Nachfolger gefunden.
 
bah sind das viele datein, kann der nicht mel was zusammenfassen ... naja, soll ja nicht sein herzeige projekt sein :o
 
lol jetzt sind die nicknamen richtig bei who is online. aber hab trotzdem noch ne frage. bei who was online (24h) bleibt der 1. name immer da (den man registriert hat) egal wie oft man ändern ;(
 
so, ich hab mal den bereich begrenzt, der wichtig ist:

PHP:
$ergebnis = safe_query("SELECT * FROM ".PREFIX."whoisonline ORDER BY $sort $type");

// Hier war ein definierung, welche einen Wert für die Tabellenfarben abfrage initialisiert
while($ds=mysql_fetch_array($ergebnis)) {
//Hier war ne IF Anweisung, welche jede zweite spalte die tabellenfarbe ändert

// Hier war ne IF Anweisung welche schaut ob der Wert von einem User ist oder von einem Gast und ggf. Details hinzuschreibt ( Homepage etc .. ) oder sie halt auslässt ( beim gast )
		
// Hier waren viele IF anweisungen um zu schauen wo man gerade war 

//hier wurde nur die erkenntnis der abfrage per echo an den browser geleitet

// hier war ne inkrementierung des wertes, welcher die tabellenfarben bestimmt ( damit auch bei der zweiten abfrage ne andere genommen wird ... hätte man besser machen können ...
}

wie man sieht bestimmt hier garnix die ausgabe, oder fügt etwas hinzu.

unter _functions.php fand ich folgendes:

PHP:
// WHO IS - WAS ONLINE
$timeout=1; // 1 sekunde
$deltime = time()-($timeout*60); // IS 1m
$wasdeltime = time()-(60*60*24); // WAS 24h

safe_query("UPDATE ".PREFIX."user SET ip='$ip' WHERE userID='$userID'");
safe_query("DELETE FROM ".PREFIX."whoisonline WHERE time < '$deltime'");  // IS ONLINE
safe_query("DELETE FROM ".PREFIX."whowasonline WHERE time < '$wasdeltime'");  // WAS ONLINE

sprich alle 24h wird der wert dort ausgetragen, nun ist interresant, wo der wert eingetragen wird.

und etwas weiter unten:

PHP:
	// WAS ONLINE
	if(mysql_num_rows(safe_query("SELECT userID FROM ".PREFIX."whowasonline WHERE userID='$userID'")))  
		safe_query("UPDATE ".PREFIX."whowasonline SET time='".time()."', site='$site' WHERE userID='$userID'");
    else safe_query("INSERT INTO ".PREFIX."whowasonline (time, userID, nickname, site) VALUES ('".time()."', '$userID', '".getnickname($userID)."', '$site')");

also sofern du mit der userid nicht binnen 24h drin warst wird hier dein MOMENTANER name hinzugefügt.

da man eine userid net mit umbennen ändert musst du warten bis 24h vorbei sind, dann kommt ein neuer eintrag mit dem richtigen namen :)

EDIT:
damit es nicht zu undeutlich ist. oben wird alles gelöscht, wo der wert time älter als umgerechnet 24h ist.
sollte er jedoch deine userid finden setzt er time auf das aktuelle datum.

also müsstetstr du 24h offline sein, damit er den wert erfolgreich löscht, ihn daher nicht mehr findet und es neu einträgt :)

EDIT2:
in 5min folgt ein script, welches sofort ALLE werte in whowasonline löscht :) (falls gewünscht schreib es es so um, das er nur deinen löscht, aber es wäre egal, da die anderen gelöschten werte sonst vom script eh binnen 24h gelöscht werden ;) )

hier isses:
PHP:
<?php
require('_mysql.php');
mysql_connect($host,$user,$pwd);
mysql_select_db($db);
mysql_query('DELETE FROM cp3_whowasonline WHERE 1=1');
?>

einfach als datei mit endung .php erstellen, in den hauptordner packen, aufrufen und wennalles weiß bleibt und keine fehlermeldung kommt hab ich mich auch nicht verschrieben :) ( sonst findet er ggf die tabelle nicht oder sagt, das er nicht verbinden kann, also nix schlimmes ;) )
 
Last edited:
naja, truncaten wäre übertrieben :> ein simples delete reicht völlig aus ;)

EDIT

um nochmal auf phpmyadmin zurückzukommen.

wenn du da rein kommst und weist wie du nix kaputt machst, also es nicht erst seit 2min kannst ^^ könntest du die tabelle auch per hand leeren und musst es nicht extra per php machen :)
 
Last edited:
danke das mit dem truncaten (tabelle leeren) hat auf anhieb geklappt. sowohl whowas und whois -online sind jetzt aktualisiert. thx ^^
 
Wir helfen doch gerne :)


hier noch ein kleiner hinweis:
truncate leert die tabelle nicht wirklich.

es löscht sie komplett und erzeugt sie neu.

die hat natürlich einen vorteil ( besonder bei großen tabellen ), da sie nicht immer jede zeile überprüft und dann ggf löscht ( wie es die entsprechende DELETE Anweisung machen würde ).

es setzt dadurch aber auch werte wie AUTO_INCREMENT zurück, da die neue erzeugt Tabelle kein auto_increment = n enthält, weil dies nur von wenige Tabellentypen erkannt wird ( ich glaube bei den aktuellen versionen der üblichen Tabellentypen ist es lediglich HEAP und MyISAM. ISAM, BDB und InnoBDB unterstützen dies nicht )
 
Last edited:
naja als ich auf tabelle leeren geklickt hab stand da -> tabelle truncaten? :)
 
ja, das ist einer der kritikpunkte, die ich an phpmyadmin habe ... es sollte zumindest eine abfrage geben, ob man delete oder truncate will ( daher bevorzuge ich die direkte arbeit per mysql bei solch einer abfrage )

aber für deine zwecke wird es gereicht haben ;)

prinzipell sind solche unterschiede nur bei sensitiven scripten wichtig, jedoch habe ich dies bei den bekanntesten fertigscripten bislang nicht gesehen.
 
deswegen sind ja auch die besten coder, faule coder :>
 
Hey, der Typ hat bestimmt den INCLUDE erfunden :D Das is echt die Komfortfunktion schlechthin.
 
Back
Top Bottom