Seite 1 von 1
					
				Forums-Logout auf Webseite
				Verfasst: 06.10.2007 17:35
				von legiondesringes
				Hallo, ich bin noch ein absoluter php-Neuling und habe ein kleines (evtl. auch mittleres) Problem. Ich habe auf meiner Homepage ein Login-Formular für das phpbb-Forum eingebaut. Das klappt auch sehr gut. Nun wollte ich als nächste Stufe erreichen, dass nach dem Login der Logout-Button anstelle des Login-Forms erscheint. Dies klappt leider nicht. Ich es wird immer nur wieder das Loginform angezeigt. Hier mal der Code:
Code: Alles auswählen
<?php
         if ($user->data['user_id'] == 0)
        {
?>
              <form action="/Forum/login.php" method="post" style="background-image:url(images/gen_background.jpg)">
              Benutzername:<br>
              <input class="login" type="text" name="username"><br>
              Passwort:<br>
              <input class="login" type="password" name="password"><br>
              Eingeloggt bleiben
              <input class="checkbox" type="checkbox" name="autologin"><br>
              <input type="hidden" name="redirect" value="../index2.php"/>
              <input class="mainoption" type="submit"  name="login" value="Login">
              </form>
<?php
        }
         else
        {
?>
              <form action="/Forum/index.php?mode=logout&sid=<?php echo $user->data['session_id']; ?>" method="post">
              <input type="hidden" name="redirect" value="../index2.php" />
              <input type="submit" value="Logout" /></form><br>
<?php
        }
?>
Ich hoffe ihr könnt mir weiterhelfen. In der Suche habe ich nämlich nichts gefunden. 
Vielen Dank im Vorraus
Tim
 
			 
			
					
				
				Verfasst: 07.10.2007 08:33
				von Underhill
				Hi,
ist denn nach dem Login 
 vorhanden? oder welcher Wert ist da drinn?
Einfach mit mal
Code: Alles auswählen
<?php
echo $user->data['user_id'] . '<hr />'; 
if ($user->data['user_id'] == 0)
ausgeben lassen..
Ich gehe mal davon aus, dass da nichts anderes ausser NULL drinn sein kann..
Gruß
Underhill
 
			 
			
					
				
				Verfasst: 07.10.2007 15:18
				von legiondesringes
				Danke erst einmal für deine Hilfe.
Ich habe deine Code-Zeile eingefügt.
Underhill hat geschrieben:
Einfach mit mal
Code: Alles auswählen
<?php
echo $user->data['user_id'] . '<hr />'; 
if ($user->data['user_id'] == 0)
ausgeben lassen..
Ich gehe mal davon aus, dass da nichts anderes ausser NULL drinn sein kann..
 
Tatsächlich gibt er mir gar nichts aus. Es erscheint nur die <hr>-Linie.
Also wird scheinbar gar keine user_id geladen.
Ich poste mal sämtlichen php-Code meiner Seite:
Anfang:
Code: Alles auswählen
<?php
//Benötigte Dateien und Variablen von phpBB
define('IN_PHPBB', true);
$phpbb_root_path = './Forum/';
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);
?>
Loginform:
Code: Alles auswählen
<?php
         echo $user->data['user_id'] . '<hr />';
         if ($user->data['user_id'] == 0) 
        { 
?> 
              <form action="/Forum/login.php" method="post" style="background-image:url(images/gen_background.jpg)"> 
              Benutzername:<br> 
              <input class="login" type="text" name="username"><br> 
              Passwort:<br> 
              <input class="login" type="password" name="password"><br> 
              Eingeloggt bleiben 
              <input class="checkbox" type="checkbox" name="autologin"><br> 
              <input type="hidden" name="redirect" value="../index2.php"/> 
              <input class="mainoption" type="submit"  name="login" value="Login"> 
              </form> 
<?php 
        } 
         else 
        { 
?> 
              <form action="/Forum/index.php?mode=logout&sid=<?php echo $user->data['session_id']; ?>" method="post"> 
              <input type="hidden" name="redirect" value="../index2.php" /> 
              <input type="submit" value="Logout" /></form><br> 
<?php 
        } 
