Loginbox MOD auf jeder Seite

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 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Benutzeravatar
RusTin
Mitglied
Beiträge: 269
Registriert: 20.09.2003 08:45
Wohnort: Düppenweiler
Kontaktdaten:

Beitrag von RusTin »

ich weis nicht wieso, aber es geht bei mir nicht! Wenn ich mich einloggt hab bleibt die login box unverändert!


Edit:
Hier mal den etwas veränderten Code, den ich benutze:

Code: Alles auswählen

<?php
define('IN_PHPBB',true);

$phpbb_root_path = "forum/"; // set path to phpBB files
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

$userid = $userdata['user_id'];
$sql = "SELECT * FROM " . USER_GROUP_TABLE . " WHERE user_id = '$userid'";
$result = $db->sql_query($sql);
$isauth = 0;
while ($row = $db->sql_fetchrow($result))
{
if ($row['group_id'] == 'insert_group_id_here' || $row['group_id'] == 'insert_group_id_here')
{
$isauth = 1;
}
}

if($userdata['session_logged_in']){
?>

<div align="left">
<center><font size="1" face="Verdana">Hallo, <?php echo $userdata[username] ?>!
</font></center>
</div><br>
<div class="nav"><font face="Verdana"><font size="1">:: </font>
   <a class="nav" href="forum/profile.php?mode=editprofile">
   <font size="1">Profil bearbeiten</font></a></font></div>
<div class="nav"><font face="Verdana"><font size="1">:: </font>
   <a class="nav" href="forum/privmsg.php?folder=inbox">
   <font size="1">Private Nachrichten</font></a></font></div>
<div class="nav"><font face="Verdana"><font size="1">:: </font>
   <a class="nav" href="forum/login.php?logout=true&redirect=../index.php">
   <font size="1">Ausloggen</font></a></font></div>

<font size="1" face="Verdana">

<?php
}else{
?>

</font>

<form action="forum/login.php" method="post"><table border="0" cellpadding="3" cellspacing="1" width="100%">
        <tr>
         <td>
           <font size="1" face="Verdana">Username:<br>
           <input class="searchbox" type="text" name="username" size="10" maxlength="40">
            </font>
         </td>
        </tr>
        <tr>
         <td>
           <font size="1" face="Verdana">Passwort:<br>
           <input class="searchbox" type="password" name="password" size="10" maxlength="25">
         </font><br>
         <font size="1" face="Verdana">Auto Login: </font>
      <font face="Verdana" size="1"><input class="text" type="checkbox" name="autologin"></font><br>
         </td>
        </tr>
        <tr align="center">
         <td colspan="2"><font size="1" face="Verdana"><input type="submit" name="login" value="Login"></font></td>
        </tr>
        <tr align="center">
         <td colspan="2"><font face="Verdana"><span class="smalltext">
         <font size="1">
         <a href="forum/profile.php?mode=sendpassword" class="smalllink">Passwort
         vergessen?</a></font></span><br>
         <font size="1">
         <a href="forum/profile.php?mode=register">Registrieren</a></font><font size="1">!

         </font></font></td>
        </tr>
      </table>
     <input type="hidden" name="redirect" value="../datei.php">
</form>
&nbsp;

<?php
}
?>
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag von Acid »

aso..

Code: Alles auswählen

$userdata = session_pagestart($user_ip, PAGE_LOGIN);
init_userprefs($userdata);
Wenn ihr das nach dem includen von extension.inc und common.php einfügt, ändert sich die Logged In-Anzeige.
Benutzeravatar
RusTin
Mitglied
Beiträge: 269
Registriert: 20.09.2003 08:45
Wohnort: Düppenweiler
Kontaktdaten:

Beitrag von RusTin »

hab ich auch gestern gemerkt,...aber trotzdem danke ;)
Benutzeravatar
SirBerberitz
Mitglied
Beiträge: 8
Registriert: 17.02.2004 01:42
Wohnort: OktoberfestCity

Beitrag von SirBerberitz »

Fettes Merci an alle, vorallem an Acid !!!

Jetzt funzt es perfekt :lol:

Gruss

SirBerberitz
Die Hoelle, das sind die anderen. J.P. Satre
Benutzeravatar
SirBerberitz
Mitglied
Beiträge: 8
Registriert: 17.02.2004 01:42
Wohnort: OktoberfestCity

