pragmaMx Support Forum

pragmaMx => Individuelle Anpassungen => Thema gestartet von: smartmusic in 13 Mai 2004, 14:53:35

Titel: letzte besucher
Beitrag von: smartmusic in 13 Mai 2004, 14:53:35
hallo,
ich suche ein modul das den usern ihre letzten profil besucher anzeigt...
wer kennt sowas oder kann es programmieren?

Titel: Re: letzte besucher
Beitrag von: wob in 18 August 2004, 11:34:13
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  ;)
Titel: Re: letzte besucher
Beitrag von: NeMeSiSX2LC in 18 August 2004, 11:39:11
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 :(
Titel: Re: letzte besucher
Beitrag von: NeMeSiSX2LC in 18 August 2004, 11:42:51
Weil sonst würde die DB innerhalb kurzer Zeit total überlaufen
Titel: Re: letzte besucher
Beitrag von: wob in 18 August 2004, 11:48:17
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 .= "";
Titel: Re: letzte besucher
Beitrag von: L1nuX3r in 18 August 2004, 11:51:36
machs doch noch einfacher: Zeige nur die letzten 10 oder 15 Besucher und lösche alle anderen wieder!
Titel: Re: letzte besucher
Beitrag von: NeMeSiSX2LC in 18 August 2004, 11:53:28
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 ;)
Titel: Re: letzte besucher
Beitrag von: wob in 18 August 2004, 11:55:12
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
Titel: Re: letzte besucher
Beitrag von: L1nuX3r in 18 August 2004, 11:56:36
hmm... ich finds so http://www.fs-location.de/index.php?section=profile&id=1 am einfachsten... also da unten letze  beuscher.
Titel: Re: letzte besucher
Beitrag von: NeMeSiSX2LC in 18 August 2004, 11:58:39
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 ;)
Titel: Re: letzte besucher
Beitrag von: wob in 18 August 2004, 12:01:10
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
Titel: Re: letzte besucher
Beitrag von: Observer in 18 August 2004, 12:33:17
Muss der letzte Besucher nachts dann auch das Licht ausmachen?
Titel: Re: letzte besucher
Beitrag von: wob in 18 August 2004, 12:41:08
ZitatMuss der letzte Besucher nachts dann auch das Licht ausmachen?

Und Morgens das Licht wieder an machen  :D


Mfg Rene
Titel: Re: letzte besucher
Beitrag von: NeMeSiSX2LC in 18 August 2004, 17:48:42
Ich wart mal bis jubi was schreib der Sag mir bestimmt die lösung für das 48h prob ;)
Titel: Re: letzte besucher
Beitrag von: jubilee in 18 August 2004, 19:35:39
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
Titel: Re: letzte besucher
Beitrag von: NeMeSiSX2LC in 19 August 2004, 07:16:46
Jupps es wird dann time() mit eingefügt.
Titel: Re: letzte besucher
Beitrag von: Musicman75 in 19 August 2004, 22:42:19
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?

Titel: Re: letzte besucher
Beitrag von: NeMeSiSX2LC in 21 August 2004, 01:56:56
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]
Titel: Re: letzte besucher
Beitrag von: NeMeSiSX2LC in 21 August 2004, 02:00:37
War jetzt 30 miun arbeit! Da wird mir doch keiner weis machen wohlen das das wirklich so schwer ist!
Titel: Re: letzte besucher
Beitrag von: wob in 21 August 2004, 08:19:29
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


Titel: Re: letzte besucher
Beitrag von: NeMeSiSX2LC in 21 August 2004, 08:29:58
 ##################################################################################
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!
Titel: Re: letzte besucher
Beitrag von: smartmusic in 22 September 2004, 17:43:16
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);

    }?>


 
Titel: Re: letzte besucher
Beitrag von: NeMeSiSX2LC in 22 September 2004, 20:36:05
Irgendwie schon oder wie willste sonst die aufrufe zählen lassen? ;)
Titel: Re: letzte besucher
Beitrag von: smartmusic in 22 September 2004, 21:58:16
how can you make,that only 10 or 15 are visited?

Titel: Re: letzte besucher
Beitrag von: Irgendwas in 23 September 2004, 01:28:29
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
Titel: Re: letzte besucher
Beitrag von: NeMeSiSX2LC in 23 September 2004, 07:46:19
Arbeitet die view.php nicht mit $out?? für die ausgabe?
Titel: Re: letzte besucher
Beitrag von: smartmusic in 23 September 2004, 11:36:34
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
Titel: Re: letzte besucher
Beitrag von: NeMeSiSX2LC in 23 September 2004, 11:38:54
Hm UhrZeit ka und guck dir mal die DB abfrage genau an das bringt einem förmlich an wie man es limitiert
Titel: Re: letzte besucher
Beitrag von: smartmusic in 23 September 2004, 11:42:07
ich habe sie mir schon angesehen...aber ich weiss nicht wo.... :(
Titel: Re: letzte besucher
Beitrag von: NeMeSiSX2LC in 23 September 2004, 11:45:18
Man beachte das AND time >= und das ORDER BY

Also das AND Time >=$gestern muss weg und hinter DESC ein LIMIT 10

 ;)
