Antworten auf deine Fragen:
Neues Thema erstellen

Geschützter Bereich mit Session - Problem bei weiterleitung

Zero-PSD

Selbsternannter Held

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:
<?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:
<?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:
<?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:
<?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:
<?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:
<?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ß.
 

Chriss1987

me.drinkCoffee();

AW: Geschützter Bereich mit Session - Problem bei weiterleitung

Hi,

gibt es irgendwelche Fehlermeldungen?
ErrorReporting einschalten (E_ALL) und Seiten nochmals prüfen. Evtl. bekommst du dann deinen Fehler schon gelöst! ;) Sonst noch alle Variablen und derren Inhalt überprüfen! ;)

Noch ein Tipp: wenn du 2 getrennte Sprachvarianten hast, nicht alle Bereiche neumachen, lieber eine entsprechende php-Datei mit einem Array o.ä. einbinden und die Felder im Array benutzen.
Bsp:
PHP:
<?php
// en.php
$lang = array();
$lang['beg'] = 'Hello';
$lang['obj'] = 'World';
?>
<?php
// de.php
$lang = array();
$lang['beg'] = 'Hallo';
$lang['obj'] = 'Welt';
?>
<?php
// seite.php
include 'de.php';
echo $lang['beg'] . ' ' . $lang['obj'] . '!';
?>
So müsstest du nicht immer redunanten Code pflegen! ;)

Schöne Grüße aus dem Sauerland!
Chriss
 
Zuletzt bearbeitet:
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.616
Beiträge
1.538.358
Mitglieder
67.536
Neuestes Mitglied
QuestionMark
Oben