Problem mit sessions

MTMonline

Mitglied
Hi,

ich versuche zur Zeit einen Bereich einer Internetseite dynamisch zu gestalten. Der Kunde soll die Inhalte dann über ein Formular eintragen können.
Dazu sollte er sich zunächst einloggen, eine sessionID erstellt und übermittelt werden.
Mein Problem ist jetzt, dass er sich zwar einloggen kann die sessionid auch in der URL angezeigt wird, jedoch nur auf der ersten Seite. Klicke ich eine andere werde ich wieder zum Login-Formular geleitet, als ob er keine ID finden würde.

Mein PHP-Code:

login.php
PHP:
if ($benutzername == 'test'){
	if ($passwort == 'test') {
			
		ini_set('session.use_cookies','0');
		session_name('id');
		session_start();
		$benutzername = 'Testbenutzer';
		$ip = $_SERVER['REMOTE_ADDR'];
		session_register('benutzername');
		session_register('ip');
		header('Location: einfuegen.php?id=' .session_id());
		exit;
				
		}
		else {
				echo "Benutzername korrekt, Passwort nicht korrekt!<br><br>";
				echo "<a href=\"login.htm\">Zurück</a>";
		}
	}
	
else {
		echo "Benutzername nicht korrekt!<br><br>";
		echo "<a href=\"form-login.htm\">Zurück</a>";
	}

checkuser.php
PHP:
function check_session(){
	ini_set('session.use_cookies', '0');
	session_name('id');
	session_start();
	if (!isset($_SESSION['benutzername']) || $_SESSION['ip'] != $_SERVER['REMOTE_ADDR']){
	session_destroy();
	header('Location: form-login.htm');
	exit;
	}
	}
	check_session();
	echo ('Wilkommen im geschützten Bereich, '.$_SESSION['benutzername'].'!<br/>');

Die Datei checkuser.php hab ich dann auf allen Seiten über include eingefügt.

mfg
Markus
 
ganz einfach:

PHP:
session_start();

Muss immer gestartet werden! Du startest nur wenn User=test und Passwort = test ist


PS Mein Tipp tu das session_start(); an den Anfang der Seite!
 
Zuletzt bearbeitet von einem Moderator:
Hat leider nicht geklappt.
Kann es evtl. sein dass irgend etwas mit meinen Links nicht stimmt. Wenn ich wie oben die Cookies deaktiviere und die sessionid über die URL übermittle, muss ich bei jedem Link innerhalb der Seite die session id mit angeben oder?

Ein Link von mir sind z.B. so aus:
PHP:
echo "<a href=\"form-aendern.php?" .session_id()."\">HINZUFÜGEN</a>";?>

Wenn ich mich aber einlogge und dann auf den Link klicke werde ich wieder zum Formular weitergeleitet. Auch wenn ich die URL vom Link kopiere gehts nicht.

Ändere ich aber in der URL (die exakt der des Links entspricht) der 1.Seite den "Datei Teil" und lass die ID stehen gehts schon.

Irgendwie wird die ID nicht übertragen oder?
 
du brauchst normalerweise überhaupt keine Sessionid in den Link schreiben. Das macht die Session automatisch.
Es versucht die Sessionid erst mit einem Cookie zu speichern und wenn das nicht klappt hängt er die ID automatisch an die Links. zumindest war das bei mir immer so der Fall.

Da du keine Cookies mit Sessions erlaubst schreibt er das nun in den Link
 
Zurück