Externer Log-In

Fragen zur Bedienung von phpBB 3.0.x, Probleme bei der Benutzung und alle weiteren Fragen inkl. Update auf die neuste phpBB 3.0.14 Version
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Kewwwin

Externer Log-In

Beitrag von Kewwwin »

Hallo phpBB-Gemeinde,

da ich mich jetzt das erste Mal mit dem neuen phpBB3 beschäftige, kommen ein paar Fragen auf. Wir wollen für unser neues Projekt einen externen Login einbauen der immer oben rechts erscheint. In etwa so:

Klick hier

Beim erfolgreichen Log-In sollte dann da natürlich nicht mehr das Log-In Feld sein, sondern ein Text wie der hier:

Klick hier

Soweit kein Problem. Doch wir wissen nicht, wie wir es schaffen sollen, dass die Funktion korrekt funktioniert. Wir haben verschiedenes probiert. Dabei konnte man sich zwar einloggen und wurde danach wieder an die vorherige Seite gebracht, doch dann war man wieder ausgeloggt. Zuerst stand da auch das wie am zweiten Bild aber nur an dieser einer Seite. Sobald man die Seite wechselte war wieder der Log-In da. Wir wissen nicht, wie wir das anstellen sollen.

Beim phpBB2 hat das noch ganz gut geklappt aber jetzt will es einfach nicht hinhauen. Hat vielleicht jemand eine fertige Lösung?

Danke
Gruß
Kevin
Kewwwin

Beitrag von Kewwwin »

Hallo,

hat denn niemand eine Idee?

Gruß
Kewwwin

Beitrag von Kewwwin »

Hallo,

wir haben bereits eine Lösugn gefunden!

Gruß
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17475
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Beitrag von Dr.Death »

Hi,

dann trage doch etwas zur Community bei und poste uns Deine Lösung.
Kewwwin

Beitrag von Kewwwin »

Hallo,

es hat meine Programmiererin gemacht. Mal fragen, ob sie was dagegen hat. Ggf. poste ich es dann.

Gruß
Kewwwin

Beitrag von Kewwwin »

index.php ein Verzeichnis außerhalb des Forums:

Anfangscode zur Ermittlung der Variablen:

Code: Alles auswählen

// (C) Kewwwin.de
// Autor: Sandy Möller & Kevin Domani, 2007

session_start();

//define('IN_PHPBB', true);
//$phpbb_root_path = './forum/';
//$phpEx = 'php';
//include($phpbb_root_path . 'common.' . $phpEx);
//include($phpbb_root_path . 'includes/functions_display.' . $phpEx);


//Session auslesen und Benutzer-Informationen laden
//$user->session_begin();
//$auth->acl($user->data);

include_once('inc/#config.inc.php');
include_once('inc/#db.inc.php');

$header_refresh = "";

$mysql_connection = sqlconnect($config['dbhost'], $config['dbuser'], $config['dbpass']);
unset($config['dbpass']);
Weiterer Code an gewünscht Stelle:

Code: Alles auswählen

// Forum Login-Form
$forum_loginform = "";
if (checklogin()) {
	$sql_user = "SELECT username, group_id FROM ".USERS_T." WHERE user_id = '".$c_u."'";
	$sql_user = mysql_db_query($config['dbname_db1'], $sql_user, $mysql_connection) or (die (mysql_error()));
	$sql_user = mysql_fetch_array($sql_user);
	
	if (in_array($sql_user['group_id'], $config['admin_login_show'])) {
		$adminbereich = ' | <a href="admin">Admin-Bereich</a>';
	} else {
		$adminbereich = '';
	}
	
	$forum_loginform .= '<center><font size=4>Eingeloggt als<br /><strong>'.$sql_user['username'].'</strong></font><p><a href="forum/ucp.php?mode=logout&sid='.$c_sid.'">Abmelden</a>'.$adminbereich.'</center></p>';
	
	
} else {
	$forum_loginform .= '<form action="forum/ucp.php?mode=login" method="post" target="_top"> Username: <input type="text" class="login" name="username" size="15" maxlength="40" value="" /><br> Passwort: <input type="password" class="login" name="password" size="15" maxlength="32" /><br> Auto-Login: <input type="checkbox" name="autologin" /> <input type="hidden" name="redirect" value="../index.php?view='.$_GET['view'].'" /> <input type="submit" class="login_button" name="login" value="Anmelden" class="button1" /> <p><a href="forum/ucp.php?mode=register"><img src="forum/styles/prosilver/theme/images/icon_register.gif"> Registrieren</a>
</form>';
}
Die #config.inc.php:

Code: Alles auswählen

<?php



// DB-Konfiguration

$config['dbuser'] = "user";

$config['dbpass'] = "pwd";

$config['dbhost'] = "localhost";

$config['dbname_db1'] = "name";


// Forum

$config['prfx_forum'] = "phpbb_"; // Tabellenpräfix Forum

$config['cookiename_forum'] = "phpbb3_sw8xl_"; // Cookiename Forum
Die #db.inc.php:

Code: Alles auswählen

<?php



// (C) Kewwwin.de

// Autor: Kevin Domani und Sandy Möller, 2007



