• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Frage zu Session_Start

Status
Für weitere Antworten geschlossen.

MadMax777

Neues Mitglied
Hallo Leute,

wie lange bleibt eine Session bestehen?
Bleibt eine Session auch bestehen wenn ich innerhalb meiner HP eine andere Seite öffne?

Vielen Dank.

mfg
Markus
 
Irgendwie klappt es bei mir noch nicht.
So bald ich die Index-Seite wieder aufrufe über einen Link, geht mir die Session komplett verloren.
 
Ja genau der Code. Sorry. Kommt sofort.

PHP:
        <?php
		
		//Eingaben Serverseitig Überprüfen
		if (strlen($_POST['Benutzer']) < 4) {
			$error_style["Benutzer"] = "border-color:#F00F00;";
		}

		if (strlen($_POST['Passwort']) < 4) {
			$error_style["Passwort"] = "border-color:#F00F00;";
		}
		
		$dbhost = "localhost";
		$dbpasswort = "jesus777";
		$dbbenutzername = "markus";
		$dbdatenbank = "MdBase";
		
	$db = mysql_connect($dbhost,$dbbenutzername,$dbpasswort);
 	mysql_select_db($dbdatenbank,$db);

	$benutzername = $_POST['Benutzer'];
	$passwort = $_POST['Passwort'];
	$md5passwort = md5($passwort);
	$dbsql = "select ID, Vorname, Nachname, Benutzername from LogIn where Benutzername = '$benutzername' and Passwort = '$md5passwort'";

	$ergebnis = mysql_query($dbsql,$db);
	$row = mysql_fetch_object($ergebnis);
	
	echo 'Hier sollte die Session ID stehen ...'."\n";

	if ($row->ID < 1 and $Session == '')
	{
		$seite = $_SERVER["PHP_SELF"];
		$laenge = strlen($seite);
		$page = substr($seite,1,$laenge-1);
		
      	echo '<form name="LoginForm" method="post" action="'.$page.'">'."\n";
        echo '<div align="center">'."\n";
        echo '<input name="Benutzer" type="text" value="Benutzername">'."\n";
        echo '<input name="Passwort" type="password" value="*****">'."\n";
        echo '<input type="submit" name="Login" value="Login" style="width:50px;">'."\n";
		
        echo '<input name="Registrieren" type="button" onClick="popup=window.open('./registrieren.php')" value="Registrieren" style="width:100px;"><br>'."\n";
		
        echo '<font size="-6" face="Comic Sans MS">Wozu registrieren? </font> </div>'."\n";
      	echo '</form>'."\n";
	}
	else
	{

	   session_start ();
       
	   if ($Session == '')
	   {
	   $_SESSION['Vorname'] = $row->Vorname;
	   $_SESSION['Nachname'] = $row->Nachname;
	   $_SESSION['Benutzername'] = $row->Benutzername;
	   $Session = session_id ();
	   }

       echo '<div align="center">'."\n";
	   echo '<font size="-3" face="Geneva, Arial, Helvetica, sans-serif">'."\n";
	   echo 'Hallo '.$_SESSION['Vorname'].' '.$_SESSION['Nachname'].'<br>'."\n";
	   echo 'du bist jetz als ...<br>'."\n";
	   echo $_SESSION['Benutzername'].'<br>'."\n";
	   echo '... angemeldet.<br>'."\n";
	   echo '<br>'."\n";
	   echo 'Viel Spaß!<br>'."\n";
	   echo '</font> </div>'."\n";

	}
    mysql_free_result($ergebnis);
    mysql_close($db);

    ?>
 
erstmal muss <?php das erste in der datei sein da dürfen keine leerzeichen sein...

dann muss direkt vor der ersten ausgabe und vor der verwendung irgendwelcher daten aus $_SESSION session_start(); geschrieben werden und dann kannst du daten in $_SESSION schreiben und zwar nicht so

$_SESSION = 'bla';

sondern z.b. so

$_SESSION['username'] = 'hans';

dieses kannst du auf deiner seite so auslesen

if(isset($_SESSION['username'])) {
echo $_SESSION['username'];
}

das musst du machen da du nie weiß ob irgendwo ein fehler aufgetreten ist und die session vielleicht garnicht initialisiert wurde. ;)

jetzt solltest du keine probleme mehr haben, und wenn doch PHP: Sessions - Manual :)

MFG Miah :-*
 
Nein er hat gut geträumt. Wenn das nicht so wäre würden bereits die Header abgeschickt werden, und der Session Cookie kann nicht mehr erzeugt werden^^
[edit]
enseiden er verwendet diese eine Buffer Funktion, kp wie die heißt

Es ist sch....egal wann ich die Session starte.

PHP:
Hallo Welt
    <?php
          session_start();
          $_SESSION['user_id'] = 1;
          var_dump($_SESSION);
    ?>

Funktioniert!
 
Keine Fehlermeldung mit Error Report?

Sehr sehr komisch... Mit dem ersten ausgegebenen Text, sind die Header normalerweise abgesendet, also würde es die Session nicht mehr speichern könnnen. Hatte selber das problem, wobei da schon alleine der BOM vermerk (da nicht als leerzeile angezeigt) der ausschlaggebende Grund war.

Naja, solange es funktioniert passt es ja.
 
@Patrick Leuppert: Dann wirst du das output buffering bei dir warscheinlich auf On haben oder Cookies deaktiviert denn unter normalen umständen gehts nicht...
Und wenn du es hast und einfach nur kein bock hattest das hier dazu zu schreiben dann solltest du vielleicht aufhören solchen müll zu posten... danke ^^
 
Hast du heute Nacht schlecht geträumt? Das ist ja mal totaler Quatsch.
bezog sich auf den <?PHP tag

Nein er hat gut geträumt. Wenn das nicht so wäre würden bereits die Header abgeschickt werden, und der Session Cookie kann nicht mehr erzeugt ...
bezieht sich auf session_start();

session_start() sollte tatsächlich die erste php-zeile sein, da ein session_cookie sonst einen fehler verursachen kann, je nachdem wie session.use_cookies in der ini eingestellt ist.
 
session_start() sollte tatsächlich die erste php-zeile sein, da ein session_cookie sonst einen fehler verursachen kann, je nachdem wie session.use_cookies in der ini eingestellt ist.

Danke^^

Der Informationshalber noch für Personen, die tatsächlich noch die Boardsuche verwenden (Solls ja geben xD):

Sollte man sich an das MVC-Konzept halten, kann man es auch an der Stelle platzieren, wo man es zum ersten mal braucht. Genauso wie weitere header() angaben. Man muss nur darauf achten, das dies vor der ersten ausgabe geschieht.
Ein Leerzeichen vor einem <?php Tag gilt auch schon als Ausgabe.
Achtung: Sollte man mit UTF8 arbeiten ist eine Fehlersuche zum verzweifeln, spreche aus eigener Erfahrung.
Code:
 Warning:  Cannot modify header information - headers already sent by (output started at
wird immer wieder angezeigt.
Lößung: BOM Signatur nicht mit einbinden
 
Status
Für weitere Antworten geschlossen.

Neueste Beiträge

Zurück
Oben