Session funktioniert nicht, ich kann aber keinen Fehler finden

Hi ich habe folgenden PHP Code.
Mein Problem: Ich definiere zwar $_SESSION['name'] = $name,
schicke das ganze mit: header ('Location: index.php?'.session_name().'='.session_id()');
aber auf der anderen Seite kann ich $_SESSION['name'] nicht auslesen
Hier mal der Code von der Seite auf der die Session erstellt wird:

PHP:
<?php			include "connect.php";
				$name = $_POST['name'];
				$pw = $_POST['pw'];
						
					$sql = mysql_query("SELECT pw FROM members WHERE name = '$name'");
						while($row = mysql_fetch_array($sql)){
							if($row['pw'] == $pw){
								session_start();
								$_SESSION['name'] = $name;
								$_SESSION['pw'] = $pw ;
								header ('Location: index.php?'.session_name().'='.session_id().'');
								}
								else { echo 'falsches Passwort<br>';
										echo '<a href="index.php">zurück</a>';
									 }
								
								}
?>

Und hier soll der name angezeigt werden:

PHP:
<?php		session_start();
			echo $_SESSION['name'];
			
?>

Ich wäre für eine schnelle Antwort sehr dankbar
 
Hi,

Also du must Session_start() auf jeder Seite wo die Session verfügbar sein soll, in die erste Zeile schreiben.

PHP:
 if($row['pw'] == $pw){ 
                                session_start(); 
                                $_SESSION['name'] = $name; 
                                $_SESSION['pw'] = $pw ; 
                                header ('Location: index.php?'.session_name().'='.session_id().''); 
                                }

Ist nicht ganz richtig.

Ändere das mal in :

PHP:
 if($row['pw'] == $pw){ 
                                                               $_SESSION['name'] = $name; 
                                $_SESSION['pw'] = $pw ; 
                                header ('Location: index.php?'.$_SESSION['name'].''); 
                                }

das session_start(); schreibe am besten mit in die connect.php somit hast du das dann auf jeder Seite in der ersten Zeile stehen.
session.name(); damit kannst du nicht viel anfangen, weil die Session sollte nach möglichkeit nicht per get übergeben werden, weil du sonst globale Variablen mit definierten Variablen vermischt.

Du könntest auch $_REQUEST['name'] nehmen, müsstest das aber testen mit var_dum(); ob da auch was ankommt.

Wenn das nicht hilft, dann meld dich nochmal.

mfg

-> da Dream;
 
Normalerweise brauchst Du gar nicht [phpf]session_name[/phpf] und [phpf]session_id[/phpf] übergeben, wenn Du mit POST arbeitest.
Das macht der Browser dann intern. Wichtig ist halt hier auch, wie dreambaser es schon beschrieben hat, dass Du in jedem Script [phpf]session_start[/phpf]; einfügst.
 
Zurück