Servus,
ich habe auf einer Seite einen kleinen geschützten Bereich angelegt, der an für sich auch soweit seinen Zweck erfüllt, allerdings mit einem Haken: Vorab sei gesagt, dass es einmal einen deutschen Bereich und einmal einen englischen Bereich gibt und beide nach dem selben Schema aufgebaut sind.

Im deutschen Bereich liegen vier Dateien vor:
  • haendlerbereich.php - LogIn Formular mit Code der prüft
  • auth.php - guckt, ob Session gültig
  • logout.php - beendet momentane Session
  • seite1.php - enthält den geschützten Inhalt

haendlerbereich.php
PHP-Code:
<?php
     
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
      
session_unset();
      
session_destroy();
      
session_start();

      
$passwort $_POST['passwort'];

      
$hostname $_SERVER['HTTP_HOST'];
      
$path dirname($_SERVER['PHP_SELF']);

      
// Benutzername und Passwort werden überprüft
      
if ($passwort == 'haendler50392011') {
       
$_SESSION['angemeldet'] = true;

       
// Weiterleitung zur geschützten Startseite
       
if ($_SERVER['SERVER_PROTOCOL'] == 'HTTP/1.1') {
        if (
php_sapi_name() == 'cgi') {
         
header('Status: 303 See Other');
         }
        else {
         
header('HTTP/1.1 303 See Other');
         }
        }

       
header('Location: http://'.$hostname.($path == '/' '' $path).'/seite1.php');
       exit;
       }
      }
?>
auth.php
PHP-Code:
<?php
     session_start
();

     
$hostname $_SERVER['HTTP_HOST'];
     
$path dirname($_SERVER['PHP_SELF']);

     if (!isset(
$_SESSION['angemeldet']) || !$_SESSION['angemeldet']) {
      
header('Location: http://'.$hostname.($path == '/' '' $path).'/haendlerbereich.php');
      exit;
      }
?>
logout.php
PHP-Code:
<?php
     session_start
();
     
session_destroy();

     
$hostname $_SERVER['HTTP_HOST'];
     
$path dirname($_SERVER['PHP_SELF']);

     
header('Location: http://'.$hostname.($path == '/' '' $path).'/haendlerbereich.php');
?>
seite1.php - ruft auth.php via include auf

Soweit funktioniert das alles. Wenn ich jetzt aber in den englischen Bereich wechsle, um zu prüfen, ob dort auch alles funktioniert, werde ich nicht zu "seite1.php" weitergeleitet, sondern ich werde zu "haendlerbereich.php" weitergeleitet und verstehe beim besten Willen nicht weshalb.. Die Dateien mit Code folgen auch hier wieder:
  • retailerarray.php
  • auth.php
  • logout.php
  • seite1.php

retailerarray.php
PHP-Code:
<?php
     
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
      
session_start();

      
$passwort $_POST['passwort'];

      
$hostname $_SERVER['HTTP_HOST'];
      
$path dirname($_SERVER['PHP_SELF']);

      
// Benutzername und Passwort werden überprüft
      
if ($passwort == 'haendler50392011') {
       
$_SESSION['angemeldet'] = true;

       
// Weiterleitung zur geschützten Startseite
       
if ($_SERVER['SERVER_PROTOCOL'] == 'HTTP/1.1') {
        if (
php_sapi_name() == 'cgi') {
         
header('Status: 303 See Other');
         }
        else {
         
header('HTTP/1.1 303 See Other');
         }
        }

       
header('Location: http://'.$hostname.($path == '/' '' $path).'/seite1.php');
       exit;
       }
      }
?>
auth.php
PHP-Code:
<?php
     session_start
();

     
$hostname $_SERVER['HTTP_HOST'];
     
$path dirname($_SERVER['PHP_SELF']);

     if (!isset(
$_SESSION['angemeldet']) || !$_SESSION['angemeldet']) {
      
header('Location: http://'.$hostname.($path == '/' '' $path).'/retailerarray.php');
      exit;
      }
?>
logout.php
PHP-Code:
<?php
     session_start
();
     
session_destroy();

     
$hostname $_SERVER['HTTP_HOST'];
     
$path dirname($_SERVER['PHP_SELF']);

     
header('Location: http://'.$hostname.($path == '/' '' $path).'/retailerarray.php');
?>
seite1.php - wie auch schon zuvor

Ich bin dankbar für jede Hilfe. Meine Vermutung, ohne große Ahnung zu haben, ist, dass es mit den Sessions zusammenhängt? Ich würde mich über Antwort freuen.

Gruß.