Seite 1 von 2

Login Tutorial ja, aber Logout.

Verfasst: 20.07.2004 09:58
von reaVen
Ich weiss ja nicht ob ich überhaupt auf dem richtigen weg bin aber ich habe die KB nun mindestens 20 mal gelesen und habe denoch fragen.

Ich habe meine Seite die ich getrennt vom Forum betreibe.
Nun habe ich den Login vom Forum benutzt. Hierbei bin ich wie folgt vorgegangen.


In meine index.php (Website) include ich ganz am Anfang test.php

Code: Alles auswählen

//Benötigte Dateien und Variablen von phpBB
define('IN_PHPBB', true);
$phpbb_root_path = '../phpbb/';
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);

redirect(append_sid("index.php" true));
In der rechten Navigation habe ich das Login untergebracht.

Code: Alles auswählen

	$userdata = session_pagestart($user_ip, PAGE_INDEX);
	init_userprefs($userdata);
	
	if ( $userdata['session_logged_in'] )
	{
	print'<div align="left">
		<a href="module/members/members_admin.php" target="_blank">» Profil Verwaltung</a><br>
		<a href="module/" target="_blank">» News Verwaltung</a><br>
		<a href="#">» Seiten-Einstellung</a><br>
		<a href="#">» Messages</a><br>
		<a href="#">» Freunde</a><br><br>';
		$siddy = $HTTP_GET_VARS["sid"];
		print'<a href="'.$PHP_SELF.'?logout=true&sid='.$siddy.'">» Logout</a><br>
		</div>';
		print '<form action="../phpbb/login_test.php" name="log_out" method="post">
		<input type="hidden" name="logout" value="true">
		<input type="hidden" name="redirect" value="../gilde/index.php">
		<input type="submit" name="Logout" value="Logout" style="BACKGROUND-COLOR: #F1C46F; COLOR: #A10505; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; FONT-SIZE: 9px; border: 2px inset; border-bottom-style: outset; border-left-style: outset; border-right-style: outset; border-top-style: outset; font-weight: bold; border-color: #F1C46F #F1C46F #F1C46F #F1C46F">
		</form>';
	}
	else
	{
	   //echo "User ist nicht angemeldet";
		print '<form action="../phpbb/login_test.php" method="post">
				<input type="hidden" name="nav" value="'.$nav.'">
					<table border="0" cellspacing="0" cellpadding="0">
					  <tr>
						<td valign="middle" align="left" class="login">Benutzername: <input type="text" name="username" style="height:18px; width:100px; font-size:8pt;background-color: #F4C279"></td>
					  </tr>
					  <tr>	
						<td valign="middle" align="left" class="login">Passwort: <input type="password" name="password" style="height:18px; width:100px; font-size:8pt;background-color: #F4C279"></td>
					  </tr>
					  <tr>	
						<td valign="middle" align="left" class="login">Autologin? <input type="checkbox" name="autologin"></td>
					  </tr>
					  <tr>
						<td align="center"><img src="img/spacer.gif" alt="" width="1" height="10" border="0"><br><input type="submit" name="login" value="Login" style="BACKGROUND-COLOR: #F1C46F; COLOR: #A10505; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; FONT-SIZE: 9px; border: 2px inset; border-bottom-style: outset; border-left-style: outset; border-right-style: outset; border-top-style: outset; font-weight: bold; border-color: #F1C46F #F1C46F #F1C46F #F1C46F"></td>
					  </tr>						
					</table>				
					<input type="hidden" name="redirect" value="../gilde/index.php">
	<input type="hidden" name="redirect" value="../gilde/index.php">
	
	</form>';
	}
Die Action des Forumlars geht auf die login.php des Forums die ich allerdings Kopiert und login_test.php genannt habe und den redirect fest "verdrahtet" habe.

Soweit ist das auch alles Schön und gut. Login funktioniert.

Nur wie Log ich mich wieder aus? hab es mit einem Link und Formular versucht was bei beiden nur eine Fehlermeldung "
Warning: Cannot modify header information - headers already sent by" bringt. Der Output kommt laut der Fehlermeldung aus der Datei sessions.php on line 188 die ich aber nirgends included habe aber wahrscheinlich passiert das durch die login.php aus dem phpbb.

Hat einer eine Idee wie ich das Problem löse?


Danke schonmal

Verfasst: 20.07.2004 14:56
von reaVen
Gibt es so was wie eine Noob Ignore Liste ???

Ich fühle mich als ob ich auf so einer drauf bin wenn es sie denn gibt.