Beitrag von SirBerberitz »

Hallo nochmal,

leider habe ich mich ein bisschen zu freuh gefreut ...

Der Login und der Logout funktionert soweit bestens, aber wenn ich mich [im eingeloggten Zustand] mit einem weiteren Browserfenster auf die gleiche Seite begebe, oder nach erfolgtem Ausloggen ueber das selbe Fenster wieder einloggen moechte, kommt die gehasste Warnung:
Cannot modify header information - headers already sent by (output started at /kunden/meine_seite.de/de/html/seite.kopfo.html:4) in /kunden/meine_seite.de/de/forum/includes/sessions.php on line 182
und ja, ich habe schon mehrmals in der Knowledgebase den Artikel zu diesem Thema gelesen ...
http://www.phpbb.de/doku/kb/artikel.php?artikel=84
... und viele andere dazu auch.

Leider besteht die o.g. Seite "seite.kopfo.html" aus genau diesen vier Zeilen

Code: Alles auswählen

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Willkommen auf meiner Seite | home</title>
und es gibt auch keine Leerzeichen o.ae.

Das ist ja mein Problem.

Kanns vielleicht daran liegen, dass die Cookies nicht geloescht oder richtig "weitergegeben" werden?

Gruss

SirBerberitz
Die Hoelle, das sind die anderen. J.P. Satre
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag von Acid »

Nee, es liegt, wie in dem Artikel beschrieben, daran, das "versucht wird, die Header-Informationen zu bearbeiten, nachdem bereits normale Ausgabe erfolgt ist". Bei dir liegt´s daran, das du normales HTML mit dem php Zeugs mischt.

Schreib mal testweise vor den beiden in meinem letzten Beitrag erwähnten Zeilen ein @, wenn der Fehler verschwindet, wird er aber nur unterdrückt nicht in dem Sinne beseitigt.
Benutzeravatar
Vincent
Mitglied
Beiträge: 130
Registriert: 10.03.2004 14:05
Wohnort: Amberg
Kontaktdaten:

Beitrag von Vincent »

hab das nu auch ausprobiert:

und es funzt.
ich hab wirklich alles was in diesem thema beschrieben wurde probiert.
aber ich komme immer noch nicht auf eine lösung dass bei mir angezeigt wird ob man eingeloggt ist oder nicht.

ich wollte das ungefähr so haben, dass wenn man nicht eingeloggt ist die login form zu sehen ist inklusive passwort vergessen und register link

ist man eingeloggt soll man seinen usernamen profil link und logout link sehen anstatt der loginform.

und zwar befindet sich der code der loginform uswusf in einer leftmenu.php, die in die start.php (einer forenportalseite sozusagen) per overall_header eingebunden ist (und in alle anderen seiten auch)
beide befinden sich in phpbb/

und jetzt der code

nach dem <body> tag kommt folgendes:

Code: Alles auswählen

<?php 
//Benötigte Dateien und Variablen von phpBB 
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); 

?>
danach HTML gelaber inhalt der seite

danach kommt der rest

Code: Alles auswählen

<?php 
$userdata = session_pagestart($user_ip, PAGE_LOGIN); 
init_userprefs($userdata);

$userid = $userdata['user_id']; 
$sql = "SELECT * FROM " . USER_GROUP_TABLE . " WHERE user_id = '$userid'"; 
$result = $db->sql_query($sql); 
$isauth = 0; 
while ($row = $db->sql_fetchrow($result)) 
{ 
if ($row['group_id'] == 'insert_group_id_here' || $row['group_id'] == 'insert_group_id_here') 
{ 
$isauth = 1; 
} 
} 

