Seite 2 von 2
Verfasst: 03.01.2008 18:54
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);
Verfasst: 04.01.2008 14:58
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
Verfasst: 07.01.2008 20:46
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
Verfasst: 11.01.2008 08:39
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
Verfasst: 11.01.2008 20:03
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
Verfasst: 12.02.2008 18:02
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?
Verfasst: 13.02.2008 15:31
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!
Verfasst: 13.02.2008 16:19
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.