Login mit Session

Methos

Erfahrenes Mitglied
Hallo zusammen,
ich wollte auf meine Seite nun ein login System einfügen. Leider bin ich noch nicht so der erfahrene PHP Programmierer, so das ich doch noch einige Fragen habe.

Das Tutorial das ich bei euch gefunden habe ( [PHP/mySQL] Login-System mit Sessions ) war auf jeden Fall schon mal sehr gut und hat auch soweit geklappt. Als ich es jedoch in die Seite einfügen wollte gings leider schon an mit den Schwierigkeiten.

Das Problem wird vermutlich sein, das meine Seitennavigation so aussieht:

Code:
      <br> <a href="index.php?show=intern" style="margin-left:0px" class="navi" > - Intern </a>
      <br> <a href="index.php?show=kontakt" style="margin-left:0px" class="navi" > - Kontakt </a>

<?
            switch ($_REQUEST['show']) {
                // Navigation-Links
                case "intern": require("intern.php"); break;
                case "kontakt": require("kontakt.php"); break;
                case "guestbook": require("guestbook.php"); break;
                // Default Link
                default: include("main.html");
                }
        ?>

Das Beispiel im Tutorial verwendet ja für die Verweise nur einfache Verweise. Diese klappen auch bei mir. Doch sobald ich versuche dies für meine Zwecke umzubauen schlägt es fehl.

Jetzt nun meine 2 Fragen:

1. Wie findet ihr die Navigation und welche verwendet ihr?
2. Falls der Navigationsaufbau schon soweit korrekt wäre, wie kann ich das loginSystem richtig einbauen?

Ich hoffe ihr könnt mir ein wenig weiterhelfen und bedank mich schon mal im voraus für eure Hilfe.
 
Was genau klappt denn nicht, wenn du es einbindest? (Fehlermeldung?)
Wenn du Sessions verwendest, darfst du natürlich nicht vergessen, diese vor jedweder Ausgabe an den Browser zu starten. So wie du das Script per require() bei dir einbindest, gibst du vorher schon Daten an den Browser aus.
Also muss entweder session_start() ganz an den Anfang oder du verwendest ob_start() und ob_end_flush().
 
Zuletzt bearbeitet:
wie gesagt das Tutorial funktioniert ohne Probleme. Aber ich weiß eben leider nicht wie ich das mit der aktuellen Navigation zusammenführe.

Den Header kann ich ja nicht ohne weiteres austauschen wie z.b. von formular.php nach index.php?show=formular

Ich kann jetzt auch gar nicht viel dazu sagen da ich mich irgendwie stark im Kreis drehe :(

Die Frage ist ja auch, muß ich noch zusätzlich den checkuser.php in jede Unterseite mit einbauen? Logischerweise ja eigentlich schon, da er ja sonst nicht weiß was geprüft werden muß. Allerdings erscheint dann auch immer

"Cannot add header information - headers already sent" Ich weiß das cookies und Sessions immer zuerst im Quelltext deklariert werden müssen. Aber hmm das dann umzusetzten bei einer index.php ist nicht so einfach.

Ich bitte auch nochmals um Entschuldigung, da ich genau weiß wie schwer es für euch sein muß dies alles nachzuvollziehen.
 
Wie ich schon sagte ;)

Code:
<br> <a href="index.php?show=intern" style="margin-left:0px" class="navi" > - Intern </a>
      <br> <a href="index.php?show=kontakt" style="margin-left:0px" class="navi" > - Kontakt </a>
Hier sendest du Daten an den Browser, was bedeutet, dass du deine Session vorher starten musst oder das ganze erst "pufferst" und am Ende ausgibst:
PHP:
<?php
  ob_start();
?>
<br> <a href="index.php?show=intern" style="margin-left:0px" class="navi" > - Intern </a>
      <br> <a href="index.php?show=kontakt" style="margin-left:0px" class="navi" > - Kontakt </a>

<?
            switch ($_REQUEST['show']) {
                // Navigation-Links
                case "intern": require("intern.php"); break;
                case "kontakt": require("kontakt.php"); break;
                case "guestbook": require("guestbook.php"); break;
                // Default Link
                default: include("main.html");
                }

             ob_end_flush();
        ?>

Bzgl. "Cannot add header information" ist das Problem das gleiche. Die Header sind schon gesendet, wenn deine Navigation ausgegeben wird.

Ich hab das ganze jetzt nicht getestet, hoffe mal das es funktioniert ;)
 
Zuletzt bearbeitet:
hmm in der index.php steht leider schon an erster Stelle

Code:
<?php
session_start ();
?>

Reicht es denn aus, wenn die Session einmal in der index.php gestartet wird oder muß diese auch in der checkuser.php sowie den ganzen internen Seiten eingefügt werden? sorry für die vermutlich dummen Fragen :(
 
Ich würde Output-Handler verwenden, denn du musst den User ja auch, vorrausgesetzt er ist nicht eingeloggt, per Header weiterleiten. Das geht ja auch nicht mehr, nachdem du die Navi ausgegeben hast.
 
oh je, dann werd ichs wohl doch lassen müssen. Schade, das Beispiel hat so schön geklappt.
 
Zurück