Titel: Re: letzte besucher
Beitrag von: smartmusic in 23 September 2004, 11:50:28
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]
Titel: Re: letzte besucher
Beitrag von: NeMeSiSX2LC in 23 September 2004, 12:06:54
na die variable gestern brauchste ja jetzt nicht mehr
Titel: Re: letzte besucher
Beitrag von: Irgendwas in 23 September 2004, 12:08:54
Könnte man das jetzt nochmal bitte für dumme zusammenfassen  :redhead: Schritt 1,2,3,4,5 Wo gehört was hin  :redhead:
Titel: Re: letzte besucher
Beitrag von: NeMeSiSX2LC in 23 September 2004, 18:48:59
Ja ich machs nochmal neu zusammen ok ;)
Titel: Re: letzte besucher
Beitrag von: Homicide in 29 September 2004, 00:02:42
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]
Titel: Re: letzte besucher
Beitrag von: NeMeSiSX2LC in 29 September 2004, 00:04:46
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.
Titel: Re: letzte besucher
Beitrag von: Homicide in 29 September 2004, 00:09:37
*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 :)


Titel: Re: letzte besucher
Beitrag von: NeMeSiSX2LC in 29 September 2004, 00:35:29
obs das wirklich bringt??
Titel: Re: letzte besucher
Beitrag von: xyox2 in 29 September 2004, 00:44:53
AUFREG  :wall:
Titel: Re: letzte besucher
Beitrag von: NeMeSiSX2LC in 29 September 2004, 00:46:10
lol ;)
Titel: Re: letzte besucher
Beitrag von: Homicide in 29 September 2004, 09:05:52
klar bringts das, ich krieg ja soo wenig PMs
und wenn eine kommt dann mit diesem unverständlichen Wunsch  :crash:
Titel: Re: letzte besucher
Beitrag von: NeMeSiSX2LC in 29 September 2004, 09:59:22
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 ;)
Titel: Re: letzte besucher
Beitrag von: Irgendwas in 29 September 2004, 13:15:57
Und ich find die Idee auch Super  :D
Titel: Re: letzte besucher
Beitrag von: Homicide in 29 September 2004, 14:37:49
NeMeSiSX2LC
du wirst es nicht glauben, aber genau von denen kam der Wunsch :)
für mich noch unverständlicher :)
Titel: Re: letzte besucher
Beitrag von: Musicman75 in 21 Oktober 2004, 14:28:51
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.
Titel: Re: letzte besucher
Beitrag von: Musicman75 in 21 Oktober 2004, 23:48:01
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
Titel: Re: letzte besucher
Beitrag von: Homicide in 22 Oktober 2004, 01:02:11
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:
Titel: Re: letzte besucher
Beitrag von: Musicman75 in 26 Dezember 2004, 20:58:49
ist das thema eingeschlafen?

Ich habs gerade nochmal versucht, aber wieder ohne erfolg.
Titel: Re: letzte besucher
Beitrag von: NeMeSiSX2LC in 27 Dezember 2004, 00:14:25
Ne einschlafen tut bei mir nix bloss ich selbst machmal :)
Titel: Re: letzte besucher
Beitrag von: Musicman75 in 27 Dezember 2004, 01:47:20
;-) das tut jeder mensch ja mal.
Titel: Re: letzte besucher
Beitrag von: tuningcar in 07 Januar 2005, 21:55:56
ZitatJa ich machs nochmal neu zusammen ok

Wollt mal nachfragen , ob es schon was neues gibt ?  ;D
Titel: Re: letzte besucher
Beitrag von: NeMeSiSX2LC in 08 Januar 2005, 10:33:20
noch nicht wirklich
Titel: Re: letzte besucher
Beitrag von: BlackBoSs in 10 Januar 2005, 08:20:34
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
Titel: Re: letzte besucher
Beitrag von: Musicman75 in 17 März 2005, 17:57:38
?? 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
Titel: Re: letzte besucher
Beitrag von: NeMeSiSX2LC in 17 März 2005, 18:09:06
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.
Titel: Re: letzte besucher
Beitrag von: tuningcar in 17 März 2005, 18:10:03
Ich würde es einfach haben wollen , so wie hier -->    http://www0.pafnet.de/user.php?uid=237

Nix mit pm oder sonstiges .
Titel: Re: letzte besucher
Beitrag 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.
Titel: Re: letzte besucher
Beitrag von: JoergK in 18 März 2005, 01:51:58
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.

