Seite 2 von 3

Verfasst: 08.03.2004 17:50
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
}
?>

Verfasst: 09.03.2004 10:17
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.

Verfasst: 09.03.2004 15:26
von RusTin
hab ich auch gestern gemerkt,...aber trotzdem danke ;)

Verfasst: 09.03.2004 23:06
von SirBerberitz
Fettes Merci an alle, vorallem an Acid !!!

Jetzt funzt es perfekt :lol:

Gruss

SirBerberitz

Verfasst: 10.03.2004 04:52
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

Verfasst: 10.03.2004 11:27
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.

Verfasst: 12.03.2004 17:50
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

Verfasst: 12.03.2004 22:28
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)..

Verfasst: 13.03.2004 12:53
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

Verfasst: 14.03.2004 10:06
von Acid
Speichere die besagte, komplette Datei als *.txt ab und poste hier einen Link.