Verfasst: 21.07.2004 10:07
von reaVen
So ich starte nochmal einen neuen versuch !!!!


Ich habe das logout problem gelöst. hab eine neue Seite logout.php gemacht mit der ich einfach nur die Session kille.

Nun mein neues Problem und ich bitte euch wirklich mal zur helfen. denn das bekomme ich nicht alleine hin.


Ich möchte das wenn der User sich auf der Page anmeldet er auf die jeweilige Seite redirected wird von der er sich angemeldet hat. Wenn er von News kommt soll er dort wieder reinkommen wenn der Login erfolgreich war.

Wie kann ich das anstellen oder konkret gefragt, ich kopiere mir die Login.php (Login2.php) und ändere die redirects.
Nur welche ??

Bitte helft mir!

Verfasst: 21.07.2004 11:17
von Both
Kann man sich nicht einfach so ausloggen?

login.php?logout=true, oder so:

Code: Alles auswählen

<a href="$_SERVER['PHP_SELF']">Logout</a>

Verfasst: 21.07.2004 11:44
von reaVen
das ging nicht. ich habe das login ja auf einer page.

ich habe alle meine php seiten im ordner page liegen anderes verzeichniss als phpbb. und somit gab es immer eine fehlermeldung das der header schon geschrieben wurde. somit habe ich eine neue seite gemacht:

Code: Alles auswählen

define('IN_PHPBB', true);
$phpbb_root_path = '../';
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);


if( ( isset($HTTP_GET_VARS['logout']) || isset($HTTP_POST_VARS['logout']) ) && $userdata['session_logged_in'] )
	{
		session_end($userdata['session_id'], $userdata['user_id']);
		
		$back_to_url = $HTTP_GET_VARS['rediuri'];
		echo "AUSGELOGT<br>";
		echo "$back_to_url<br>";
		echo "<meta http-equiv=\"refresh\" content=\"0;url=$back_to_url\">";
		
		
		
	//}
Damit funktioniert es wunderbar.

Und möchte ich das der Login genau das selbe macht mit dem redirect s.o.
nur geht das nicht der springt immer auf ne weisse seite. Anscheinend wird der Pfad nicht richtig geschrieben. Deshalb meine Frage welche der 100 redirects in Login.php muss ich ändern ?

Aber danke schon mal für deine Antwort Timmy dachte schon in dem Forum lebt garkeiner :roll:

Verfasst: 21.07.2004 13:13
von Christian_W
reaVen hat geschrieben:Ich möchte das wenn der User sich auf der Page anmeldet er auf die jeweilige Seite redirected wird von der er sich angemeldet hat. Wenn er von News kommt soll er dort wieder reinkommen wenn der Login erfolgreich war.
Du kannst der login.php als Parameter übergeben wohin nach dem Login weitergeleitet wird.

Code: Alles auswählen

http://www.deineDomain.de/login.php?redirect=privmsg.php&folder=inbox
Gruß Christian

Verfasst: 21.07.2004 14:51
von saerdnaer
@reaVen: benutzt du auf deiner seite frames? und könntest du die url zu deiner seite posten?

Verfasst: 21.07.2004 16:59
von reaVen
@Christian_W genau das geht ja nicht.

In dem Form ist zwar ein hidden field das redirect heisst und das ich mit $_SERVER['REQUEST_URI']; fülle also der jetzigen seite jedoch gibt es da nur eine 404er seite.

@saerdnaer Nein ich benutze keine Frames

http://www.d-creationz.de/phpbb2/

User: test
PW: test

Logt man sich von der Startseite ein: Null Problemo
Benutzt man aber erst das Testlink für PHPBB und benutzt dann das Login Form dann erhaelt man meine 404 seite.

Verfasst: 22.07.2004 10:37
von reaVen
naja muss ich mich wohl wieder in Geduld üben.....

ich habe es immer noch nicht hinbekommen. Hinzu kommt das ich Probleme mit der Session bekomme wenn ich andere Globale Variablen benutze.

Naja wenn einer weiter weiss welche Zeile für den redirect in login.php zuständig ist kurz auf den BazzA drücken und schon bin ich da.

Verfasst: 22.07.2004 11:34
von saerdnaer
man müsste das login script so bearbeiten das es automatisch das redirect feld füllt. das problem ist das aus dem $PHP_SELF ein vom forum aus gesehen relativer pfad erzeugt werden muss...

am besten wir treffen uns im phpbb.de chatund posten hier am ende die lösung ;-)

mfg saerdnaer