Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP] Zuletzt online (https://www.delphipraxis.net/104650-%5Bphp%5D-zuletzt-online.html)

MrSpock 8. Dez 2007 10:38


[PHP] Zuletzt online
 
Hallo,

ich habe ein Standard PHP Forum. Wir hier in der DP :dp: oder in anderen Foren gibt es ja eine umfangreiche Statistik mit Infos z.B. über:

Zitat:

angemeldet: xxx
xxx Mitglied in der DP)
Letzter Besuch: xxx
Dauer des letzten Besuches: xxx
Anzahl Besuche:
(seit xxx) xxx
Anzahl Seitenabrufe:
(seit xxx) xxx
Gibt es diese Info als Erweiterung zu PHP?

Matze 8. Dez 2007 10:44

Re: [PHP] Zuletzt online
 
Hi Albert,

wie wäre es mit Last Visit Hack?

Grüße

Edit: Ich habe es so aufgefasst, dass du eine phpBB-Weweiterung suchst.

MrSpock 8. Dez 2007 12:10

Re: [PHP] Zuletzt online
 
Hallo Matze,

danke für den guten Tip.

Habe den Hack jetzt installiert und er funktioniert auch.

Jetzt kann aber jeder die Statistik aufrufen, auch ein Gast. Ist das so gewollt oder kann man das leicht ändern? Im Admin Panel wird zumindest keine spezielle Option dafür angeboten. :gruebel:

Matze 8. Dez 2007 12:19

Re: [PHP] Zuletzt online
 
Hi,

falls man's im ACP nicht einstellen kann, genügt es, den Block, den nur registrierte Benutzer sehen dürfen, in

Code:
einzufassen. In der entsprechenden PHP-Datei könntest du zusätzlich auch noch den Code, der diese Anzeige ermittelt, durch ein "if" nur in dem Fall ausführen lassen, wenn man eingeloggt ist. Ich glaube, die if-Anweisung ist diese:

Code:
if ($userdata['session_logged_in'])
bin mir aber nicht mehr ganz sicher.

Grüße, Matze

MrSpock 8. Dez 2007 14:13

Re: [PHP] Zuletzt online
 
Hallo Matze,

danke für den Tip. Habe es jetzt zwar recht restriktiv eingerichtet, aber das ist mir so auch lieber. Gäste können jetzt gar nichts mehr sehen, außer dem Ameldebereich. :?

[edit]Hab es jetzt noch einmal so geändert, dass Gäste zwar die Namen unter "Wer ist online sehen können", aber beim Anklicken sehen sie nicht das Profile.[/edit]

Änderung in der profile.php:

Code:
if ( $mode == 'viewprofile' )
   {
      // profile nur bei Login anzeigen:
      if ($userdata['session_logged_in']) //diese if Abfrage hinzugefügt
      {
         include($phpbb_root_path . 'includes/usercp_viewprofile.'.$phpEx);
         exit;
      }
   }

Matze 8. Dez 2007 14:40

Re: [PHP] Zuletzt online
 
Moin,

du verhinderst, dass bei Gästen die PHP-Datei für die Profil-Seite eingebunden wird. Somit sehen Gäste da gar nichts (die Template-Engine wird nicht mit Werten gefüttert).

Wenn du in der profile_view_body.tpl die Änderungen des Hacks für die Ausgabe der Daten in den genannten Switch einfasst, sollte es eigentlich gehen. Die Daten werden dann bei Gästen nicht mehr dargestellt.

Nicht zwingend notwendig sind die Änderungen in der PHP-Datei, da es sich auch nicht um sicherheitskritische Daten handelt. Die Template-Engine wird ohne Änderung mit den entsprechenden Werten versorgt, sie gibt diese jedoch nicht aus.
Möchtest du die Template-Engine gar nicht erst mit den Werten versorgen (das ist minimal performanter), dann darfst du in der profile.php keine Änderungen durchführen, da diese Datei - mehr oder weniger - nur verschiedene Dateien einbindet. Die Änderungen müssten in die includes/usercp_viewprofile.php.

Gruß

Edit: Ich würde glaub in der PHP-Datei den entsprechenden Variablen einen Leerstring zuweisen, das ist dann relativ simpel. Beispiel:

Code:
if ($userdata['session_logged_in'])
{
   $online_time = ... ;
   $last_visit = ... ;
}
else
{
   $online_time = '';
   $last_visit = '';
}

MrSpock 8. Dez 2007 15:19

Re: [PHP] Zuletzt online
 
Hallo Matze,

ist die Änderung, die ich in der profile.php (siehe oben) gemacht habe, problematisch? Sie funktioniert zumindest so, wie geplant. Du meinst aber, ich dürfe in dieser Datei keine Änderung machen. :roteyes:

Matze 8. Dez 2007 15:34

Re: [PHP] Zuletzt online
 
Hallo

du kannst darin schon Änderungen machen, nur bewirken diese nicht das, was du gerne hättest. Ich habe verstanden, das Gäste das Profil sehen dürfen, nur spezielle Daten nicht.
Aber sonst denke ich, dürfte das nichts ausmachen, wobei ich zugeben muss, dass ich's anders lösen würde. ich würde in der usercp_viewprofile.php eine Weiterleitung zur Loginseite machen, wenn man nicht angemeldet ist. Das müsste so in der Art gehen:

Code:
if (! $userdata['session_logged_in'])
{
    redirect(append_sid('login' . $phpEx, true));
}
Gruß

MrSpock 8. Dez 2007 15:47

Re: [PHP] Zuletzt online
 
Hallo Matze,

das sieht gut aus. Habe ich auch gleich so umgesetzt. Im Quellcode muss übrigens noch ein Punkt hinter das "login", weil dieser nicht im $phpEx enthalten ist, aber sonst funktioniert es gut und ist auch die beste Reaktion des Systems, weil es dem Nutzer klar macht, wenn du das Profil dieser Person sehen willst, musst du dich einloggen. :thumb:

Matze 8. Dez 2007 16:00

Re: [PHP] Zuletzt online
 
Hi,

ah ok, dann muss der Punkt hin, aber das hast du ja selbst gleich gemerkt. :)
Du kannst auch noch einen Redirect-Parameter mitgeben, damit nach dem Login gleich zur Profilseite weitergeleitet wird. Das geht grob so, aber ob das hinhaut, steht in den Sternen. :mrgreen:

usercp_viewprofile.php:
Code:
if (! $userdata['session_logged_in'])
{
    redirect(append_sid('login.' . $phpEx . '?redirect=profile.' . $phpEx . '&mode=viewprofile&u=' . $profiledata['user_id'], true));
}
Da die user-ID in der usercp_viewprofile.php auf ihre Gültigkeit überprüft wird, musst du diese hier nicht mehr gesondert behandeln, würde ich sagen. Aber wie gesagt, ob das funktioniert, weiß ich grad auch nicht. ;)

Grüße


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:10 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz