Nach Anmledung kein session-> kein internen bereich

Dolphon

Erfahrenes Mitglied
Moin.

Ich hab folgendes Problem.
En Benutzer kann sich auf meine Seite mit User und PW einloggen. Dies klappt auch. Nachdem login kommt
der Benutzer mit hilfe eines Links in den internen bereich. Diese Seit ist so geschützt, das nur diejenigen drauf
kommen wleche sich angemledet haben. Doch leider kommt man nicht drauf, obwohl man sich angemeldet hat.
Hier mal der Code.


am Anfang von index.php
PHP:
<?php session_start() ?>

in die index.php wird folgendes includet:

PHP:
.....<form action="../login.php" method="post">     
    <td bgcolor="#e7e7e7" align="center" colspan="2"> 
    <b>Bitte erst anmelden</b> 
    </td> 
        <tr>
    <td width="150" bgcolor="#e7e7e7">Benutzername</td> 
    <td width="200" bgcolor="#ffffff"><input type="text" name="username" size="20" class="input"<?php if($_POST['username'] !=  
"" ) {echo ' value="'.$_POST['username'].'"';} ?>></td> 
        </tr>
        <tr>
    <td width="150" bgcolor="#e7e7e7">Passwort</td> 
    <td width="200" bgcolor="#ffffff"><input type="password" name="password" size="20" class="input"></td> 
        </tr>
        <tr>
    <td bgcolor="#e7e7e7" align="center" colspan="2"> <a href="index.php?main=pwvergessen">Passwort
      vergessen?</a> 
 <br>
    <input type="submit" name="submit" value="Anmelden" class="button"> 
    </td> </tr>
    
    
      </table>
<p></td>
        </tr></form>......

hier der code aus der login.php

PHP:
<?php 
require("gb/config.inc.php"); 

if(!($db = mysql_connect($db_host, $db_user, $db_pass))) //baue datebankverbindung auf 
  die(mysql_error());  //wenn nicht geht, gib fehlermeldung aus 
else //wenn doch geht 
{ 
  if(!mysql_select_db($db_name, $db)) //wähle datenbank aus 
      die(mysql_error());   //wenn das nicht geht, gib fehler aus 
} 

if(!$_POST['username'] || $_POST['username'] == "") { 
  echo '<p align="center">Sie haben keinen Benutzernamen eingegeben!<br><br><a href="index.php?main=11">Zurück</a></p>'; 
}elseif(!$_POST['password'] || $_POST['password'] == "") { 
  echo '<p align="center">Ein Passwort brauchen wir schon ;-)<br><br>'; 
}else{ 
  $password = md5($_POST['password']); 
  $query = @mysql_query("SELECT id, user, pw, email, vorname, nachname FROM benutzer WHERE user = '".$_POST['username']."'") or die('Select ist 
fehlgeschlagen!'); 
  $result = @mysql_fetch_object($query) or die('<p align="center">Sorry, aber dieser Benutzername existiert nicht!<br><a 
href="index.php?main=11">Zurück</a></p>'); 
 

if ($_POST['username']==$result->user && $password==$result->pw) { 


    $_SESSION["id"] = $result->id;
    $_SESSION["user"] = $result->user;
    $_SESSION["email"] = $result->email;
    $_SESSION["vorname"] = $result->vorname;
    $_SESSION["nachname"] = $result->nachname;

    echo '<p align="center">Login erfolgreich!<br><br><a href="intern/intern.php?'.session_name().'='.session_id().'">Weiter</a></p>';     
} 

else{
    echo '<p align="center">Sorry, aber dieses Passwort ist falsch!<br><br>'; 
    die;
  
}}
?>

und nun hier der Anfang code aus der intern.php
PHP:
<?php 
session_start(); 
if(!isset($_SESSION['user']) || $_SESSION['user'] == '') {

header("Location: http://www.xxxxxx.de/index.php"); 
  die; 
}
?> 

TEst
Test
 
Jetzt klappt es.
Besten Dank.

Mich wunderts nur, dass es bei einem anderen Skript, welches den selben Aufbau hat, vor einem Jahr einwandfrei gelaufen ist. Habe es seidem auch nicht mehr getetst.
 
Zurück