Titel: Re: letzte besucher
Beitrag von: NeMeSiSX2LC in 18 März 2005, 01:56:00
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 ;)
Titel: Re: letzte besucher
Beitrag von: tuningcar in 18 März 2005, 07:44:26
Könntet ihr mal erklären was ihr alles abgeändert habt ?

Danke  ;)
Titel: Re: letzte besucher
Beitrag von: smartmusic in 18 März 2005, 10:10:00
hallo,

wie wäre es denn wenn man es als kleinen block hätte mit biep wer sich gerade dein profil angesehen hat???
Titel: Re: letzte besucher
Beitrag von: JoergK in 18 März 2005, 13:00:15
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 ... ;)
Titel: Re: letzte besucher
Beitrag von: tuningcar in 18 März 2005, 18:55:04
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:
Titel: Re: letzte besucher
Beitrag von: JermaineBelgardio in 18 März 2005, 19:54:54
Ich hab da auch Interesse dran. :)
Titel: Re: letzte besucher
Beitrag von: JoergK in 19 März 2005, 01:10:53
Ok, Ihr hab's nich anders gewollt  ;D

Schritt 1 - Datenbank erweitern

ALTER TABLE `mx_users` ADD `user_click` BIGINT( 20 ) DEFAULT '0' NOT NULL;[/list]

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

////////////////////////// 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

 $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

 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\">&nbsp;</td><td bgcolor=\"$bgcolor3\">&nbsp;</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%\">&nbsp;</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%\">&nbsp;</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  ;)
Titel: Re: letzte besucher
Beitrag von: JermaineBelgardio in 19 März 2005, 09:46:49
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?
Titel: Re: letzte besucher
Beitrag von: JoergK in 20 März 2005, 10:27:25
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  ;)  )??
Titel: Re: letzte besucher
Beitrag von: JermaineBelgardio in 20 März 2005, 13:00:04
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()) ? 0;

$privmsgactive = (mxModuleAllowed("Private_Messages")) ? 0# feststellen ob pm-modul aktiv ist
$gbactiv = (mxModuleAllowed("UserGuest")) ? 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")) ? 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>&nbsp;<a href=\"modules.php?name=Private_Messages\">"._YA_BWOPMSGALL."</a>";
if($uinfo['countpmunread']){
$uinfo['contpm'] .= "</td><td>,&nbsp;</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>&nbsp;<b>"._YA_BWOPMSGUNREAD."</b></marquee></a>\n";
}
$uinfo['contpm'] .= "</td><td>&nbsp;&nbsp;*</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'])."&nbsp;".$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")) ? 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)) ? : (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']."&nbsp;, ".$uinfo['user_age']."&nbsp;"._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']." &nbsp;&nbsp;&nbsp;&nbsp;<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&amp;op=addfriends&amp;friend=".$uinfo['uname']."\"><img src=\"images/menu/freunde.gif\" border=\"0\"></a><br>";
echo "<center>[ <a href=\"modules.php?name=JSM_friendlist&amp;op=addfriends&amp;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\">&nbsp;&nbsp;"
    ."<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.
Titel: Re: letzte besucher
Beitrag von: JoergK in 20 März 2005, 13:41:06
Ooops ... my fault  :-[

Am Ende der vorletzten Ausgabezeile von Schritte 4
echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\" width=\"30%\">&nbsp;</td><td bgcolor=\"$bgcolor3\" width=\"15%\">"

fehlt nen ;, korrekt müßte die also heissen:
echo "<tr valign=\"top\"><td bgcolor=\"$bgcolor2\" width=\"30%\">&nbsp;</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  ;)
Titel: Re: letzte besucher
Beitrag von: JermaineBelgardio in 20 März 2005, 14:02:17
Jau, klappt. Ich danke! :)
Titel: Re: letzte besucher
Beitrag von: JoergK in 20 März 2005, 14:15:02
No prob, it's my pleasure  8)
Titel: Re: letzte besucher
Beitrag von: Musicman75 in 22 März 2005, 18:39:51
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.
Titel: Re: letzte besucher
Beitrag von: tuningcar in 25 März 2005, 17:33:19
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  :-\
Titel: Re: letzte besucher
Beitrag von: NeMeSiSX2LC in 25 März 2005, 17:52:14
Da fehlt der ausgabe code
Titel: Re: letzte besucher
Beitrag von: tuningcar in 25 März 2005, 18:00:34
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\">&nbsp;</td><td bgcolor=\"$bgcolor3\">&nbsp;</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%\">&nbsp;</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%\">&nbsp;</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   ::)
Titel: Re: letzte besucher
Beitrag von: NeMeSiSX2LC in 25 März 2005, 18:13:12
in den globals an anfang der function steht auch $user_prefix mit drin??
Titel: Re: letzte besucher
Beitrag von: tuningcar in 25 März 2005, 18:17:49
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
Titel: Re: letzte besucher
Beitrag von: JoergK in 26 März 2005, 01:00:44
Wenn nen Gast ein Profil aufgerufen hat, dann steht da ne "0" drin.
Titel: Re: letzte besucher
Beitrag von: NeMeSiSX2LC in 26 März 2005, 11:32:58
Ä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.
Titel: Re: letzte besucher
Beitrag von: Liu-Kang in 27 März 2005, 12:23:59
Da muß ich NeMeSiSX2Lc recht geben. Die Gäste sind in dieser Liste nicht sonderlich interessant.
Wie würde der Code dann lauten?
Titel: Re: letzte besucher
Beitrag von: Musicman75 in 27 März 2005, 13:22:55
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
Titel: Re: letzte besucher
Beitrag von: Liu-Kang in 27 März 2005, 14:19:54
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";
      }