$c_sid = $_COOKIE[$config['cookiename_forum'].'sid'];

$c_u = $_COOKIE[$config['cookiename_forum'].'u'];



define(USERS_T, $config['prfx_forum']."users");

define(SESSIONS_T, $config['prfx_forum']."sessions");

define(POST_T, $config['prfx_forum']."posts");

define(TOPIC_T, $config['prfx_forum']."topics");



function sqlconnect($dbhost, $dbuser, $dbpass) {

	$mysql_connection = @mysql_connect($dbhost, $dbuser, $dbpass);

	if (!$mysql_connection) {

		echo "Es konnte leider keine Verbindung zur Datenbank hergestellt werden, bitte versuch es später noch einmal!\n";

		exit;

	}

	

	return $mysql_connection;

}



function sqldisconnect($mysql_connection) {

	mysql_close($mysql_connection);

}



?>
Hier mal etwas zusammengefasst. Ein paar Teile sind noch unnötig waren aber für unsere Verhältnisse notwendig. Ich hoffe ich konnte helfen =)

Gruß
PS2000
Mitglied
Beiträge: 2
Registriert: 29.09.2007 15:27

Beitrag von PS2000 »

Hallo Leute,

vielen Dank erstmal an Kewwwin, dass du den Code hier reingestellt hast. Aber ich habe da noch ein paar kleine Probleme und zwar mit der Funktion checklogin().
Ich gehe mal davon aus, dass die nicht in den Dateien von phpBB3 definiert ist, oder vllt doch? Wenn nicht, kannst du den Code für diese Funktion bitte noch posten?
marioaldag
Mitglied
Beiträge: 9
Registriert: 15.03.2007 15:31

Beitrag von marioaldag »

bei mir gibt er teile des codes aus (im login fenster). Habe aber nirgendswo einen Echo befehl... Ich habe php zwischen HTML eingebettet.
Benutzeravatar
niffi
Mitglied
Beiträge: 185
Registriert: 09.03.2003 22:02

Beitrag von niffi »

Keine Ahnung was ihr daoben mit dem Script macht, aber den ganzen Russ kannst Du Dir im Grunde auch sparen, denn wenn Du nur Deinen Login auf eine Extra-Seite packen willst, reicht folgender Code völlig zu:

Code: Alles auswählen

if ($user->data['user_id'] == ANONYMOUS)
    {
		echo '<table width="140" border="0" cellspacing="3" cellpadding="3" bgcolor="#EAEAEA">
			<form action="forum/ucp.php" method="post" target="_top">
			<input type="hidden" name="mode" value="login" />
			<input type="hidden" name="autologin" value="1" />
				<tr>
					<td align="left" valign="top"><span class="small">Benutzername:</span><br>
				  <input type="text" name="username" size="23" class="inputbox" maxlength="55" value="" /></td>
				</tr>
				<tr>
					<td align="left" valign="top"><span class="small">Passwort:</span><br>
				  <input type="password" name="password" size="23" class="inputbox" maxlength="55" value="" /></td>
				</tr>
				<tr>
					<td align="center"><input type="hidden" name="redirect" value="../main.php" /><input type="submit" name="login" class="logout" value="Login" /></td>
				</tr>
				<tr>
					<td align="center" height="16" valign="middle"><a href="forum/ucp.php?mode=register" class="link_small">Jetzt registrieren!</a></td>
				</tr>
			</form>				
			</table>';

	}	
	else	{

		echo '<table width="140" border="0" cellspacing="3" cellpadding="0" bgcolor="#EAEAEA">
				<tr>
					<td align="center" valign="top"><span class="small">Du bist derzeit<br />eingeloggt.<br /><br /></span></td>
				</tr>
				<tr>
					<td align="center"><a href="'.append_sid("{$phpbb_root_path}ucp.php").'?mode=logout&sid='.$user->data['session_id'].'" class="logout">&nbsp;&nbsp;Logout&nbsp;&nbsp;</a></td>
				</tr>
			</table>';
	}
Das Problem bestehtz eher darin, denn ich hab es auch immernoch und es nervt mich, den Loginstatus beim Verlassen des Forums auf meiner normalen WebSite bestehen zu halten. Und da Du bzw. deine Programmierein beim Anfangscode schonmal alle Funktionen zur Sessionbehandlung diesbezüglich auskommentiert, versteh ich nicht so ganz was der lange Code noch bringen soll?!

Falls jemand eine Idee hat, wie man nach dem Login irgendwo innerhalb der Anmeldephase von phpbb3 noch eine Sessionvariable definieren kann, die ich dann gesondert auf jeder Seite abfragen kann, wäre es schön wenn das mal jemand hier posten kann. Oder eine andere Alternative zum Erhalt des Loginstatus. Danke.
Mögt ihr diese Signaturen? Ich nicht.
marioaldag
Mitglied
Beiträge: 9
Registriert: 15.03.2007 15:31

Beitrag von marioaldag »

das hatte ich mir auch schonmal gedacht, aber was packst du davor? Was includest du, damit das heir geht?
Antworten

Zurück zu „[3.0.x] Administration, Benutzung und Betrieb“