Seite 1 von 4

Login auf separater Seite via Forumaccount

Verfasst: 16.08.2008 14:05
von 59thRaider
liveSA:MP ist ein grosses Projekt mit vielen Servern und einer zentralen Webpräsenz und zentralem Forum.
Damit man auf den Servern spielen und sich aufhalten kann muss man im Forum registriert sein, um an die Serverdaten zu kommen.

Diese stehen in der Zukunft in einem PW gewschützen Bereich auf der Webseite.

Da diese zwei nicht miteinander verbunden sind, wird der Login folgender massen aussehen:

Ein User registriert sich im Forum, bewirbt sich und wird angenommen. Dementsprechend bekommt er die Benutzergruppe, welche den Internen Bereich des Forum sieht.


Damit er nun die Serverdaten bekommen loggt er sich mit seinen Forendaten auf der Webseite zum Memberbereich ein. Dies wäre eine einzige php Seite (von dem ihr oben lediglich das Login sieht)

Im WBB wurden Benutzername, Benutzerpasswort und Benutzergruppe aus der Datenbank ausgelesen und geprüft, ob der User im Forum registriert ist, das PW stimmt, und ob er in der richtigen Benutzergruppe ist.

Wenn alles ja ist, wurde ihm die seite mit PW und IP angezeigt.

Wenn nein blieb er draussen.

-----------------------------------------------

Das ist nun genau das System, welches ihr unten im Quellcode findet, dort habe ich einfach nur den php bereich gepostet, "wohin" die eingaben gesendet und überprüft werden.

In WBB funktioniert dies problemlos. Da wir aber auf phpBB umgestiegen sind, funktioniert dies ja nicht mehr, da die zwei völlig unterschiedlich arbeiten.

Und genau diesen bereich müsste man umschreiben.

Dazu muss man allerdings wissen wie phpBB funktioniert.
Und da ich mit php allgemein meine mühen habe, kann ich dies einfach nicht.

Code: Alles auswählen

<?php 
//Config begin
$Forum['path'] = "/srv/www/httpd/phost/l/net/live-samp/web/forum/"; //Path zu Forum hier is die Datei im selben verzeichnis mit / am ende
$Forum['usergroups'] = array(1,2,3,7,10,12,16) ;//usergruppen (0,2,3 ...etc
$Filename = "index.php"; //Name des Scripts
//Config end
require("class_db_mysql.php");
$n = 1;
if(isset($_POST['send']))	{
	$db = new db($MySQL['host'],$MySQL['user'],$MySQL['passwort'],$MySQL['database']);
	$wbb_userpassword=md5($_POST['user_pw']);
	$result = $db->query_first("SELECT * FROM bb".$n."_users WHERE username = '".addslashes(htmlspecialchars($_POST['username']))."' AND password = '".$wbb_userpassword."' AND activation = 1");
	if($result['userid'] && ValidGroup($result['groupid'],$Forum['usergroups']))	{
	?>

--------------------------------------------------------------------

<div id="livesamp">
	<p><b><font color="#2c4e97">liveSA:MP Stories Member Area</font></b><br />
	Bitte logge dich ein, um alle Funktionen nutzen zu können.</p>
	</div>
	<div id="inhalt">
	<br /><br /><br />
	<p>Willkommen in der liveSA:MP Stories Member Area.<br />
	Bitte logge dich mit deinen Forumdaten ein, um alle Funktionen nutzen zu können</p>
<form action="<?php echo $Filename ?>" method="post" name="login">
<input name="send" type="hidden" value="true">
<div id="pr"><br /><br /><table width="50%" border="0" align="center">
  <tr>
    <th scope="col">Login</th>
    <th scope="col">&nbsp;</th>
  </tr>
  <tr>
    <td>Forumname: </td>
    <td><input name="username" type="text" size="20" maxlength="100"></td>
  </tr>
  <tr>
    <td>Passwort: </td>
    <td><input name="user_pw" type="password" size="20"></td>
  </tr>
  <tr>
    <td colspan="2" ><a href="../rules.html" target="_new">Regeln</a> gelesen und akzeptiert: <input name="cool" id="checkagb" type="checkbox" value="ja" onclick="ValidCheckbox(this);"/></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><input id="login" name="submit" type="submit" value="Login" disabled /></td>
  </tr>
</table></div>
</form>
Ich wäre froh, wenn mir jemand helfen würde, dies umzuschreiben.
Danke im Voraus :)

Verfasst: 28.08.2008 20:55
von 59thRaider
Kann bitte jemand dies mal anschauen? Es ist für mich sehr wichtig dass das erledigt wird.

Bitte.

Verfasst: 28.08.2008 21:05
von Dr.Death

Verfasst: 28.08.2008 22:22
von 59thRaider
Dr.Death hat geschrieben:Kleine Anregung:

[Snippet] Externer Login / Logout für phpBB3
und wie mach ich das mit den Benutzergruppe?

Verfasst: 28.08.2008 22:27
von Dr.Death
Da könnte man was aus diesem Snippet zusammenbasteln:

Gruppenzugehörigkeiten eines Benutzers prüfen

Verfasst: 28.08.2008 22:30
von 59thRaider
----gelöscht----

Verfasst: 29.08.2008 10:39
von 59thRaider
Oke ich habs mal umgestellt und es funktioniert recht gut.

Aber.

Sobald ich die Datei aufrufe und mich einloggen erscheint folgender Fehler:

Code: Alles auswählen

[phpBB Debug] PHP Notice: in file /includes/session.php on line 942: Cannot modify header information - headers already sent by (output started at /srv/www/httpd/phost/l/net/live-samp/web/stories/intern/login.php:7)
(dies dreimal nacheinander)

Wenn ich die entsprechende Zeile

Code: Alles auswählen

		header('Set-Cookie: ' . $name_data . (($cookietime) ? '; expires=' . $expire : '') . '; path=' . $config['cookie_path'] . $domain . ((!$config['cookie_secure']) ? '' : '; secure') . '; HttpOnly', false);
per // verberge kann man sich im Forum einloggen, wird dann aber wieder als nicht eingeloggt angezeigt.

Dann erscheint die Fehlermeldung auf der Loginseite nicht mehr.


Ich werde später noch versuchen die Gruppenabfrage einzubauen, allerdings habe ich keinen Plan, wo und wie ich es einbauen soll. Erbitte schon mal hilfe.

Verfasst: 22.09.2008 21:25
von 59thRaider
könnte bitte hier mal eine korrektur oder tipp kommen, wie man diese Fehlermeldungen behenben kann (resp. auch wie ich die Gruppenabfrage einbauen kann)

Verfasst: 24.09.2008 13:24
von Valerion
Laut Fehlermeldung gibst du irgendwo in
/srv/www/httpd/phost/l/net/live-samp/web/stories/intern/login.php:7
einen text aus. Dadurch kann er den sogenannten "Header" nicht mehr verändern. Du solltest schauen das jegliche "Header"-Befehle vor jeglichem Text kommt. Es passiert auch oft, dass man aus Versehen irgendwo ein Leerzeichen od. einen Punkt, etc. irgendwo stehen hat. Laut phpbb-Debug ist das in der oben genannten Datei. Das sollte einmal den Fehler beheben. Wenn es nicht hilft am Besten die Dateien posten(/verlinken).

Verfasst: 30.09.2008 20:31
von 59thRaider
Große Codeblöcke bitte nur verlinken / Code gekürzt - KB:16 - Metzle