?
Titel: Re: letzte besucher
Beitrag von: NeMeSiSX2LC in 27 März 2005, 15:30:28
Lui das von Musicman ist genau die richtig lösung
Titel: Re: letzte besucher
Beitrag von: Liu-Kang in 27 März 2005, 15:53:42
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?
Titel: Re: letzte besucher
Beitrag von: NeMeSiSX2LC in 27 März 2005, 16:00:27
jupps genau
Titel: Re: letzte besucher
Beitrag von: Energy-drink in 29 März 2005, 08:32:32
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..



Titel: Re: letzte besucher
Beitrag von: tuningcar in 30 März 2005, 22:05:43
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  :-[
Titel: Re: letzte besucher
Beitrag 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.
Titel: Re: letzte besucher
Beitrag 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

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-
Titel: Re: letzte besucher
Beitrag von: gecealem in 07 April 2005, 18:33:14
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?
Titel: Re: letzte besucher
Beitrag von: smartmusic in 14 April 2005, 11:20:12
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?
Titel: Re: letzte besucher
Beitrag von: JoergK in 23 April 2005, 20:01:30
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:

Alt
sql_query("INSERT INTO ".$user_prefix."_users_visit (uid, vuid, time) VALUES ('".$uinfo['uid']."', '".$cookie[0]."', '".time()."')");

Neu
if (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:

Alt
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()."')");


Neu
if (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.  ;)
Titel: Re: letzte besucher
Beitrag von: JoergK in 23 April 2005, 20:24:13
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:

Alt
setcookie("Profilaufruf".$uname."","Profilaufruf",time()+$time);

Neu
setcookie("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  ;)
Titel: Re: letzte besucher
Beitrag von: JoergK in 23 April 2005, 21:34:04
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>&nbsp;&nbsp;&nbsp;&nbsp;".$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.
Titel: Re: letzte besucher
Beitrag von: JoergK in 23 April 2005, 21:38:53
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.
Titel: Re: letzte besucher
Beitrag von: Liu-Kang in 04 Juni 2005, 17:10:10
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
Titel: Re: letzte besucher
Beitrag von: JoergK in 06 Juni 2005, 21:21:40
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.
Titel: Re: letzte besucher
Beitrag von: Liu-Kang in 07 Juni 2005, 12:51:27
Hm... irgendwie will das nicht so recht hinhauen. Anscheinend mache ich da irgendetwas falsch.
Kann ich Dir meine mx_userfunctions_options.php mal zusenden?
Titel: Re: letzte besucher
Beitrag von: NeMeSiSX2LC in 07 Juni 2005, 21:54:17
Ok der Ideen Gründen Meldet sich auch mal. ;) Zeig mir mal den code da hupt was rum das sicher ;)
Titel: Re: letzte besucher
Beitrag von: Liu-Kang in 08 Juni 2005, 10:40:08
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\">&nbsp;</td><td bgcolor=\"$bgcolor3\">&nbsp;</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'])."&nbsp;<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) {
Titel: Re: letzte besucher
Beitrag von: NeMeSiSX2LC in 08 Juni 2005, 11:02:14
Versuchs mal spasses Halber mit if ($cookie[0] != $uinfo['uid']) {

So steht es bei mir im Code und läuft....
Titel: Re: letzte besucher
Beitrag von: Liu-Kang in 08 Juni 2005, 11:19:06
Hmm... bringt auch nichts.
Titel: Re: letzte besucher
Beitrag von: NeMeSiSX2LC in 08 Juni 2005, 11:51:13
oder mit if (!$istheuser) {
Titel: Re: letzte besucher
Beitrag von: Liu-Kang in 08 Juni 2005, 13:46:38
OK! Jetzt scheints zu funktionieren.
Vielen Dank :)!