Login auf Hauptseite (von phpBB.com)

In diesem Forum können Mod-Autoren ihre Mods vorstellen, die sich noch im Entwicklungsstatus befinden. Der Einbau in Foren im produktiven Betrieb wird nicht empfohlen.
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.
Benutzeravatar
~| Marc |~
Mitglied
Beiträge: 27
Registriert: 16.04.2006 15:38
Wohnort: Austria
Kontaktdaten:

Beitrag von ~| Marc |~ »

@michstro vielen Dank, hat wunderbar funktioniert!

Der Name wird nun bei mir angezeigt, wäre es auch möglich, neue private Nachrichten sowie einen Ausloggen-Link zur Verfügung zu stellen? Den entsprechenden Code habe ich schon in der ucp.php gefunden, nur wie füge ich diesen dann richtig ein?

Code: Alles auswählen

	case 'logout':
		if ($user->data['user_id'] != ANONYMOUS && isset($_GET['sid']) && !is_array($_GET['sid']) && $_GET['sid'] === $user->session_id)
		{
			$user->session_kill();
			$user->session_begin();
			$message = $user->lang['LOGOUT_REDIRECT'];
		}
		else
		{
			$message = ($user->data['user_id'] == ANONYMOUS) ? $user->lang['LOGOUT_REDIRECT'] : $user->lang['LOGOUT_FAILED'];
		}
		meta_refresh(3, append_sid("{$phpbb_root_path}index.$phpEx"));
	
		$message = $message . '<br /><br />' . sprintf($user->lang['RETURN_INDEX'], '<a href="' . append_sid("{$phpbb_root_path}index.$phpEx") . '">', '</a> ');
		trigger_error($message);
michstro
Mitglied
Beiträge: 8
Registriert: 01.01.2008 12:04
Wohnort: Siegburg
Kontaktdaten:

Beitrag von michstro »

Hallo zusammen,
also habe heute mal einwenig an dem neuen Login Version 3.0.0 auf Basis von dem Login der Version 2.0.22 gebastelt.

Code: Alles auswählen

define('IN_PHPBB', true);
$phpbb_root_path = '/var/www/pfad/zur/seite/'; 
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Start session management
$user->session_begin();

if ($user->data['user_id'] != ANONYMOUS) {
echo ($user->data['username']);
} else {
echo ('Anonymous');
}
Nur oben den Pfad anpassen, der Rest ist selbsterklärend.
denke das man so auch an die anderen Variablen herankommt.
$user->data['user_unread_privmsg'] und ähnliches.......

Gruß Mike
Benutzeravatar
~| Marc |~
Mitglied
Beiträge: 27
Registriert: 16.04.2006 15:38
Wohnort: Austria
Kontaktdaten:

Beitrag von ~| Marc |~ »

Vielen Dank, hat mit den Nachrichten auch super geklappt ;)

Habe jetzt schon fast alles geschafft, nur fehlt mir noch der Ausloggen-Link ... bekommt jemand diesen Code-Schnipsel auch noch programmiert?

Wäre auf alle Fälle grandios!

Mit freundlichen Grüßen,
Marc
michstro
Mitglied
Beiträge: 8
Registriert: 01.01.2008 12:04
Wohnort: Siegburg
Kontaktdaten:

Beitrag von michstro »

Code: Alles auswählen

<a href="http://www.domain.de/forum/ucp.php?sid=<?php echo ($user->data['session_id']); ?>&mode=logout">logout</a>
so zum Beispiel Redirect habe ich nicht ans laufen gebracht. Vielleicht hat jemand anderes eine Idee.
Gruß Mike
Benutzeravatar
~| Marc |~
Mitglied
Beiträge: 27
Registriert: 16.04.2006 15:38
Wohnort: Austria
Kontaktdaten:

Beitrag von ~| Marc |~ »

Grandios, funktioniert auch tadellos!

Eine Frage hätte ich jedoch noch. Ich habe mir über dein Script das User-Avatar geholt:

Code: Alles auswählen

if ($user->data['user_id'] != ANONYMOUS) {
echo ($user->data['user_avatar']);
} else {
echo ('Anonymous');
} 
Wird somit auch tadellos angezeigt, nur besteht das Problem, dass ein rotes Kreuz erscheint, sobald der Benutzer kein Avatar sein eigen nennt. Kann man hier ein Script erstellen, dass ein Bild anzeigt, wenn der Benutzer kein Avatar hochgeladen hat?

EDIT: Was mir auch gerade aufgefallen ist, dass ich im IE diese Meldung beim Script bekomme (eingebunden in der Homepage):

