hallo,
ich suche ein modul das den usern ihre letzten profil besucher anzeigt...
wer kennt sowas oder kann es programmieren?
So mal wieder ich ... nun nach ca. 1std Forum durchsuchen bin ich hier auf das Thema gestoßen.
Da ich leider nix anderes im Forum gefunden habe, poste ich es einfach mal hier.
Da es ja nun auch den Profil Aufzähler gibt, und ich auch von unseren Usern angesprochen wurde, ob es möglich wäre das man sehen kann wer auf sein Profil war. Dachte ich schauen wir doch mal hier im Forum rein.. also ich muss sagen die Idee die Smartmusic hatte finde ich auch gut ...
Ich dachte so unter den Profil Zähler... als Code Vorlage könnte man doch den Block Wer war Hier nehmen.. ( Wenn ich da nicht falsch liege ) Also wer könnte uns da helfen, so das man es umsetzten kann.
Würde mich freuen von euch zu hören.
Mit freundlichen Grüßen
Rene ;)
Wenn mir jemand sag wie ich alte einträge wieder löschen kann (alles älter wie 48std) dann könnte ich sowas zusammen bauen. Weil dran hängt es nämlich im mom bei mir :(
Weil sonst würde die DB innerhalb kurzer Zeit total überlaufen
Mensch :-) das ging ja Fix hätte ich jetzt nicht gedacht ... ok das hört sich ja schonmal so an als wenn du so was im Einsatz hast.
Ich glaube wenn du den Code hier posten könntest.. könnten andere User schauen an was es liegen könnte mit den 48std. Denk ich mal ;)
Also so wie der Block WER WAR HIER könnte man es machen so sieht man Welcher User auf den Profil war und vor wie viel Minuten, und eben das immer der letzte Profil Besucher ganz oben steht und der letzte Besucher von 5 z-b ganz unten, und eben das es alle User sehen können wer auf den Profil war. Ich Poste einfach mal den Code WER WAR HIER.
global $cookie, $prefix, $currentlang;
if(file_exists("language/lastseen/lastseen-$currentlang.php")) {
include("language/lastseen/lastseen-$currentlang.php");
}
else {
include("language/lastseen/lastseen-german.php");
}
$numusers = 5;
$username = $cookie[1];
mysql_query("CREATE TABLE IF NOT EXISTS $prefix"._lastseen." (id INT (15) not null AUTO_INCREMENT, username TEXT not null, date INT(15) not null, ip CHAR(50), PRIMARY KEY (id), UNIQUE (id))");
if (isset($username)) {
$ip = getenv("REMOTE_HOST");
if (empty($ip)) {
$ip = getenv("REMOTE_ADDR");
}
$result = mysql_query("SELECT * FROM $prefix"._lastseen." WHERE username = \"$username\"");
if (mysql_num_rows($result) > 0) {
mysql_query("UPDATE $prefix"._lastseen." SET date = " . time() . " WHERE username = \"$username\"");
} else {
mysql_query("INSERT INTO $prefix"._lastseen." VALUES (\"\", \"$username\", ".time().", \"".$ip."\")");
}
}
$content = "";
$content = " <A name= \"scrollingCode\"></A>
<MARQUEE behavior= \"scroll\" direction= \"up\" height=\"120\" scrollamount= \"2\" scrolldelay= \"70\" onmouseover='this.stop()' onmouseout='this.start()'>
<table width=\"80%\">";
$content .= "<tr><td></td></tr>";
$content .= "$show";
$content .= "</table>";
$a++;
$result = mysql_query("SELECT username, date FROM $prefix"._lastseen." ORDER BY date DESC limit 0,20");
while (list($uname, $date) = mysql_fetch_row($result)) {
if ($uname != $username) {
$realtime = time() - $date;
$dont = false;
// how many days ago?
if ($realtime >= (60*60*24*2)) { // if it's been more than 2 days
$days = floor($realtime / (60*60*24));
$dont = true;
} else if ($realtime >= (60*60*24)) { // if it's been less than 2 days
$days = 1;
$realtime -= (60*60*24);
}
if (!$dont) {
// how many hours ago?
if ($realtime >= (60*60)) {
//$content .= " ($realtime) ";
$hours = floor($realtime / (60*60));
$realtime -= (60*60*$hours);
}
// how many minutes ago?
if ($realtime >= 60) {
$mins = floor($realtime / 60);
$realtime -= (60*$mins);
}
// just a little precation, although I don't *think* mins will ever be 60...
if ($mins == 60) {
$mins = 0;
$hours += 1;
}
}
$content .= "<font class=tiny><img src=\"images/block-modules/ur-guest.gif \"> <a href=\"modules.php?name=Your_Account&op=userinfo&uname=$uname\"><b>".$uname."</b></a>:<br> ";
if ($dont) {
$content .= " ".$days." "._LASTSEENDAYS."";
} else {
if ($days > 0) {
$content .= " ".$days." "._LASTSEENDAY."".(($hours == 0 && $mins == 0)?(""):(","));
}
if ($hours > 0) {
$content .= " ".$hours." ".(($hours > 1)?(""._LASTSEENHOURS.""):(""._LASTSEENHOUR."")).(($mins == 0)?(""):(","));
}
if ($mins > 0) {
$content .= " ".$mins." ".(($mins > 1)?(""._LASTSEENMINUTES.""):(""._LASTSEENMINUTE.""))."";
} else { // less than a minute :)
$content .= " ".$realtime." "._LASTSEENSECONDS."";
}
}
$content .= " "._LASTSEENAGO." </font><br>";
$days = 0;
$hours = 0;
$mins = 0;
$dont = false;
}
}
$content .= "";
machs doch noch einfacher: Zeige nur die letzten 10 oder 15 Besucher und lösche alle anderen wieder!
Warum so umständlich?? Es würde locker reichen wenn ausgeben würd wann jemand auf dem Profil war. Versuch das morgen mal zusammen zubauen. Weil heute ist noch das Photoalbum dran ;)
Hy super genau hast ja recht um so einfacher um so besser :-) und was machst du im Fotoalbum :-) "mal ganz vorsichtig fragt" :redhead:
Mfg Rene
hmm... ich finds so http://www.fs-location.de/index.php?section=profile&id=1 am einfachsten... also da unten letze beuscher.
Find ich persönlich nun wieder kacke, man will doch schon wissen wann der User auf dem Profil war.
Zum Photoalbum:
Sag ich nicht werdet ihr sehen ;)
Jo genau WANN der User da war wäre schon nicht schlecht ;)
und wegen Fotoalbum : Ok mal warten ... wird bestimmt was gutes sein :P
Mfg Rene
Muss der letzte Besucher nachts dann auch das Licht ausmachen?
ZitatMuss der letzte Besucher nachts dann auch das Licht ausmachen?
Und Morgens das Licht wieder an machen :D
Mfg Rene
Ich wart mal bis jubi was schreib der Sag mir bestimmt die lösung für das 48h prob ;)
Hallo !
ZitatIch wart mal bis jubi was schreib der Sag mir bestimmt die lösung für das 48h prob
Würd ich glatt machen ;)
Wird beim (Profil-) Aufrufzähler denn irgendwo eine Zeit mitgeloggt/gespeichert ?
MfG
jubilee
Jupps es wird dann time() mit eingefügt.
das ist ja mal ne gute idee für eine funktion, das erhöht das community feeling der page, da man sieht, ob man auch besucht wird.
@ L1nuX3r:
Wie hast du den zähler realisiert in dem useraccount?
So los gehts:
SQL:
CREATE TABLE `mx_users_visit` (
`id` int(11) unsigned NOT NULL auto_increment,
`uid` int(11) NOT NULL default '0',
`vuid` int(11) NOT NULL default '0',
`time` int(11) unsigned NOT NULL default '0',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;
Profilzähler mit cookie setzung ACHTUNG Cookie Zeit muss angepasst werden und gegebenenfalls die Abfrage:
ob_start();
$time = mxdynatime();
if(!empty($_COOKIE["Profilaufruf".$uname.""])) {
echo"";
}else {
$cookie = mxGetUserSession();
if ($cookie[1] != $uname) {
sql_query("UPDATE ".$user_prefix."_users SET user_click=user_click+1 where uname='$uname'");
sql_query("INSERT INTO ".$user_prefix."_users_visit (uid, vuid, time) VALUES ('".$uinfo['uid']."', '".$cookie[0]."', '".time()."')");
}
setcookie("Profilaufruf".$uname."","Profilaufruf",time()+$time);
}
So nun will man das ganze auch noch sehen:
$gestern = mktime(0, 0, 0, date ("m") , date ("d")-1, date("Y"));
$visituser = sql_query("SELECT uid, vuid, time FROM ".$user_prefix."_users_visit WHERE uid=".$uinfo['uid']." AND time >= ".$gestern." ORDER BY time DESC");
while($visit = sql_fetch_array($visituser)){
$sqluser = sql_fetch_array(sql_query("SELECT * FROM ".$user_prefix."_users WHERE uid=".$visit['vuid'].""));
$visit['time'] = date ("d.m.Y H:i", $visit['time']);
echo"<a href=\"modules.php?name=Userinfo&uname=".$sqluser['uname']."\">".$sqluser['uname']."</a> ".vkpGetSexusString($sqluser['user_sexus'])."".$visit['time']."";
} // while
Ist mal die erste version von dem teil. morgen kommt noch mehr ;)
Ach und bitte erstmal richtig angucken bevor wieder irgendwelche Fragen kommen!!
[Editiert am 20/8/2004 von NeMeSiSX2LC]
War jetzt 30 miun arbeit! Da wird mir doch keiner weis machen wohlen das das wirklich so schwer ist!
Hallo NeMeSiSX2LC
Nun bin ich doch einer der sagen muss ... nicht so einfach habe versucht die beiden Codes in der mx_userfunctions_options.php ein zu bauen ... aber leider klappert das mit dem Nachbran noch nicht so ... echt sorry bin wohl zu ........ :-)
Hier mal die fehlermeldung die ich bekomme
Fatal error: Call to undefined function: mxdynatime() in /srv/www/htdocs/web120/html/includes/mx_userfunctions_options.php on line 796
ich glaube das prob ist man weiss leider nicht genau wo was hin muss ...
Würde mich freuen von dir zu hören ...
Mfg Rene
##################################################################################
function mxdynatime()
{
$jetzt=time();
$today = date("Ymd", time());
$year = substr($today,0,4);
$month = substr($today,4,2);
$day = substr($today,6,2);
$endetag=mktime(23,59,59,$month,$day,$year);
$laufzeit=($endetag-$jetzt);
return $laufzeit;
}
Das am besten noch in die mx_userfunctions_options.php mit rein. Dann wird der Profilaufruf inklusive Zähler nur einem pro Tag gewertet!
hi,
muss dieser teil auch in die mx_userfunctions_options.php rein????
PHP-Code:
<?phpob_start();
$time = mxdynatime();
if(!empty($_COOKIE["Profilaufruf".$uname.""])) {
echo"";
}else {
$cookie = mxGetUserSession();
if ($cookie[1] != $uname) {
sql_query("UPDATE ".$user_prefix."_users SET user_click=user_click+1 where uname='$uname'");
sql_query("INSERT INTO ".$user_prefix."_users_visit (uid, vuid, time) VALUES ('".$uinfo['uid']."', '".$cookie[0]."', '".time()."')");
}
setcookie("Profilaufruf".$uname."","Profilaufruf",time()+$time);
}?>
Irgendwie schon oder wie willste sonst die aufrufe zählen lassen? ;)
how can you make,that only 10 or 15 are visited?
Also hab die Tabelle angelegt und gespeichert wird darin auch alles,aber hab das hier
$gestern = mktime(0, 0, 0, date ("m") , date ("d")-1, date("Y"));
$visituser = sql_query("SELECT uid, vuid, time FROM ".$user_prefix."_users_visit WHERE uid=".$uinfo['uid']." AND time >= ".$gestern." ORDER BY time DESC");
while($visit = sql_fetch_array($visituser)){
$sqluser = sql_fetch_array(sql_query("SELECT * FROM ".$user_prefix."_users WHERE uid=".$visit['vuid'].""));
$visit['time'] = date ("d.m.Y H:i", $visit['time']);
echo"<a href=\"modules.php?name=Userinfo&uname=".$sqluser['uname']."\">".$sqluser['uname']."</a> ".vkpGetSexusString($sqluser['user_sexus'])."".$visit['time']."";
} // while
in die View.php eingebaut und es erscheint nix im Profil
Arbeitet die view.php nicht mit $out?? für die ausgabe?
hi,
wie kann ich die uhrzeit ändern? bei mir sind es immer 2 stunden früher???
und wie kann ich die letzten 10 besucher anzeigen lassen und nicht alle?
gruss
Hm UhrZeit ka und guck dir mal die DB abfrage genau an das bringt einem förmlich an wie man es limitiert
ich habe sie mir schon angesehen...aber ich weiss nicht wo.... :(
Man beachte das AND time >= und das ORDER BY
Also das AND Time >=$gestern muss weg und hinter DESC ein LIMIT 10
;)
ist es so richtig oder muss jetzt die obere zeile auch weg?
$gestern = mktime(0, 0, 0, date ("m") , date ("d")-1, date("Y"));
$visituser = sql_query("SELECT uid, vuid, time FROM ".$user_prefix."_users_visit WHERE uid=".$uinfo['uid']." ORDER BY time DESC limit 0,10");
[Editiert am 23/9/2004 von smartmusic]
na die variable gestern brauchste ja jetzt nicht mehr
Könnte man das jetzt nochmal bitte für dumme zusammenfassen :redhead: Schritt 1,2,3,4,5 Wo gehört was hin :redhead:
Ja ich machs nochmal neu zusammen ok ;)
NeMeSiSX2LC
mach mal neu zusammen :)
durch die erste Erklärung blickt ja keiner durch :)
vielleicht sollten wir da den Accountzähler gleich mit reinfrickeln,
wenn schon in einem anderen Threat danach gefragt wurde.
[Editiert am 28/9/2004 von Homicide]
JaJa mit der ruhe ich machs so simple wie möglich. Pack alles in eine file die muss nur noch include werden und gut is.
*g* ich bin die Ruhe selbst.
wollte damit nur vorbeugen das du zu ruhig wirst :)
aber wenn du schon alles so einfach machen willst, noch ne Anregung:
wäre doch schön wenn das Tool gleich abcheckt ob ich Online bin und mir in dem Fall dann sofort ne PM schickt mit dem Inhalt: User "XYZ" schaut sich grade dein Profil an.
Sollte ich nicht online sein dann schickts halt keine PM :)
obs das wirklich bringt??
AUFREG :wall:
lol ;)
klar bringts das, ich krieg ja soo wenig PMs
und wenn eine kommt dann mit diesem unverständlichen Wunsch :crash:
Der mit der PN is für mich auch ein unverständlicher wunsch!
Die Frauen bei dir werden sich bedanken wenn die Kerle alle drauf gehen wenn die online sind ;)
Und ich find die Idee auch Super :D
NeMeSiSX2LC
du wirst es nicht glauben, aber genau von denen kam der Wunsch :)
für mich noch unverständlicher :)
könnte mir vielleicht bitte mal einer die funktionierenden
Codezeilen schicken mit ner kurzen erklärung was wo
rein muß
ich blick hier grad nicht mehr durch.
danke und gruß
steff
mailadresse ist im profil.
ich hab den code jetzt eingefügt, aber bei mir wird nichts angezeigt und auch nichts in die datenbank geschrieben.
bitte um hilfe.
gruß
steff
NeMeSiSX2LC wollte das ganze doch nochmal zusammenfassen damit auch ungeübte damit klarkommen.
scheinbar hat er jedoch momentan anderes zu tun und läßt noch auf sich warten :)
vielleicht bringt er mal licht ins dunkel :nacht:
ist das thema eingeschlafen?
Ich habs gerade nochmal versucht, aber wieder ohne erfolg.
Ne einschlafen tut bei mir nix bloss ich selbst machmal :)
;-) das tut jeder mensch ja mal.
ZitatJa ich machs nochmal neu zusammen ok
Wollt mal nachfragen , ob es schon was neues gibt ? ;D
noch nicht wirklich
ui ich verfolge diesen thread auch schon lange es wird immer spannender ;D
aber das mit dem "wer schaut sich grad mein profil an" war ne super idee es muss nicht ein PM sein die man bekommt wenn jemand mein profil anschaut es kann ein "beep" ton sein bzw. ein "beep.mp3, beep.wma" ??
ich find es wäre wirklich super
?? schreibe doch einfach mal, welche beiträge mit code hier wichtig sind, dann versuche ich das mal zusammenzubasteln.
Die ganzen beiträge hier sind einfach zu konfus. Das weg, jenes rein, dann wieder anders ???
Danke
wo liegt eigentlich das problem?? Hab mir den Beitrag kram hier nochmal angesehen steht doch alles in Antwort 17 und 20 da. Alles andere bezog sich auf irgen eine andere Auslegung.
Ich würde es einfach haben wollen , so wie hier --> http://www0.pafnet.de/user.php?uid=237
Nix mit pm oder sonstiges .
ganz dolles merci an NeMeSiSX2LC, da ich jetzt alle anderen Beiträge ignorieren konnte hat es endlich funktioniert.
Allerdings musste ich die Prefix Variable durch hardcoding des prefixes ersetzten, erst dann hat es funktioniert.
Na bitte, geht doch ... was lange währt, wird endlich gut ;)
Hab's im Laufe des Tages auch hinbekommen, allerdings "nur" über die /modules/Userinfo/view.php.
Mir sind allerdings ein paar Kleinigkeiten aufgefallen, die ich abgeändert hab:
- Beim Profilaufruf wird der aktuelle Aufruf noch nicht mit angezeigt, obwohl man in der Liste der letzten Besucher angezeigt wird.
- Wenn ein (Community)Gast nen Profil aufruft, wird kein Name, wohl aber Datum und Uhrzeit in der Liste angezeigt.
- Die Geschlechtsangabe des Profilbesuchers wird sowohl mit Text als auch mit dem Symbol angezeigt.
Zitat von: Musicman75 in 18 März 2005, 01:34:37
ganz dolles merci an NeMeSiSX2LC, da ich jetzt alle anderen Beiträge ignorieren konnte hat es endlich funktioniert.
Allerdings musste ich die Prefix Variable durch hardcoding des prefixes ersetzten, erst dann hat es funktioniert.
Ähm in der regel muss $prefix oder $user_prefix mit in die globals der function ;)
Könntet ihr mal erklären was ihr alles abgeändert habt ?
Danke ;)
hallo,
wie wäre es denn wenn man es als kleinen block hätte mit biep wer sich gerade dein profil angesehen hat???
Ich könnte hier ne Anleitung posten für vkpMx 2.1 inkl. YA_Eweiterung v. 07.09.2003.
Bis auf ne abgewandelte Function hab ich alle Änderungen in /modules/Userinfo/view.php,
ergo Anzeige der letzten Besucher im Profil, nicht als Block.
Die bessere Variante is sicherlich die von NeMeSiSX2LC, wo die Änderungen über die
/includes/mx_userfunctions_options.php laufen, da man dann bei nem Update des vkp
nicht Gefahr läuft, seine Änderungen zu verlieren. Nur krieg ich's halt nich hin (s.o.).
Also wenn wer Interesse an meiner Variante hat ... Bitte melde Dich ... ;)
ZitatAlso wenn wer Interesse an meiner Variante hat ... Bitte melde Dich ...
Immer her damit ;)
Arbeite zwar mit der mx_userfunctions_options.php aber wenigstens habe ich mal einen Anfang :thumbup:
Ich hab da auch Interesse dran. :)
Ok, Ihr hab's nich anders gewollt ;D
Schritt 1 - Datenbank erweitern
- Tabelle "mx_users" erweitern
ALTER TABLE `mx_users` ADD `user_click` BIGINT( 20 ) DEFAULT '0' NOT NULL;[/list]
- Neue Tabelle mx_users_visit erstellen
CREATE TABLE `mx_users_visit` (
`id` int(11) unsigned NOT NULL auto_increment,
`uid` int(11) NOT NULL default '0',
`vuid` int(11) NOT NULL default '0',
`time` int(11) unsigned NOT NULL default '0',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;[/list]
Schritt 2 - Klickerfassung in /modules/Userinfo/view.php
- Vor der eigentlichen Seitenausgabe
////////////////////////// Ausgabe der Daten ////////////////////////////////////////////////////das einbauen:
#################################################
function VWGetSexusString($sexus = 0){
$sexus = (empty($sexus)) ? 0 : (int)$sexus;
switch ($sexus) {
case 0: $out = mxCreateImage("images/nogender.gif", _YA_MALE); break;
case 1: $out = mxCreateImage("images/f.gif", _YA_FEMALE); break;
case 2: $out = mxCreateImage("images/m.gif", _YA_MALE); break;
}
return $out;
}
function mxdynatime(){
$jetzt=time();
$today = date("Ymd", time());
$year = substr($today,0,4);
$month = substr($today,4,2);
$day = substr($today,6,2);
$endetag=mktime(23,59,59,$month,$day,$year);
$laufzeit=($endetag-$jetzt);
return $laufzeit;
}
ob_start();
$time = mxdynatime();
if(!empty($_COOKIE["Profilaufruf".$uname.""])) {
echo"";
}else {
$cookie = mxGetUserSession();
if ($cookie[1] != $uname) {
$deltime = time() - 60*60*24*2;
sql_query("DELETE FROM ".$user_prefix."_users_visit WHERE time < '$deltime'");
sql_query("UPDATE ".$user_prefix."_users SET user_click=user_click+1 where uname='$uname'");
sql_query("INSERT INTO ".$user_prefix."_users_visit (uid, vuid, time) VALUES ('".$uinfo['uid']."', '".$cookie[0]."', '".time()."')");
}
setcookie("Profilaufruf".$uname."","Profilaufruf",time()+$time);
}Die function
VWGetSexusString ist eine leichte Abwandlung des originals (
vkpGetSexusString),
damit nur das Symbol, aber nicht noch der Text davor ausgegeben wird.[/list]
Schritt 3 - Zählerausgabe in /modules/Userinfo/view.php
- An der Stelle, wo Ihr den Aufrufzähler angezeigt haben möchtet, folgendes einbauen:
$clickuser = sql_query("SELECT user_click FROM ".$user_prefix."_users WHERE uid=".$uinfo['uid']." LIMIT 1");
$click = sql_fetch_array($clickuser);
echo "<center><strong>".$click[0]."</strong> Aufruf(e)<br /><br />\n";[/list]
Schritt 4 - Ausgabe der letzten 10 Besucher in /modules/Userinfo/view.php
- An der Stelle, wo Ihr die Ausgabe angezeigt haben möchtet, folgendes einbauen:
OpenTable();
echo "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"3\" bgcolor=\"$bgcolor1\">\n";
$visituser = sql_query("SELECT uid, vuid, time FROM ".$user_prefix."_users_visit WHERE uid=".$uinfo['uid']." ORDER BY time DESC LIMIT 10");
if ($click[0] != 0){
echo"<tr valign=\"top\"><td bgcolor=\"$bgcolor2\" width=\"30%\"><b>Die letzten 10 Besucher:</b></td>\n";
echo "<td bgcolor=\"$bgcolor3\"> </td><td bgcolor=\"$bgcolor3\"> </td>\n";
while($visit = sql_fetch_array($visituser)){
$sqluser = sql_fetch_array(sql_query("SELECT * FROM ".$user_prefix."_users WHERE uid=".$visit['vuid'].""));
$visit['time'] = date ("d.m.Y H:i", $visit['time']);
if (!empty($sqluser['uname'])){
echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\" width=\"30%\"> </td><td bgcolor=\"$bgcolor3\" width=\"15%\">\n";
echo "".VWGetSexusString($sqluser['user_sexus'])."<a href=\"modules.php?name=Userinfo&uname=".$sqluser['uname']."\">".$sqluser['uname']."</a></td>\n";
echo "<td bgcolor=\"$bgcolor3\">".$visit['time']."</td></tr>\n";
}else{
echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\" width=\"30%\"> </td><td bgcolor=\"$bgcolor3\" width=\"15%\">\n";
echo "".VWGetSexusString($sqluser['user_sexus'])." Gast</td><td bgcolor=\"$bgcolor3\">".$visit['time']."</td></tr>\n";
}
}
}
echo "</table>";
CloseTable();Falls jemand mehr oder weniger als 10 Besucher anzeigen lassen will, einfach das
LIMIT in der DB-Abfrage ändern:
$visituser = sql_query("SELECT uid, vuid, time FROM ".$user_prefix."_users_visit WHERE uid=".$uinfo['uid']." ORDER BY time DESC LIMIT 10");[/list]
Schritt 5 - Habe Fertig 8)
Das war's. Ich hoffe, bei Euch funzt's genausogut wie bei uns. Falls nicht, einfach melden.
Wär ebenfalls nett, wenn wer was schreiben würde, falls ich wo Mist gebaut hab ;)
Nachtrag: Hab den (Tipp)Fehler
(s.u.) (http://board.pragmamx.de/index.php?topic=9694.msg83368#msg83368) korrigiert ;)
Hmm.. bei Schritt 4 hab ich Probleme. Hab den Code vor die Stelle kopiert, die mit //Listings eingeleitet wird. Erhalte dabei immer die folgende Fehlermeldung:
Parse error: parse error, unexpected T_ECHO, expecting ',' or ';' in /www/htdocs/v110447/gothic/modules/Userinfo/view.php on line 327
Fatal error: Call to undefined function: viewuserinfo() in /www/htdocs/v110447/gothic/modules/Userinfo/index.php on line 36
Was mach ich falsch?
Hierzu mal bitte die betroffene Zeile und jeweils 10 Zeilen davor und danach posten
Zitat von: JermaineBelgardio in 19 März 2005, 09:46:49
Parse error: parse error, unexpected T_ECHO, expecting ',' or ';' in /www/htdocs/v110447/gothic/modules/Userinfo/view.php on line 327
Zu
Zitat von: JermaineBelgardio in 19 März 2005, 09:46:49
Call to undefined function: viewuserinfo() in /www/htdocs/v110447/gothic/modules/Userinfo/index.php on line 36
check mal ab, in welcher Datei die
function deklariert wird und includier die mal.
Is merkwürdig, dass der den Fehler jetzt bringt, wo doch die Änderungen nur in der
view.php gemacht werden/wurden ... oder haste anner
index.php parallel
auch was für Dich geändert?
Das
Zitat von: JermaineBelgardio in 19 März 2005, 09:46:49
Hab den Code vor die Stelle kopiert, die mit //Listings eingeleitet wird.
Kommt in meiner
view.php gar nich vor ... aber wir reden hier schon von der gleichen Versionskombi aus
vkpMx 2.1 (nicht 2.1.a) & YA v. 07.09.2003 (nicht YAplus - btw: kenn ich gar nicht, was aber nix heißt ;) )??
Jepp, es ist das MX2.1 mit dem YA, welches standardmäßig dabei ist/war. Hab da keine Änderungen vorgenommen - zumindest weiss ich davon nix mehr. ;D
Hier mal meine komplette view.php:
<?php // $Id: view.php,v 1.11 2003/11/17 13:00:40 EllselAn Exp $
/**********************************************************************/
/* vkpMx 2.0 Content Management System Platform */
/* ================================================================== */
/* Copyright (C) 2003 by the vkpMx & pragmaMx Developer Team */
/* email: team@pragmamx.org */
/* homepage: http://www.maax-design.de */
/* further sites: http://www.pragmaMx.org, http;//guggemahier.de, */
/* http://www.marx-city.de, http://www.genutec-studios.de, */
/* http://www.shiba-design.de, http://www.power-maax.de */
/* ================================================================== */
/* The vkpMx is distributed free of charge by maax-design.de. */
/* The use of this system is allowed until copyright information */
/* is shown perspicuous visible and correcty on all system pages. */
/* Sales, rent out and the use of single code parts from this */
/* system must be allowed by maax-design.de. */
/**********************************************************************/
if (!defined("mxMainFileLoaded")) die ("You can't access this file directly...");
if (!defined("mxYALoaded")) die ("You can't access this file directly...");
#################################################
function viewuserinfo($uinfo) {
global $prefix, $user_prefix, $bgcolor1, $bgcolor2, $bgcolor3, $useuserpoints;
global $istheuser, $privmsgactive, $gbactiv, $showall; // fuer Unterfunktionen in mx_userfunctions_options.php
if (!isset($useuserpoints)) include("modules/Your_Account/config.php");
mxGetLangfile("Your_Account");
$uinfo = mxPrepareCensored($uinfo);
#extract($uinfo);
#mxdebugfuncvars($uinfo);
$istheuser = vkpUserIsThisTheUser($uinfo['uid']);
$showall = ($istheuser || mxIsAdmin()) ? 1 : 0;
$privmsgactive = (mxModuleAllowed("Private_Messages")) ? 1 : 0; # feststellen ob pm-modul aktiv ist
$gbactiv = (mxModuleAllowed("UserGuest")) ? 1 : 0; # feststellen ob gaestebuch vorhanden
$uinfo['url'] = mxCutHTTP($uinfo['url']);
// Signatur
if (!empty($uinfo['user_sig'])) {
if (@file_exists('modules/Private_Messages/bbfunctions.php')) {
include_once('modules/Private_Messages/bbfunctions.php');
$uinfo['user_sig'] = smile(bbencode(make_clickable($uinfo['user_sig'])));
}
$uinfo['user_sig'] = mxNL2BR($uinfo['user_sig']);
}
# Prüfem ob ein Avatar hochgeladen wurde:
if(!mxIsAvatarUploaded($uinfo['uname'])) {
$uinfo['user_avatar'] = (empty($uinfo['user_avatar']) || $uinfo['user_avatar']=="blank.gif") ? "" : mxCreateImage(MX_PATH_AVATAR."/".$uinfo['user_avatar'], $uinfo['user_avatar']);
}
else {
$uinfo['user_avatar'] = mxIsAvatarUploaded($uinfo['uname'], TRUE);
}
// Private Nachrichten
$privmsgactive = (mxModuleAllowed("Private_Messages")) ? 1 : 0; # feststellen ob pm-modul aktiv ist
if ($privmsgactive && $istheuser){ # falls pm-modul aktiv ist
$uinfo['countpm'] = 0;
$uinfo['countpmread'] = 0;
$uinfo['countpmunread'] = 0;
$qry="SELECT read_msg, Count(msg_id) FROM ${prefix}_priv_msgs WHERE to_userid='".intval($uinfo['uid'])."' group by read_msg;";
$result = sql_query($qry);
while (list($read_msg, $nums) = sql_fetch_row($result)) {
if ($read_msg == 0) { # wenn angemeldeter User
$uinfo['countpmunread'] = $nums; # Anzahl ungelesene ermitteln
}
else{
$uinfo['countpmread'] = $nums; # Anzahl gelesener pm's ermitteln
}
}
$uinfo['countpm'] = $uinfo['countpmread'] + $uinfo['countpmunread'];
$uinfo['contpm'] = "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr><td nowrap><a href=\"modules.php?name=Private_Messages\"><b>".$uinfo['countpm']."</b></a> <a href=\"modules.php?name=Private_Messages\">"._YA_BWOPMSGALL."</a>";
if($uinfo['countpmunread']){
$uinfo['contpm'] .= "</td><td>, </td><td nowrap><a href=\"modules.php?name=Private_Messages\"><marquee behavior='alternate' direction='left' width='100' hspace='0' vspace='0' loop=''><b>".$uinfo['countpmunread']."</b> <b>"._YA_BWOPMSGUNREAD."</b></marquee></a>\n";
}
$uinfo['contpm'] .= "</td><td> *</td></tr></table>";
}
// Online oder Offline
$uinfo['online'] = ($istheuser) ? TRUE : mxIsUserOnline($uinfo['uname']);
$uinfo['lastonline'] = ($uinfo['online']) ? "" : mx_strftime(_DATESTRING,$uinfo['user_lastvisit']);
$img = ($uinfo['online']) ? "images/online.gif" : "images/offline.gif";
$uinfo['online'] = mxCreateImage($img, (($uinfo['online']) ? _YES : _NO));
// Newsletter
$resultx = sql_query("SELECT status FROM ${prefix}_newsletter WHERE email='".mxAddSlashesForSQL($uinfo['email'])."' OR email='".mxAddSlashesForSQL($uinfo['femail'])."'");
list($status)=sql_fetch_row($resultx);
$uinfo['newsletter'] = (empty($status) || $status == 3) ? _NOTSUBSCRIBED : _SUBSCRIBED;
$img = (empty($status) || $status == 3) ? "images/td.gif" : "images/tu.gif";
$uinfo['newsletter'] = mxCreateImage($img, $uinfo['newsletter'])." ".$uinfo['newsletter']."\n";
// Userpunkte
#$uinfo['userpoints'] = 0;
$uinfo['hasuserpoints'] = "";
$uinfo['userpointsfaq'] = "";
if ($useuserpoints){
if (@file_exists("modules/Your_Account/userpoints.php")){
$uname = $uinfo['uname'];
include_once("modules/Your_Account/userpoints.php");
$uinfo['hasuserpoints'] = $hasuserpoints;
#$uinfo['userpoints'] = $userpoints;
$uinfo['userpointsfaq'] = $userpointsfaq;
}
}
// Usergaestebuch
$gbactiv = (mxModuleAllowed("UserGuest")) ? 1 : 0; # feststellen ob gaestebuch vorhanden
$uinfo['gbnewentries'] = 0;
if ($gbactiv){ # falls gaestebuch vorhanden
$qry="SELECT Count(gid) FROM ${prefix}_userguest WHERE touserid='".intval($uinfo['uid'])."' and dummy=0;";
$result = sql_query($qry);
list($uinfo['gbnewentries']) = sql_fetch_row($result);
}
// Geburtstag
$bday = explode('-',$uinfo['user_bday']);
$uinfo['user_bday'] = (@checkdate($bday[1], $bday[2], $bday[0])) ? vkpGetBdayString($uinfo['user_bday']) : "";
// Benutzergruppe
if (mxIsAdmin()) {
$result = sql_query("SELECT access_title FROM ".$prefix."_groups_access WHERE access_id = ".intval($uinfo['user_ingroup'])."");
list($uinfo['usergroup']) = sql_fetch_row($result);
}
#################################################
function VWGetSexusString($sexus = 0){
$sexus = (empty($sexus)) ? 0 : (int)$sexus;
switch ($sexus) {
case 0: $out = mxCreateImage("images/nogender.gif", _YA_MALE); break;
case 1: $out = mxCreateImage("images/f.gif", _YA_FEMALE); break;
case 2: $out = mxCreateImage("images/m.gif", _YA_MALE); break;
}
return $out;
}
function mxdynatime(){
$jetzt=time();
$today = date("Ymd", time());
$year = substr($today,0,4);
$month = substr($today,4,2);
$day = substr($today,6,2);
$endetag=mktime(23,59,59,$month,$day,$year);
$laufzeit=($endetag-$jetzt);
return $laufzeit;
}
ob_start();
$time = mxdynatime();
if(!empty($_COOKIE["Profilaufruf".$uname.""])) {
echo"";
}else {
$cookie = mxGetUserSession();
if ($cookie[1] != $uname) {
$deltime = time() - 60*60*24*2;
sql_query("DELETE FROM ".$user_prefix."_users_visit WHERE time < '$deltime'");
sql_query("UPDATE ".$user_prefix."_users SET user_click=user_click+1 where uname='$uname'");
sql_query("INSERT INTO ".$user_prefix."_users_visit (uid, vuid, time) VALUES ('".$uinfo['uid']."', '".$cookie[0]."', '".time()."')");
}
setcookie("Profilaufruf".$uname."","Profilaufruf",time()+$time);
}
////////////////////////// Ausgabe der Daten /////////////////////////////////////////////////////
include("header.php");
if ($istheuser) {
include_once("modules/Your_Account/navbar.php");
OpenTable();
nav(1);
CloseTable();
echo "<br>";
}
else {
OpenTable();
echo "<center>";
echo "<font class=\"title\">"._PERSONALINFO.": ".$uinfo['uname']."</font><br>";
echo "</center>";
CloseTable();
echo "<br>";
}
if (function_exists('viewuserinfo_option_1')) {
viewuserinfo_option_1($uinfo);
}
else {
OpenTable();
echo "<center>";
echo "<table border=\"0\" cellspacing=\"1\" cellpadding=\"3\" bgcolor=\"$bgcolor1\">\n";
echo "<tr valign=\"top\"><td width=\"20%\" bgcolor=\"$bgcolor2\"><b>"._NICKNAME.":</b></td><td bgcolor=\"$bgcolor3\"><b>".mxPrepareToDisplay($uinfo['uname'])."</b></td></tr>\n";
if ($showall) echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>"._UREALEMAIL.":</b></td><td bgcolor=\"$bgcolor3\"><a href=\"mailto:".mxPrepareToDisplay($uinfo['email'])."\"><b>".mxPrepareToDisplay($uinfo['email'])."</b></a> *</td></tr>\n";
if (!empty($uinfo['user_avatar'])) echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>"._AVATAR.":</b></td><td bgcolor=\"$bgcolor3\">".$uinfo['user_avatar']."</td></tr>\n";
if (!empty($uinfo['femail'])) echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>"._UFAKEMAIL.":</b></td><td bgcolor=\"$bgcolor3\"><a href=\"mailto:".mxPrepareToDisplay($uinfo['femail'])."\">".mxPrepareToDisplay($uinfo['femail'])."</a></td></tr>\n";
if (!empty($uinfo['name'])) echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>"._UREALNAME.":</b></td><td bgcolor=\"$bgcolor3\">".mxPrepareToDisplay($uinfo['name'])."</td></tr>\n";
if (!empty($uinfo['user_sexus'])) echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>"._YA_USEXUS.":</b></td><td bgcolor=\"$bgcolor3\">".vkpGetSexusString($uinfo['user_sexus'])."</td></tr>\n";
if (!empty($uinfo['user_bday'])) echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>"._YA_UBDAY.":</b></td><td bgcolor=\"$bgcolor3\">".$uinfo['user_bday']." , ".$uinfo['user_age']." "._YEARS."</td></tr>\n";
if (!empty($uinfo['url'])) echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>"._MYHOMEPAGE."</b></td><td bgcolor=\"$bgcolor3\"><a href=\"".mxPrepareToDisplay($uinfo['url'])."\" target=\"_blank\">".mxPrepareToDisplay($uinfo['url'])."</a></td></tr>\n";
if (!empty($uinfo['user_icq'])) echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>"._ICQ.":</b></td><td bgcolor=\"$bgcolor3\">".mxPrepareToDisplay($uinfo['user_icq'])."</td></tr>\n";
if (!empty($uinfo['user_aim'])) echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>"._AIM."</b></td><td bgcolor=\"$bgcolor3\">".mxPrepareToDisplay($uinfo['user_aim'])."</td></tr>\n";
if (!empty($uinfo['user_yim'])) echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>"._YIM.":</b></td><td bgcolor=\"$bgcolor3\">".mxPrepareToDisplay($uinfo['user_yim'])."</td></tr>\n";
if (!empty($uinfo['user_msnm'])) echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>"._MSNM.":</b></td><td bgcolor=\"$bgcolor3\">".mxPrepareToDisplay($uinfo['user_msnm'])."</td></tr>\n";
if (!empty($uinfo['user_from'])) echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>"._LOCATION.":</b></td><td bgcolor=\"$bgcolor3\">".mxPrepareToDisplay($uinfo['user_from'])."</td></tr>\n";
if (!empty($uinfo['user_occ'])) echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>"._OCCUPATION.":</b></td><td bgcolor=\"$bgcolor3\">".mxPrepareToDisplay($uinfo['user_occ'])."</td></tr>\n";
if (!empty($uinfo['user_intrest'])) echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>"._INTERESTS.":</b></td><td bgcolor=\"$bgcolor3\">".mxPrepareToDisplay($uinfo['user_intrest'])."</td></tr>\n";
if (!empty($uinfo['user_sig'])) echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>"._SIGNATURE.":</b></td><td bgcolor=\"$bgcolor3\">".$uinfo['user_sig']."</td></tr>\n";
if (!empty($uinfo['bio'])) echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>"._EXTRAINFO.":</b></td><td bgcolor=\"$bgcolor3\">".mxNL2BR(mxPrepareToHTMLDisplay($uinfo['bio']))."</td></tr>\n";
if ($showall) echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>"._NEWSLETTER.":</b></td><td bgcolor=\"$bgcolor3\">".$uinfo['newsletter']." *</td></tr>\n";
if ($uinfo['hasuserpoints']){
echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>"._GRANKS.":</b></td><td bgcolor=\"$bgcolor3\">".$uinfo['hasuserpoints']." <span class=\"tiny\">".$uinfo['userpointsfaq']."</span></td></tr>\n";
}
if ($privmsgactive && $istheuser) {
echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>"._YA_BWOPMSG.":</b></td><td bgcolor=\"$bgcolor3\">".$uinfo['contpm']."</td></tr>\n";
}
if ($gbactiv && $uinfo['gbnewentries'] && $istheuser){ # falls gaestebuch vorhanden und der User selbst
echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>"._GUESTBOOKVIEW.":</b></td><td bgcolor=\"$bgcolor3\"><b>".$uinfo['gbnewentries']."</b> "._YA_BWOPMSGUNREAD." *</td></tr>\n";
}
echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>"._USERSTATUS.":</b></td><td bgcolor=\"$bgcolor3\"><b>".$uinfo['online']."</b></td></tr>\n";
if (!empty($uinfo['lastonline'])) echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>"._YA_LASTONLINE.":</b></td><td bgcolor=\"$bgcolor3\">".$uinfo['lastonline']."</td></tr>\n";
if (!empty($uinfo['usergroup'])) echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>"._YA_INGROUP.":</b></td><td bgcolor=\"$bgcolor3\">".$uinfo['usergroup']."</td></tr>\n";
echo "</table>";
if ($istheuser) {
echo "<br>* "._YA_ONLYYOUSEE."!<br>";
}
$clickuser = sql_query("SELECT user_click FROM ".$user_prefix."_users WHERE uid=".$uinfo['uid']." LIMIT 1");
$click = sql_fetch_array($clickuser);
echo "<center><strong>".$click[0]."</strong> Profilaufruf(e)<br /><br />\n";
if (mxIsAdmin()) {
echo "<br>[ <a href=\"admin.php?op=modifyUser&chng_uid=".$uinfo["uid"]."\">"._EDITUSER."</a> ]<br>";
}
echo "</font>";
echo "</center>";
CloseTable();
}
if (function_exists('viewuserinfo_option_2')) {
viewuserinfo_option_2($uinfo);
}
else {
// Usergaestebuch
// Nickpage
if (is_active("Nickpage")) {
/* Wenn Nickpagemodul AKTIV ...> Subroutine (sonst weiter in der Userinfo) */
$selnpdata = mysql_query("select np_urlname, np_status from ".$prefix."_mynp_data where npuid='$uinfo[uid]'");
list($np_urlname, $np_status) = mysql_fetch_row($selnpdata);
if ($np_urlname != "" && $np_status == 1) {
/* Wenn der User eine Page hat ...> weiter (sonst nichts machen) */
OpenTable();
echo "<center>";
echo "<a href=\"modules.php?name=Nickpage&file=nickpage&nick=$np_urlname\"><img src=\"images/menu/nickpage.gif\" border=\"0\"></a><br>";
echo "[ <a href=\"modules.php?name=Nickpage&file=nickpage&nick=$np_urlname\">Meine Nickpage ansehen</a> ]";
echo "</center>";
CloseTable();
}
/* Ende Link-Ausgabe */
}
/* Ende Nickpage - Routine */
if ($gbactiv && !$istheuser){
echo "<br>";
OpenTable();
echo "<center>";
echo "<a href=\"modules.php?name=UserGuest&op=view&touser=".$uinfo['uname']."\" alt=\"".$uinfo['uname'].""._GUESTBOOKPRIVMSG2."\" title=\"".$uinfo['uname'].""._GUESTBOOKPRIVMSG2."\"><img src=\"images/menu/guestbook.gif\" border=\"0\"></a><br>";
echo "[ <a href=\"modules.php?name=UserGuest&op=view&touser=".$uinfo['uname']."\">".$uinfo['uname'].""._GUESTBOOKPRIVMSG2."</a> ]";
echo "</center>";
CloseTable();
}
if (mxModuleAllowed("User_Fotoalbum") && !$istheuser){ # falls User Fotoalbum Modul vorhanden
echo "<br>";
OpenTable();
echo "<center>";
echo "<a href=\"modules.php?name=User_Fotoalbum&op=fotoview&uname=".$uinfo['uname']."\" alt=\"".$uinfo['uname'].""._FOTOALBUM."\" title=\"".$uinfo['uname'].""._GUESTBOOKPRIVMSG2."\"><img src=\"images/menu/fotoalbum.gif\" border=\"0\"></a><br>";
echo "[ <a href=\"modules.php?name=User_Fotoalbum&op=fotoview&uname=".$uinfo['uname']."\">".$uinfo['uname'].""._FOTOALBUM."</a> ]";
echo "</center>";
CloseTable();
}
if (mxModuleAllowed("JSM_Friendlist") && !$istheuser){
echo "<br>";
OpenTable();
echo "<center>";
echo "<a href=\"modules.php?name=JSM_friendlist&op=addfriends&friend=".$uinfo['uname']."\"><img src=\"images/menu/freunde.gif\" border=\"0\"></a><br>";
echo "<center>[ <a href=\"modules.php?name=JSM_friendlist&op=addfriends&friend=".$uinfo['uname']."\">".$uinfo['uname']." zur Freundesliste hinzufügen</a> ]</center>";
echo "</center>";
CloseTable();
}
// private Nachrichten
if ($privmsgactive) {
if (!$istheuser){
echo "<br>";
OpenTable();
echo "<center><br>";
$xuname = (mxIsUser() || mxIsAdmin()) ? $uinfo['uname'] : "";
echo
"<form action=\"modules.php\" method=\"post\">"
."<input type=\"hidden\" name=\"name\" value=\"Private_Messages\">"
.""._USENDPRIVATEMSG.": <input type=\"text\" name=\"to_user\" size=\"20\" maxlength=\"25\" value=\"$xuname\"> "
."<input type=\"hidden\" name=\"op\" value=\"send_to\">"
."<input type=\"submit\" name=\"submita\" value=\"Go\">"
."</form></center>";
CloseTable();
}
}
// Listings
$result1 = sql_query("select tid, sid, subject from ".$prefix."_comments where name='".intval($uinfo['uid'])."' order by tid DESC limit 0,10");
$view1 = sql_num_rows($result1);
$result2 = sql_query("select sid, title from ${prefix}_stories where informant='".mxAddSlashesForSQL($uinfo['uname'])."' AND `time` <= now() order by time DESC limit 0,10");
$view2 = sql_num_rows($result2);
if (!empty($view1) || !empty($view2)){
echo "<br>";
OpenTable();
echo "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr>";
if ($view1){
echo "<td valign=\"top\"><b>"._LAST10COMMENTS." ".$uinfo['uname'].":</b><ul>";
while(list($tid, $sid, $subject) = sql_fetch_row($result1)) {
echo "<li><a href=\"modules.php?name=News&file=article&thold=-1&mode=flat&order=0&sid=$sid#$tid\">$subject</a><br>";
}
echo "</ul></td>";
}
if ($view2){
echo "<td valign=\"top\"><b>"._LAST10SUBMISSIONS." ".$uinfo['uname'].":</b><ul>";
while(list($sid, $title) = sql_fetch_row($result2)) {
echo "<li><a href=\"modules.php?name=News&file=article&sid=".$sid."\">".$title."</a><br>";
}
echo "</ul></td>";
}
echo "</tr></table>";
CloseTable();
}
}
include("footer.php");
}
#viewuserinfo($uinfo);
?>
So und dort, wo ausgegeben wird, was der betreffende User zuletzt geschrieben hat, soll vorher (von mir aus auch anschließend) der Code hin, wer das Profil zuletzt aufgerufen hat. Aber wenn ich den beispielsweise hinter das letzte CloseTable(); einfüge, erhalte ich die Fehlermeldung wie weiter oben beschrieben.
Ooops ... my fault :-[
Am Ende der vorletzten Ausgabezeile von Schritte 4
echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\" width=\"30%\"> </td><td bgcolor=\"$bgcolor3\" width=\"15%\">"
fehlt nen ;, korrekt müßte die also heissen:
echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\" width=\"30%\"> </td><td bgcolor=\"$bgcolor3\" width=\"15%\">\n";
Peinlich, peinlich ... hatte mir ne Textdatei mit der Anleitung getippert und wohl da den Fehler mit reinkopiert :-[
Fallste die Ausgabe als Unterstes haben möchtest, packste den Code besser da hin:
CloseTable();
}
}
# Hier den Code für die letzten Besucher einbauen
include("footer.php");
}
#viewuserinfo($uinfo);
?>
Mit der Korrektur sollte es dann funzen ;)
Jau, klappt. Ich danke! :)
No prob, it's my pleasure 8)
wie kann man das denn abändern, damit die letzten 10 user angezeigt werden, unabhängig, wann sie auf dem profil waren und dann aber immer nur jeder username einmal, auch wenn der user mehrmals auf dem profil war.
Nach langem testen ( ich arbeite mit der userfunktions_options ) funktioniert es soweit das in die Datenbank ind der user_visit Daten eingetragen werden . :thumbup:
Aber leider wird bei mir nichts angezeigt obwohl ich das das eingebaut habe :
#################################################
function VWGetSexusString($sexus = 0){
$sexus = (empty($sexus)) ? 0 : (int)$sexus;
switch ($sexus) {
case 0: $out = mxCreateImage("images/nogender.gif", _YA_MALE); break;
case 1: $out = mxCreateImage("images/f.gif", _YA_FEMALE); break;
case 2: $out = mxCreateImage("images/m.gif", _YA_MALE); break;
}
return $out;
}
function mxdynatime(){
$jetzt=time();
$today = date("Ymd", time());
$year = substr($today,0,4);
$month = substr($today,4,2);
$day = substr($today,6,2);
$endetag=mktime(23,59,59,$month,$day,$year);
$laufzeit=($endetag-$jetzt);
return $laufzeit;
}
ob_start();
$time = mxdynatime();
if(!empty($_COOKIE["Profilaufruf".$uname.""])) {
echo"";
}else {
$cookie = mxGetUserSession();
if ($cookie[1] != $uname) {
$deltime = time() - 60*60*24*2;
sql_query("DELETE FROM ".$user_prefix."_users_visit WHERE time < '$deltime'");
sql_query("UPDATE ".$user_prefix."_users SET user_click=user_click+1 where uname='$uname'");
sql_query("INSERT INTO ".$user_prefix."_users_visit (uid, vuid, time) VALUES ('".$uinfo['uid']."', '".$cookie[0]."', '".time()."')");
}
setcookie("Profilaufruf".$uname."","Profilaufruf",time()+$time);
}
was kann da noch sein ?
Fehlermeldungen sind keine :-\
Da fehlt der ausgabe code
Ich Depp ::)
Habe ich vergessen zum reinschreiben , den habe ich auch eingefügt :
OpenTable();
echo "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"3\" bgcolor=\"$bgcolor1\">\n";
$visituser = sql_query("SELECT uid, vuid, time FROM ".$user_prefix."_users_visit WHERE uid=".$uinfo['uid']." ORDER BY time DESC LIMIT 10");
if ($click[0] != 0){
echo"<tr valign=\"top\"><td bgcolor=\"$bgcolor2\" width=\"30%\"><b>Die letzten 10 Besucher:</b></td>\n";
echo "<td bgcolor=\"$bgcolor3\"> </td><td bgcolor=\"$bgcolor3\"> </td>\n";
while($visit = sql_fetch_array($visituser)){
$sqluser = sql_fetch_array(sql_query("SELECT * FROM ".$user_prefix."_users WHERE uid=".$visit['vuid'].""));
$visit['time'] = date ("d.m.Y H:i", $visit['time']);
if (!empty($sqluser['uname'])){
echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\" width=\"30%\"> </td><td bgcolor=\"$bgcolor3\" width=\"15%\">\n";
echo "".VWGetSexusString($sqluser['user_sexus'])."<a href=\"modules.php?name=Userinfo&uname=".$sqluser['uname']."\">".$sqluser['uname']."</a></td>\n";
echo "<td bgcolor=\"$bgcolor3\">".$visit['time']."</td></tr>\n";
}else{
echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\" width=\"30%\"> </td><td bgcolor=\"$bgcolor3\" width=\"15%\">\n";
echo "".VWGetSexusString($sqluser['user_sexus'])." Gast</td><td bgcolor=\"$bgcolor3\">".$visit['time']."</td></tr>\n";
}
}
}
echo "</table>";
CloseTable();
@ NeMeSiSX2LC , hast mal wieder lust meine userfunktions_options Anzusehen ?
Is ja nicht das erste mal ::)
in den globals an anfang der function steht auch $user_prefix mit drin??
ja , steht drin :(
hast pm ;D
Edit ***
sollte nicht in der Datenbank bei user_visit in uid was drinstehen , da steht bei mir nur 0 :
id uid vuid time
Ändern Löschen 5 0 4 1111759372
Ändern Löschen 6 0 4 1111759463
Ändern Löschen 7 0 4 1111759471
Ändern Löschen 8 0 4 1111759622
Ändern Löschen 9 0 476 1111759796
Ändern Löschen 10 0 0 1111760825
Ändern Löschen 11 0 476 1111765860
Ändern Löschen 12 0 4 1111767899
Ändern Löschen 13 0 0 1111769819
Ändern Löschen 14 0 4 1111770064
Ändern Löschen 15 0 4 1111770070
Ändern Löschen 16 0 0 1111772646
Ändern Löschen 17 0 569 1111772774
Ändern Löschen 18 0 2 1111772801
Ändern Löschen 19 0 569 1111772830
Ändern Löschen 20 0 569 1111772847
Ändern Löschen 21 0 4 1111774041
Wenn nen Gast ein Profil aufgerufen hat, dann steht da ne "0" drin.
Äh halt warum lasst ihr überhaupt zu das gäste da rein kommen?? regelt doch mit mxIsUser() das nur Mitglieder da drin sind.
Das mit den Gästen macht nur dann sinn wenn ihr die Profilaufrufe auch über diese Tabelle errechnen wollt.
Da muß ich NeMeSiSX2Lc recht geben. Die Gäste sind in dieser Liste nicht sonderlich interessant.
Wie würde der Code dann lauten?
ich denke mal der code müsste so aussehen:
if (mxIsUser()) {
sql_query("INSERT INTO gothic_users_visit (uid, vuid, time) VALUES ('".$uinfo['uid']."', '".$cookie[0]."', '".time()."')");
}
es wird also nur ein eintrag in der datenbank gemacht, wenn der besucher ein mitglied ist, bin mir aber mit dem funktionsnamen nicht ganz sicher
Reicht es auch, wenn ich diese Zeilen aus dem Code entferne:
else{
echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor3\" width=\"15%\">";
echo "".VWGetSexusString($sqluser['user_sexus'])." Gast</td><td bgcolor=\"$bgcolor3\">".$visit['time']."</td></tr>\n";
}?
Lui das von Musicman ist genau die richtig lösung
Und wo muß ich das dann umändern bzw. einfügen?
Muß ich das:
sql_query("INSERT INTO ".$user_prefix."_users_visit (uid, vuid, time) VALUES ('".$uinfo['uid']."', '".$cookie[0]."', '".time()."')");
durch das:
if (mxIsUser()) {
sql_query("INSERT INTO gothic_users_visit (uid, vuid, time) VALUES ('".$uinfo['uid']."', '".$cookie[0]."', '".time()."')");
}
ersetzten?
jupps genau
Hallo Jungs und Mädels... wenn ich das hier alles so lese dann verssteht einer der kein eingefleischter Coder ist nur noch Bahnhof ???
Wenn ich mir hier mal alle Beiträge durchlese dann kommen wir von einem Code in den anderen und ich muss ehrlich sagen ich weiß persönlich nicht welchen Code ich jetzt einbauen soll und wo!!!
Wäre vielleicht einer so lieb von den Coder Gurus einfach mal einen schönen Eintrag zu schreiben, schön mit Punkt 1 - Punkt 2 - Punkt 3 etc. damit es auch die User verstehen die jede Zeile im MX auswendig kennen ;)
wäre super nett wenn sich einer das mal zur Aufgabe nehmen würde da ich mir denke das dann wohl in naher Zukunft viele viele Fragen ausbleiben von Usern die diesen Beitrag in die Finger bekommen oder nach dieser Änderung suchen.
Ich hoffe es findet sich jemand... vielen Dank schon mal im voraus..
ZitatIch hoffe es findet sich jemand... vielen Dank schon mal im voraus..
Währe echt super wenn es nochmal jemand ausführlich erklärt wo mann was einbauen muß .
Bei mir funzt des einfach ned :-[
Seitdem ich die Änderung von Musicman vorgenommen habe werden die Besucher nicht mehr aufgezählt.
So jetzt habe ich das auch mal selber probiert und ich muss sagen die Antwort #64 geht ohne probleme!!! Erstmal Respekt!!! ;D
Das einzige was ich vielleicht ändern würde wäre wohl die Reloadsperre oder IPSperre.
So wie ich das jetzt rauslese wird jeder User nur alle 24 Stunden einmal angezeigt wenn er die selbe IP hat.
Wechselt die IP wird er auch öfters angezeigt.
Kann ich diese IP Sperre irgendwie rausnehmen oder verkürzen?? ich denke mal das 20 - 30 Minunten reichen würden...
Wer weiß was ich verändern muss am Code bei Antwort #64-
ich hätte auch mal eine frage....
bei mir funktioniert das mit den letzten besuchern im profil sehr gut....
...ich hätte gerne das über der seite angezeigt wird,wer sich zuletzt das profil angeschaut hat,wenn mann als user eingeloggt ist;)
muss doch so ähnlich laufen....wo müsste es eingebaut werden und wie würde es aussehen?
kann mir hier jemand helfen?
ich möchte nicht die letzten besucher im profil angezeigt haben sondern über der seite und nur der letzte besucher.
wo muss ich dann den code einbauen?
Sodele, nach längerer Abstinenz schau ich auch mal wieder rein :)
Zitat von: Liu-Kang in 31 März 2005, 11:18:31
Seitdem ich die Änderung von Musicman vorgenommen habe werden die Besucher nicht mehr aufgezählt.
Da Musicman nen eigenen, eingecodeten, Prefix (gothic) verwendet, kann es bei Dir auch nich gehn.
Folgendes wäre zu ändern, damit Profilaufrufe durch nen Gast nicht in die DB geschrieben werden:
Altsql_query("INSERT INTO ".$user_prefix."_users_visit (uid, vuid, time) VALUES ('".$uinfo['uid']."', '".$cookie[0]."', '".time()."')");Neuif (mxIsUser()) {
sql_query("INSERT INTO ".$user_prefix."_users_visit (uid, vuid, time) VALUES ('".$uinfo['uid']."', '".$cookie[0]."', '".time()."')");
}Soll der Seitenaufrufzähler ebenfalls durch Gäste
nicht hochgezählt werden, dann bitte so ändern:
Altsql_query("UPDATE ".$user_prefix."_users SET user_click=user_click+1 where uname='$uname'");
sql_query("INSERT INTO ".$user_prefix."_users_visit (uid, vuid, time) VALUES ('".$uinfo['uid']."', '".$cookie[0]."', '".time()."')");Neuif (mxIsUser()) {
sql_query("UPDATE ".$user_prefix."_users SET user_click=user_click+1 where uname='$uname'");
sql_query("INSERT INTO ".$user_prefix."_users_visit (uid, vuid, time) VALUES ('".$uinfo['uid']."', '".$cookie[0]."', '".time()."')");
}Desweiteren sind die folgenden Zeilen, wie bereits von Dir richtig vermutet, aus dem Ausgabeteil (Schritt 4 aus Anwort #64) zu entfernen:
else{
echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor3\" width=\"15%\">";
echo "".VWGetSexusString($sqluser['user_sexus'])." Gast</td><td bgcolor=\"$bgcolor3\">".$visit['time']."</td></tr>\n";
}Falls ich mit meiner Antwort für Deinen Fall zu spät bin, so hilft er hoffentlich andern. ;)
Zitat von: Energy-drink in 07 April 2005, 08:27:07
So jetzt habe ich das auch mal selber probiert und ich muss sagen die Antwort #64 geht ohne probleme!!! Erstmal Respekt!!! ;D
Danke , danke ... aber der Hauptdank sollte NeMeSiSX2LC gelten, denn der eigentliche Code stammt schliesslich von ihm. Ich hatte mich nur irgendwann mal aufgerafft, nachdem ich ihn bei uns erfolgreich implementiert hatte und hier einige nach einer "Einbauanleitung" fragten, diese halt zu posten. ;)
Zitat von: Energy-drink in 07 April 2005, 08:27:07
Das einzige was ich vielleicht ändern würde wäre wohl die Reloadsperre oder IPSperre.
So wie ich das jetzt rauslese wird jeder User nur alle 24 Stunden einmal angezeigt wenn er die selbe IP hat.
Wechselt die IP wird er auch öfters angezeigt.
Kann ich diese IP Sperre irgendwie rausnehmen oder verkürzen?? ich denke mal das 20 - 30 Minunten reichen würden...
Wer weiß was ich verändern muss am Code bei Antwort #64-
Fast richtig erkannt ;)
Die Sperre gilt für den restlichen Tag, sprich bis 23:59:59 Uhr, d.h. nen Profilaufruf durch einen User wird pro Tag nur einmal erfasst.
Wenn Du die Zeit z.B. auf 30 Minuten reduzieren willst, änder einfach folgendes:
Altsetcookie("Profilaufruf".$uname."","Profilaufruf",time()+$time);Neusetcookie("Profilaufruf".$uname."","Profilaufruf",time()+1800);Für ne Stunde einfach
3600 statt
1800 einsetzen - ergo einfach die Zeit in Sekunden angeben ;)
Wer die Cookiesperre ganz weg haben will, ändert den Code wie folgt:
Alt if(!empty($_COOKIE["Profilaufruf".$uname.""])) {
echo"";
}else {
$cookie = mxGetUserSession();
if ($cookie[1] != $uname) {
$deltime = time() - 60*60*24*2;
sql_query("DELETE FROM ".$user_prefix."_users_visit WHERE time < '$deltime'");
sql_query("UPDATE ".$user_prefix."_users SET user_click=user_click+1 where uname='$uname'");
sql_query("INSERT INTO ".$user_prefix."_users_visit (uid, vuid, time) VALUES ('".$uinfo['uid']."', '".$cookie[0]."', '".time()."')");
}
setcookie("Profilaufruf".$uname."","Profilaufruf",time()+$time);Neu $cookie = mxGetUserSession();
if ($cookie[1] != $uname) {
$deltime = time() - 60*60*24*2;
sql_query("DELETE FROM ".$user_prefix."_users_visit WHERE time < '$deltime'");
sql_query("UPDATE ".$user_prefix."_users SET user_click=user_click+1 where uname='$uname'");
sql_query("INSERT INTO ".$user_prefix."_users_visit (uid, vuid, time) VALUES ('".$uinfo['uid']."', '".$cookie[0]."', '".time()."')");
}Ich hoffe, es hat gehelft ;)
Zitat von: gecealem in 07 April 2005, 18:33:14
...ich hätte gerne das über der seite angezeigt wird,wer sich zuletzt das profil angeschaut hat,wenn mann als user eingeloggt ist;)
muss doch so ähnlich laufen....wo müsste es eingebaut werden und wie würde es aussehen?
Bau den Ausgabeteil (Schritt 4 aus Antwort #64) "einfach" zwischen
OpenTable();
echo "<center>";
echo "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" bgcolor=\"$bgcolor1\">\n";
echo"<tr><td valign=\"top\">";
#### Beginn Informationen ober Tabelle links #######und
echo "<table border=\"0\" cellspacing=\"1\" cellpadding=\"3\" bgcolor=\"$bgcolor1\" width=\"100%\">\n";
echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\" width=\"35%\"><b>"._NICKNAME.":</b></td><td bgcolor=\"$bgcolor3\" valign=\"top\">\n";
echo "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr>\n";
echo "<td valign=\"top\"><b>".mxPrepareToDisplay($uname)."</b></td>\n";
echo "<td> ".$online."</td>\n";
echo "</tr></table></td></tr>\n";
if (!empty($lastonline)) echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>"._YA_LASTONLINE.":</b></td><td bgcolor=\"$bgcolor3\">".$lastonline."</td></tr>\n";ein.
Zitat von: smartmusic in 14 April 2005, 11:20:12
ich möchte nicht die letzten besucher im profil angezeigt haben sondern über der seite und nur der letzte besucher.
wo muss ich dann den code einbauen?
"Einbauort" siehe vorherigen Antwort.
Und wenns nur der letzte Besucher sein soll, änder einfach folgendes:
Alt$visituser = sql_query("SELECT uid, vuid, time FROM ".$user_prefix."_users_visit WHERE uid=".$uinfo['uid']." ORDER BY time DESC LIMIT 10");Neu$visituser = sql_query("SELECT uid, vuid, time FROM ".$user_prefix."_users_visit WHERE uid=".$uinfo['uid']." ORDER BY time DESC LIMIT 1");Sprich, einfach das LIMIT in der DB-Abfrage auf die Anzahl ändern, die angezeigt werden soll.
Hm... ich muß den Thread nochmal ausgraben.
Einige User haben sich bei mir beschwert, daß zwar jetzt nur die Mitglieder angezeigt werden, dafür aber auch sie selber wenn sie auf ihren eigenen Account gehen.
Sprich: Es sollen nur die Mitglieder angezeigt werden die den Account besuchen und nicht auch das Mitglied, dem der Account gehört.
Viele Grüße
Zitat von: Liu-Kang in 04 Juni 2005, 17:10:10
Einige User haben sich bei mir beschwert, daß zwar jetzt nur die Mitglieder angezeigt werden, dafür aber auch sie selber wenn sie auf ihren eigenen Account gehen.
Sprich: Es sollen nur die Mitglieder angezeigt werden die den Account besuchen und nicht auch das Mitglied, dem der Account gehört.
Hmmm... eigentlich sollte genau das
$cookie = mxGetUserSession();
if ($cookie[1] != $uname) {
...
}
dafür sorgen, dass Ausrufe des eigenen Profils
nicht mitgezählt und angezeigt werden.
Hm... irgendwie will das nicht so recht hinhauen. Anscheinend mache ich da irgendetwas falsch.
Kann ich Dir meine mx_userfunctions_options.php mal zusenden?
Ok der Ideen Gründen Meldet sich auch mal. ;) Zeig mir mal den code da hupt was rum das sicher ;)
OK, hier mal ein bisschen Code mit noch ein bisschen drumherum ;)!
OpenTable();
echo "<table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"3\" bgcolor=\"$bgcolor1\" style=\"border-width:thin; border-color:$bgcolor2; border-style:double; padding:0px;\">\n";
if (!empty($user_aim)) echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>"._AIM."</b></td><td bgcolor=\"$bgcolor3\">".mxPrepareToDisplay($user_aim)."</td></tr>\n";
if (!empty($user_yim)) echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>"._YIM.":</b></td><td bgcolor=\"$bgcolor3\">".mxPrepareToDisplay($user_yim)."</td></tr>\n";
if (!empty($user_msnm)) echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>"._MSNM.":</b></td><td bgcolor=\"$bgcolor3\">".mxPrepareToDisplay($user_msnm)."</td></tr>\n";
if (!empty($user_skype)) echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\"><b>Skype:</b></td><td bgcolor=\"$bgcolor3\">".mxPrepareToDisplay($user_skype)."</td></tr>\n";
echo "</table>";
CloseTable();
if ($istheuser) {
echo "<br>";
OpenTable();
echo "<table width=\"100%\" border=\"0\" cellspacing=\"1\" cellpadding=\"3\" bgcolor=\"$bgcolor1\">\n";
$visituser = sql_query("SELECT uid, vuid, time FROM ".$user_prefix."_users_visit WHERE uid=".$uinfo['uid']." ORDER BY time DESC LIMIT 10");
if ($click[0] != 0){
echo"<tr valign=\"top\"><td bgcolor=\"$bgcolor2\" width=\"30%\"><b>Die letzten 10 Besucher: *</b></td>\n";
echo "<td bgcolor=\"$bgcolor3\"> </td><td bgcolor=\"$bgcolor3\"> </td>\n";
$cookie = mxGetUserSession();
if ($cookie[1] != $uname) {
$deltime = time() - 60*60*24*2;
sql_query("DELETE FROM ".$user_prefix."_users_visit WHERE time < '$deltime'");
sql_query("UPDATE ".$user_prefix."_users SET user_click=user_click+1 where uname='$uname'");
sql_query("INSERT INTO ".$user_prefix."_users_visit (uid, vuid, time) VALUES ('".$uinfo['uid']."', '".$cookie[0]."', '".time()."')");
}
while($visit = sql_fetch_array($visituser)){
$sqluser = sql_fetch_array(sql_query("SELECT * FROM ".$user_prefix."_users WHERE uid=".$visit['vuid'].""));
$visit['time'] = date ("d.m.Y H:i", $visit['time']);
if (!empty($sqluser['uname'])){
echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor3\" width=\"25%\">";
echo "".VWGetSexusString($sqluser['user_sexus'])." <a href=\"modules.php?name=Userinfo&uname=".$sqluser['uname']."\">".$sqluser['uname']."</a></td>";
echo "<td bgcolor=\"$bgcolor3\">".$visit['time']."</td></tr>\n";
}
}
}
}
echo "</table>";
CloseTable();
if ($istheuser) {
echo "<br>* "._YA_ONLYYOUSEE."!<br>";
}
echo "</center>";
}
#################################################
function viewuserinfo_option_2($uinfo) {
Versuchs mal spasses Halber mit if ($cookie[0] != $uinfo['uid']) {
So steht es bei mir im Code und läuft....
Hmm... bringt auch nichts.
oder mit if (!$istheuser) {
OK! Jetzt scheints zu funktionieren.
Vielen Dank :)!