Session und Login



  • Hallo,

    ich habe gerade angefangen mich mit dem Thema Sessions zu beschäftigen und habe jetzt ein Problem. Ich habe drei php Seiten, die erste eine Login Seite mit Fromular in der man ein Passwort eingibt, die zweite ein Formular in der man auch Daten eingibt und die dritte Seite in der die Daten der zweiten Seite ausgewertet werden.

    Die Login.php Seite:

    <?php
    	session_start();
    ?>
    
    <form method="post" action="index.php" target="_self">
    <table width="500" border="0" cellspacing="0" cellpadding="0">
    <tr>
    	<td><font face="Arial, Helvetica, sans-serif" size="2">Passwort</font></td>
    </tr>
    
    <tr>
    	<td>
            <input type="password" name="pass">
    		<input type="submit"  value="einloggen">
    		<input name="PHPSESSID" type="text" id="PHPSESSID" value="<?php echo session_id();?>">
    	</td>
    </tr>
    </table>
    </form>
    

    Die index.php sieht ungefähr so aus:

    <?php
     session_start();
    
     include("include.php");
    
    	if( !isset($_POST['pass']) )
    	{
    		//show admin-login
    		include("login.php");
    		exit;
    	}
    
    	$pass1 = md5( $_POST['pass'] );
    	$_SESSION['pass'] = $pass1;
    
    	if ( $pass1 != $passwort )
    	{
    		echo "<font face=\"Arial, Helvetica, sans-serif\" size=\"2\">Falsche Passworteingabe</font>";
    		include("login.php");
    		exit;
    	}
    ?>
    
    <form name="form1" method="post" action="seite3.php">
    <input name="Submit2" type="submit" class="submit" value="Seite anlegen">
    <input name="PHPSESSID" type="text" id="PHPSESSID" value="<?php echo session_id();?>">
    </form>
    

    So, in der include.php steht das zu vergleichende Passwort md5 verschlüsselt.
    Die seite3.php sieht dann ungefähr so aus:

    <?php
      session_start();
    
    include("include.php");
    
    if( !isset($_SESSION['pass']) OR $_SESSION['pass'] != $passwort )
    {
    	include("login.php");
    	exit;
    }
    .
    .
    .
    Verarbeitung der Daten,
    bei Erfolg: include("index.php");
    sonst nichts.
    

    ?>

    Mein Problem ist nun das auf der seite3.php das $_SESSION['pass'] leer ist und somit ich wieder beim login lande.
    Ich habe in meiner php.ini das register_globals auf off stehen.
    Was mache ich falsch?
    Ich möchte einfach das man so lange die Seiten aufrufen kann, also index und seite3 wie man eingeloggt ist.
    Auf der index habe ich dann noch ein Logout link mit session_unset().
    😕

    Ich danke euch schon mal für eure Erklärungsversuche und hoffe das ich mich nicht all zu doof anstelle.


Anmelden zum Antworten