Login für Forum erwingen

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
chodo
Mitglied
Beiträge: 29
Registriert: 27.05.2003 15:04

Login für Forum erwingen

Beitrag von chodo »

Ich habe eine private und daher versteckte Webseite auf Basis von phpBB erstellt. Um Zugriff zu dieser Seite haben zu können, muss man sich erst einmal registrieren und man wird dann ggf. von mir freigeschaltet.
Ich habe mich also nach einem Mod umgesehen, dass meine Bedürniss erfüllt und einen nicht eingeloggten User auf die Login-Seite weiterleitet, sofern dieser auf nicht freigegebenen Content zugreift.
Dabei bin ich auf folgende Möglichkeit gestoßen:
in page_header.php wird nach:

Code: Alles auswählen

if ( $userdata['session_logged_in'] )
{   
	$u_login_logout = 'login.'.$phpEx.'?logout=true&sid=' . $userdata['session_id'];
	$l_login_logout = $lang['Logout'] . ' [ ' . $userdata['username'] . ' ]';
}
else
{
folgendes eingebunden:

Code: Alles auswählen

   if ( basename( $HTTP_SERVER_VARS['REQUEST_URI'] ) != 'login.php') 
   { 
      $n = "\n"; 
    
      echo '<HTML>'.$n 
         .'<HEAD>'.$n 
         .'<META HTTP-EQUIV="refresh" content="0;URL='.append_sid('login.'.$phpEx).'">'.$n 
         .'</HEAD>'.$n 
         .'</HTML>'.$n; 
    
      exit; 
   }
Diese Möglichkeit hat natürlich den entscheidenden Nachteil, dass man sich nciht registrieren kann, weill man bei Anwählen der Option die seite profile.php?mode=register betritt, und somit auf login.php weitergeleitet wird. gibt es einen anderen weg, als jede Seite bis auf login.php und profile.php mit einem eigenen Script zu versehen?
Dwing
Ehrenadmin
Beiträge: 1965
Registriert: 17.06.2001 02:00

Beitrag von Dwing »

Du kannst mal folgendes versuchen:

Code: Alles auswählen

 if ( substr($_SERVER['PHP_SELF'], strrpos($_SERVER['PHP_SELF'], '/')) != 'login.php' && substr($_SERVER['PHP_SELF'], strrpos($_SERVER['PHP_SELF'], '/') != 'profile.php' && $_GET['mode'] != 'view' ) )
{
      $n = "\n";

      echo '<HTML>'.$n
         .'<HEAD>'.$n
        .'<META HTTP-EQUIV="refresh" content="0;URL='.append_sid('login.'.$phpEx).'">'.$n
         .'</HEAD>'.$n
         .'</HTML>'.$n;

      exit;
}
chodo
Mitglied
Beiträge: 29
Registriert: 27.05.2003 15:04

Beitrag von chodo »

Da ist irgendwie der Wurm drinnen. Der Script verfällt in eine Endlos-Schleife, sobald man auf login.php weitergeleitet wird. :-?
chodo
Mitglied
Beiträge: 29
Registriert: 27.05.2003 15:04

Beitrag von chodo »

Kann jemand helfen? :(
Benutzeravatar
Mungo
Administrator
Administrator
Beiträge: 6613
Registriert: 03.05.2003 19:34

Beitrag von Mungo »

Versuch es mal damit:

Code: Alles auswählen

  if ( isset($HTTP_GET_VARS['mode']) || isset($HTTP_POST_VARS['mode']) )
  {
	  $mode = isset($HTTP_GET_VARS['mode']) ? $HTTP_GET_VARS['mode'] : $HTTP_POST_VARS['mode'];
  }
  
  $check_file = basename($HTTP_SERVER_VARS['SCRIPT_FILENAME']);
 
  if ( $check_file != 'login.php' && $check_file != 'profile.php' && ($mode == 'register' || 'sendpassword') && ($check_file) != '' )
  { 
	  redirect(append_sid("login.$phpEx?redirect=" . basename($HTTP_SERVER_VARS['REQUEST_URI']), true));
  }
Einfach nach

Code: Alles auswählen

	$u_login_logout = 'login.'.$phpEx;
	$l_login_logout = $lang['Login'];
einfügen.

Der User wird nicht zur login.php weitergeleitet, wenn er sich einloggen, oder registrieren will. Außerdem wird auch nicht bei Informationen bzw. Mitteilungen oder bei der Passworterinnerung zur login.php weitergeleitet.
Keine Garantie, dass alle Seiten erwischt werden und ob es funktioniert ;-)
chodo
Mitglied
Beiträge: 29
Registriert: 27.05.2003 15:04

Beitrag von chodo »

Danke, es funktioniert. :grin:
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“