?> 
Ich hoffe ihr könnt mir weiterhelfen.
Gruß
Tim
 
			 
			
					
				
				Verfasst: 07.10.2007 16:07
				von Underhill
				Hi,
teste mal
Ist da etwas nach der Anmledung drinn?
Gruß
Underhill
 
			 
			
					
				
				Verfasst: 07.10.2007 22:42
				von legiondesringes
				Zuerst einmal: Herzlichen Dank.
Mit
wird die ID nun tatsächlich ausgegeben.
Nicht eingeloggt: ID=-1
Eingeloggt: ID= 17
Leider kam nach dem Login noch nicht der Logout-Button.
Ich habe dann rumexperimentiert und in der If-Bedingung auch
user->data durch userdata ersetzt. Außerdem musste noch was in Form action etwas geändert werden.
Jetzt klappt das wunderbar.
Ich habe nur noch eine Frage: Wann benutze ich user->data und wann userdata?
Gruß
Tim
 
			 
			
					
				
				Verfasst: 08.10.2007 16:26
				von Underhill
				Hi,
$userdata[] ist ein Array das nach den nötigen phpBB-Includes verfügbar ist.
mit $user->data[] wird innerhalb der phpbb Datei mit einem Array gearbeitet (gepusht?)
Gruß
Underhill
			 
			
					
				
				Verfasst: 08.10.2007 21:51
				von gn#36
				Arbeitest du mit phpbb2 oder phpbb3?
Die beiden Versionen verwenden unterschiedliche Variablen.
In phpbb2 stehen alle Userdaten in $userdata und es gibt das Objekt $user nicht (zu dem auch $user->data gehört). Phpbb3 kennt dagegen $userdata nicht.
Aus den eingebundenen Includes würde ich schließen dass du phpbb2 nutzt, daher solltest du alles auf $userdata umstellen.
			 
			
					
				
				Verfasst: 20.11.2007 14:41
				von legiondesringes
				ich hab jetzt folgendes eingebaut. Klappt bestens:
Code: Alles auswählen
<?php
//Benoetigte Dateien und Variablen von phpBB
define('IN_PHPBB', true);
$phpbb_root_path = './Forum/';
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);
//fuer LogOut Button
if ($_POST['ausloggen'] == 1){
$userdata = array();
$_SESSION = array();
}
?>
(das ist im Kopf)
login/ Logout selbst: 
Code: Alles auswählen
<?php
		if ($userdata['user_id'] == -1)
		{
              ?>
                         <tr>
                         	<td>Login</td>
                         </tr>
                         <tr>
                        	<td>
			    <form action="/FORUM/login.php" method="post"
                             	  >
			    	Benutzername:<br>
                                 <input class="login" type="text" name="username"><br>
                                 Passwort:<br>
                                 <input class="login" type="password" name="password"><br>
				Eingeloggt bleiben
	                        <input class="checkbox" type="checkbox" name="autologin"><br>
                                 <input type="hidden" name="redirect" value="../index2.php"/>
                                 <input type="submit"  name="login" value="Login">
	       		    </form>
                             <a  style="font-size:12px; color:#733A1A;" href="/FORUM/profile.php?mode=register&sid=<?php echo $userdata['session_id']; ?>">Registrieren</a>
              <?php
              	}
                 else
                 {
              ?>
                         <tr>
                         	<td>Logout</td>
                         </tr>
                         <tr>
                        	<td>
	                    <form action="/FORUM/login.php?logout=true&sid=<?php echo $userdata['session_id']; ?>"
                                   method="post">
			    	<input type="hidden" name="redirect" value="../index.php" />
				<input  type="submit" value="Logout"  />
                             </form><br>
	     <?php
              	}
              ?>
 
			 
			
					
				
				Verfasst: 20.11.2007 21:25
				von onken
				danke legiondesringes 
