Seite 1 von 2

Wiedermal ein Session/Cookie- Problem

Verfasst: 25.11.2008 20:55
von tschortschi
Grüß euch ;)
Also erstmal ein großes Lob an die Forengemeinschaft, hab schon so manchen Mod mit eurer Hilfe erfolgreich eingebaut ;)
Nun aber bin ich auf das phpbb3 umgestiegen und habe das Problem dass ich, wenn ich über das externe Login eine Session starte, sobald ich einen anderen Link öffne, wieder ausgeloggt werde! Die Cookies habe ich überprüft, wobei ich folgende Einstellungen vorgenommen habe:

Domain: .pernau.laumat.at
Cookie-Name: pernau
Cookie-Pfad: /forum/

die Seite selbst liegt auf:
http://pernau.laumat.at/new
Das Forum selbst auf
http://pernau.laumat.at/forum

Nun habe ich einfach jeden Link mit der SID versehen, er bleibt mir zwar eingelogged, jedoch kann ich nun auf die user->data nicht mehr zugreifen und keine Daten mehr abfragen! Woran könnte das liegen?

Der Code meiner login.php:

Code: Alles auswählen

<?php
session_name(); 
session_start();


    define('IN_PHPBB', true);
    $phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : '../forum/';
    $phpEx = substr(strrchr(__FILE__, '.'), 1);
    require($phpbb_root_path . 'common.' . $phpEx);
	include $phpbb_root_path . 'includes/functions_user.php';

    // Start session management
    $user->session_begin();
    $auth->acl($user->data);
    $user->setup();
	//$SID= user->data[''];

    //Abfragen von ggf. uebermittelten Parametern
    $username     = request_var('username', '', true);
    $password     = request_var('password', '', true);


    $logout     = request_var('mode', '');

    //Wenn username und passwort uebergeben worden sind, starte einen Anmeldeversuch
    if (isset($username) && isset($password))
    {

        $auth->login($username, $password, $autologin, $viewonline);
    }
    //Wenn ueber einen Link der mode=logout lautet und eine SID uebergeben wurde, starte das ausloggen des Users
    if ($_GET["navi"] == 'logout')
    {
        $user->session_kill();
    }

echo '<br><br>';
    if ($user->data['is_registered'])
    {
//EINGELOGGT:
echo '<center><br><table width="168" border="0">
				<tr><td>';
				echo '<p>';
				//Ausgabe Benutzername
				print("Eingeloggt als");
				print("<br>");
				echo"<b>".$username."</b>";

//USERSPEZIFISCHE AUSGABEN
}
else{
	//IST DAS FORMULAR NOCH NICHT ABGESENDET, GIB ES AUS
			if(!isset($_POST["login"]))
				{
					echo '<form action="index.php" method="post">
						  <table width="168" border="0">
							<tr>
							  <td width="92"><p>Username:</p> </td>
							  <td width="50"><input name="username" type="text" size="10" /></td>
							</tr>
							<tr>
							  <td><p>Passwort: </p></td>
							  <td><input name="password" type="password" size="10" /></td>
							</tr>
							<tr><td><center><input type="submit" name="login" value="Login" /></td><td><input type="button" value="Registrieren" onclick=location="index.php?navi=register"><center></center>
							</td></tr>
						  </table>
						</form>';
				}
?>
Wäre euch über jeden Tipp dankbar!
lg

Tschortschi :roll:

Verfasst: 25.11.2008 21:43
von piero
stell mal den cookie-path zurück auf "/", weil kann sein, dass über /new/ jetzt kein forumcookie mehr angeschaut werden kann ;)

Verfasst: 25.11.2008 22:39
von Miriam
Probier':
Domain:
Cookie-Name: pernau
Cookie-Pfad: /forum

Verfasst: 25.11.2008 22:40
von piero
kann das cookie überhaup gesetzt werden, wenn keine domain angegeben wurde?

Verfasst: 25.11.2008 23:52
von Miriam
Im Normalfall: Ja.

Verfasst: 26.11.2008 15:05
von tschortschi
vielen dank für die rückmeldungen!
Also ich habe alle möglichen Änderungen vorgenommen, leider hat sich nichts verbessert! Er legt jedoch laut Firefox ein Cookie nahmens PHPSESSID an, welcher den Pfad '/' besitzt. Habe testhalber auch den Pfad auf /new gesetzt, leider auch ohne Erfolg!

lg

Verfasst: 26.11.2008 17:13
von Miriam
Hast Du mal 'nen Testuser?

Verfasst: 26.11.2008 20:01
von tschortschi
ja natürlich:

user: tester
passwort: pernau

Verfasst: 26.11.2008 21:09
von tschortschi
Mannomanno... bin gerade draufgekommen dass ich meine "Werde ausgeloggt"- Erkenntnis darauf bezog, dass ich den usernamen nicht ausgeben konnte, da ich diesen ja mit $username ausgegeben habe, was jedoch nur die _POST variable vom Formular war ;) habs nun mit der user->data['username'] gemacht und es funktioniert super!

Nun habe ich allerdings das Problem dass ich, wenn ich die Links wie Profil ändern öffnen möchte, im Forum nicht eingeloggt bin, da meine $SID ab einem Seitenwechsel nichtmehr vorhanden ist! Wird die $SID irgendwo gespeichert oder kann man sich diese nicht mehr zurückholen?

Vielen Dank
lg

Verfasst: 26.11.2008 21:28
von Miriam
Die Session ID wird normalerweise im Cookie gespeichert.
Du hast aber für den externen Login den Pfad new drin und für das Forum forum.