Seite 1 von 1

Login Weiterleitung | geschützter Bereich nicht geschützt

Verfasst: 13.03.2007 08:17
von hanebu
Hallo,

ich habe ein nettes phpBB, und möchte das nun mit meiner Website kombinieren.

Den Style habe ich bestens integriert (besser die HP in das phpBB), und nun soll auf der index.php, also der Hauptseite der Webpräsenz (nicht des Forums) ein Loginfeld eingebaut werden.

Dieses Loginfeld soll gleichzeitig das Forenlogin sein, falls der User im Forum registriert ist, ansonsten nur das Login für geschützte Bereiche ausserhalb des Forums.

Dazu habe ich zum testen mal dieses Formular eingebaut:
<form action="http://www.domain.com/forums/index.php" method="post">
Benutzername: <input type="text" name="username"><br>
Passwort: <input type="password" name="password"><br>
Autologin? <input type="checkbox" name="autologin"><br>
<input type="hidden" name="redirect" value="geschuetze_seite1.php">
<input type="submit" name="login" value="Login">
</form>
( http://www.phpbb.de/doku/kb/artikel.php ... ight=login )

Dort habe ich die roten Stellen nat. angepasst.

Dazu muss ich sagen, dass die Website nebst den zu schützenden Seiten NICHT im phpBB-Verzeichnis liegen. Hier mal die Pfade:

root/forums/index.php (Pfad zum Froum)
root/domain/index.php (Pfad zur Website)
root/domain/geschuetzte_seite1.php (zu schützende Seite 1)

Ausserdem habe ich eine index.php (Webseite) nach diesem Vorbild gebastelt:

Code: Alles auswählen

<?php 
//Benötigte Dateien und Variablen von phpBB 
define('IN_PHPBB', true); 
$phpbb_root_path = '../forums/'; 
include($phpbb_root_path . 'extension.inc'); 
include($phpbb_root_path . 'common.'.$phpEx); 


//Session auslesen und Benutzer-Informationen laden 
$userdata = session_pagestart($user_ip, PAGE_INDEX); 
init_userprefs($userdata); 


/***** Inhaltsbereich ******/ 

?>
( http://www.phpbb.de/doku/kb/phpbb_seite )

Wenn ich nun aber (HTML-)Inhalt an die vorgesehene Stelle einfüge, bekomme ich immer die Fehlermeldung "unexpected '<' in line...";
Wenn ich den Inhalt aber NACH dem PHP-Ende-Tag (?>) einsetze, klappt es.

Nun zum eigentlichen Problem:

Man wird nach dem einloggen auf die richtige Seite weitergeleitet, aber diese Seite ist auch OHNE eingeloggt zu sein vom Browser aus aufrufbar, wenn man den Link kennt.

Das sollte bei einem geschützten Bereich nicht so sein.

Wie bekomme ich das denn hin?

Hoffe ich hab mich nicht zu umständlich ausgedrückt, und bin im richtigen Forum...


Danke,
Tommy

Verfasst: 13.03.2007 08:26
von Dr.Death
Du musst in deiner "geschützten" Datei natürlich auch abfragen, ob der User eingeloggt ist oder nicht ;-)

Beispiel:

Code: Alles auswählen

if( $userdata['session_logged_in'] )
	{
		hier dein geschützter code .......  ;
	}
	else
	{
		Blabla, sorry geschützer Beriech, draussen bleiben ;-) ;
	}

Verfasst: 13.03.2007 08:28
von hanebu
Das habe ich versucht, er bringt dann aber immer:

unexpected ',' in line...

Und zwar in der Linie, in der die letzte Klammer steht.

Aber ich probiers nochtmal.

Meld mich dann wieder.

Danke erstmal.

Verfasst: 13.03.2007 08:41
von Dr.Death
Öhm,

HTML Inhalt ?

Da weisst aber, das man das nicht so einfach "mixen" kann ?

Dann beachte das bitte:

Code: Alles auswählen

if( $userdata['session_logged_in'] ) 
   { ?>
      hier dein geschützter HTML Code ....... 
   <? } 
   else 
   { ?>
      Blabla, sorry geschützer HTML Bereich, draussen bleiben ;-)
   <? }
Besser ist, wenn Du das KB:70 verwendest.

Verfasst: 13.03.2007 10:15
von hanebu
Hi,

danke schön, funzt wunderbar. Absolut geil. :D

Das Templatesystem werde ich mir zu Gemüte führen.

Wie verhält sich die Sessionsübergabe, wenn ich von der "geschützten Seite 1" aus eine "geschützte Seite 2" usw. verlinke?

Muss dieser Code dann in jede dieser Dateien? (ich denk mal ja)

Wie bekomme denn ich noch einen Logout-Button in jede "geschützte Seite", und für den Fall das nicht eingeloggt, noch einen "Register"-Button und ggf. "Passwort vergessen?" ?