if($userdata['session_logged_in']){ 
?> 

<div align="left"> 
<center><font size="1" face="Verdana">Hallo, <?php echo $userdata[username] ?>! 
</font></center> 
<font size="1" face="Verdana"> 

<?php 
}else{ 
?> 

</font> 

<form action="login.php" method="post"><table border="0" cellpadding="3" cellspacing="1" width="100%"> 
        <tr> 
         <td> 
           <font size="1" face="Verdana">Username:<br> 
           <input class="searchbox" type="text" name="username" size="10" maxlength="40"> 
            </font> 
         </td> 
        </tr> 
        <tr> 
         <td> 
           <font size="1" face="Verdana">Passwort:<br> 
           <input class="searchbox" type="password" name="password" size="10" maxlength="25"> 
         </font><br> 
         <font size="1" face="Verdana">Auto Login: </font> 
      <font face="Verdana" size="1"><input class="text" type="checkbox" name="autologin"></font><br> 
         </td> 
        </tr> 
        <tr align="center"> 
         <td colspan="2"><font size="1" face="Verdana"><input type="submit" name="login" 

value="Login"></font></td> 
        </tr> 
        <tr align="center"> 
         <td colspan="2"><font face="Verdana"><span class="smalltext"> 
         <font size="1"> 
         <a href="profile.php?mode=sendpassword" class="smalllink">Passwort 
         vergessen?</a></font></span><br> 
         <font size="1"> 
         <a href="profile.php?mode=register">Registrieren</a></font><font size="1">! 

         </font></font></td> 
        </tr> 
      </table> 
     <input type="hidden" name="redirect" value="start.php"> 
</form> 
&nbsp; 

<?php 
} 
?> 
damit funzt alles, jedoch wird eben beim einloggen kein Hallo gelaber angezeigt sondern immer noch das formular

nun hab ich von früheren versuchen immernoch diesen code in der start.php

Code: Alles auswählen

<?php 
//Benötigte Dateien und Variablen von phpBB 
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); 
und nach dem HTML teil wieder das formular

Code: Alles auswählen


<?php 
                      
if (!$userdata['session_logged_in']) 
{ 
    echo " <form method=\"post\" action=\"login.php\">  "; 
    echo " <table align=\"center\" width=\"90%\" cellpadding=\"1\" cellspacing=\"1\" border=\"0\" class=\"login\">";
    echo " <tr><td>&nbsp;User:</td><td><input type=\"text\" name=\"username\" size=\"7\" /></td></tr>";
    echo " <tr><td>&nbsp;Pass:</td><td><input type=\"password\" name=\"password\" size=\"7\" /></td></tr>";
    echo " <tr><td colspan=\"2\" align=\"center\" valign=\"middle\">Autologin&nbsp;<input class=\"text\" type=\"checkbox\" name=\"autologin\" /></td></tr>";
    echo " <tr><td colspan=\"2\" align=\"center\"><input type=\"submit\" name=\"login\" value=\"Login\" /></td></tr>";
    echo " </table><input type=\"hidden\" name=\"redirect\" value=\"start.php\" /></form>";
}  
else 
{ 
    echo "Drin"; 
} 

?>
dieses funktioniert auch, (und das is die überraschung) nach dem ich mcih irgendwo eingeloggt habe steht dort mein equvalent zum hallo username "Drin" - das steht da (so wie cih es wollte) wenn man eingeloggt ist, und wenn nicht steht an dessen stelle das formular.

nun würd ich doch sagen bassieren beide auf dem selben prinzip (sind sogar die selben befehle use)

warum geht es im leftmenu nicht und im start.php schon (beide liegen im selben verzeichnis) beide sind doch im nachhinein sogar in der selben datei weil leftmenu in die start.php includiert wird.

Kann mir jemand helfen?

danke für jede antwort

cu
vinc
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag von Acid »

nach dem <body> tag kommt folgendes:
<?php
//Benötigte Dateien und Variablen von phpBB
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);

?>
danach HTML gelaber inhalt der seite
danach kommt der rest
<?php
$userdata = session_pagestart($user_ip, PAGE_LOGIN);
init_userprefs($userdata);
Du hast als die farblich markierten Zeilen doppelt drin stehen ? Einmal reicht (das obere)..
Benutzeravatar
Vincent
Mitglied
Beiträge: 130
Registriert: 10.03.2004 14:05
Wohnort: Amberg
Kontaktdaten:

Beitrag von Vincent »

ich weis, ändert aber tortzdem nichts daran dass der code nicht funzt.

ich hatte es unten und oben
und dann nur oben,
beides das selbe

Die Login ändert sich nicht

danke für die antwort übrigens
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag von Acid »

Speichere die besagte, komplette Datei als *.txt ab und poste hier einen Link.
Antworten

Zurück zu „phpBB 2.0: Mods in Entwicklung“