Code: Alles auswählen

[phpBB Debug] PHP Notice: in file /includes/session.php on line 885: Cannot modify header information - headers already sent by (output started at /home/www/sp01_57/html/head.inc.php:59)
In der Zeile 885 steht folgendes:

Code: Alles auswählen

header('Set-Cookie: ' . $name_data . '; expires=' . $expire . '; path=' . $config['cookie_path'] . $domain . ((!$config['cookie_secure']) ? '' : '; secure') . '; HttpOnly', false);
Mit freundlichen Grüßen,
Marc
Benutzeravatar
Kevinq
Mitglied
Beiträge: 138
Registriert: 12.05.2005 22:26
Wohnort: Rellingen
Kontaktdaten:

Beitrag von Kevinq »

@ ~| Marc |~
mach bei der avatar anzeige einfach noch eine Prüfung hinein, die guck ob das feld ausgefüllt ist, also z.b.

Code: Alles auswählen

if($user->data['user_avatar'] != "")
{
//der ausgabe code
}
und headers already sent bedeutet beim phpbb meist das bereits irgendwas an den Browser ausgegeben wurde bevor die template engine gestartet wurde. und da wurde in deiner zeile 885 ja bereits tatsächlich etwas an den Browser gesendet, da die Funktion header() benutzt wurde.

----

ich habe da mal eine frage, ich versuche derzeit auf einer Seite die abgesehen vom templatesystem ins phpBB3 eingebunden ist eine einfache Loginmaske zu erstellen. ich möchte garnicht das meine Seite unbedingt selbst den Benutzer einloggt, sondern einfach nur das ausgefüllte Formular an die ucp.php weiterleitet.

habe dazu folgenden Code verwendet

Code: Alles auswählen

<form action="<?php echo append_sid('forum/ucp.php?mode=login'); ?>" method="post">
<input type="text" name="username" tabindex="1" size="15"/><br/>
<input type="password" name="password" tabindex="2" size="15" /><br/>
<input type="hidden" name="redirect" value="../index.php" />
<input type="hidden" name="sid" value="<? echo $user->session_id; ?>" />
<input type="submit" value="Login" /></form>
was dann im html Code so aussieht

Code: Alles auswählen

<form action="forum/ucp.php?mode=login" method="post">
<b>my Account</b><br/>
<input type="text" name="username" tabindex="1" size="15"/><br/>
<input type="password" name="password" tabindex="2" size="15" /><br/>
<input type="hidden" name="redirect" value="../index.php" />
<input type="hidden" name="sid" value="5d014605b2159d4b3fbc7ab0e18ede5d" />
<input type="submit" value="Login" />
</form>
nur leider werde ich auf die loginseite weitergelietet ohne eingeloggt zu werden, und auch ohne das irgendwelche formular vorausgefüllt sind. woran kann das liegen?
Benutzeravatar
~| Marc |~
Mitglied
Beiträge: 27
Registriert: 16.04.2006 15:38
Wohnort: Austria
Kontaktdaten:

Beitrag von ~| Marc |~ »

Habe das mit der session und dem Avatar in einem anderen Thread schon hinbekommen, trotzdem vielen Dank!

Nun zu deinem Problem:

Bei mir klappt das ganze so:

Code: Alles auswählen

<form action="../community/ucp.php?mode=login" method="post">
<input tabindex="1" name="username" id="username" size="20" value="Benutzer" class="inputbox autowidth" type="text" onfocus="javascript:this.value='';"><br><br>
<input tabindex="2" id="password" name="password" size="20" value="Passwort" class="inputbox autowidth" type="password" onfocus="javascript:this.value='';"><br><br>
<input name="autologin" id="autologin" tabindex="4" type="checkbox"> Automatisch anmelden<br><br>
<input name="redirect" value="../community/index.php" type="hidden">
<input name="login" tabindex="6" value="Anmelden" class="button1" type="submit">
</form>
Klappt bei mir wunderbar, werde auf die Login-Seite weitergeleitet und bin eingeloggt!
Benutzeravatar
Kevinq
Mitglied
Beiträge: 138
Registriert: 12.05.2005 22:26
Wohnort: Rellingen
Kontaktdaten:

Beitrag von Kevinq »

thx, hat geklappt, frage mich nur wieso meine Version nicht geklappt hat, habe ja schließlich nur das Formular vom subsilver 2 template genommen und danach Pfad und Design angepasst.
Antworten

Zurück zu „[3.0.x] Mods in Entwicklung“