weiterleitung via header()

  • Hallo habe da mal ein kleines Anliegen! Es geht darum ich habe ein loginscript, erstmal ohne datenbankabfrage erstellt!!!
    Der Benutzer bekommt ein Formular(index.php) und wenn alle Daten korrekt sind sind soll er auf die geschuetzt.php weitergeleitet werden.
    In geschuetzt.php checke ich die session ob diese auch in der index.php gesetzt wurde nachdem alle dateneingaben richtig sind.
    Weiterhin sage ich in der geschuetzt.php, wenn die Session in index.php nicht gesetzt wurde, dann header("Location: http://localhost/test/index.php")
    In der index.php sage ich wenn alle Nutzereingaben richtig, dann header("Location: http://localhost/test/geschuetzt.php").
    Leider werde ich nicht nach richtigen Nutzereingaben auf die geschuetzt.php weitergeleitet. Wo hängt da das Problem? Hat jmd da eineI dee, habe schon viel probiert komme, aber leider nicht weiter!!!! danke für viele antworten

  • Gibts eine Fehlermeldung?
    Wenn nicht - probier mal am anfang des scripts: error_reporting(E_ALL);


    Wenn kein Fehler vorhanden, dann teste mal ob Du in der geschuetzt.php ankommst.
    Also in geschuetzt.php gleich als erste Zeile ein:
    echo "test"; die;


    Dann weißt Du schon mal ob die Weiterleitung geht.
    Wenn Du nicht in der geschuetzt.php landest, dann probier mal ein echo "test"; die; VOR dem header("Location: http://localhost/test/geschuetzt.php")


    Wenn Du kein "test" augegeben bekommst, dann führt das Programm garnicht erst dort hin =)

  • jo,
    so würde ich da auch ran gehen schauen wo der Code überall hinkommt.


    aber weiterer wichtiger Punkt: es darf keine Ausgabe vor den header() kommen.
    auch nicht <doctype html> oder sowas.

  • okay danke ich probiere es erstmal alone in teh dark, wenn es nicht klappen sollte, werde ich mal den code posten =)))), hoffe ihr seid dann (morgen,übermorgen) noch da um den post dan zu lesen!!!

  • Dann wird es demnach:

    Weiterhin sage ich in der geschuetzt.php, wenn die Session in index.php nicht gesetzt wurde, dann header("Location: http://localhost/test/index.php")


    wohl so sein, dass Du aus der geschuetzt.php sofort wieder zurück zur index.php geschmissen wirst.


    Teste mal in der geschuetzt.php den Ablauf.
    Also Stück für Stück vortasten per Testausgaben per echo "test"; die;
    Evtl ist ja die Session garnicht vorhanden, oder eine if-Abfrage ist fehlerhaft ect.


    Achja - Sessions: hast Du die Sessions gestartet? ( session_start(); )
    Wenn nicht, dann gibts auch keine Session =)
    (session_start() immer am Anfang des Programms bevor etwas ausgegeben wurde)

  • also session habe ich gestartet und die wird auch gesetzt! bevor ich in die geschuetzt.php rein komme muss ik mich erst anmelden!nur wenn ich in der index.php alles richtig eingebe bekomme ich trotzdem das formular!



    so sieht der code aus!!!

  • kann das sein das die session gar nicht in der geschuetzt.php gesetzt wird, weil ich sage ja in der index.php action=index.php anstatt geschuetzt.php also wird geschuetzt.php nix mitgegeben über die url!!!
    man könnte ja über url ne session mitgeben oder parktisch header(.....geschuetzt.php?session=true) oder sowas, würde das funktionieren?

  • Mitgeben brauchste nix.
    Was mir auf Anhieb einfällt wäre, dass Du evtl in der geschuetzt.php die Session nicht gestartet hast.
    (wenn Du die Weiterleitung header(...) abfeuerst, dann läuft das Programm nicht weiter, sondern startet in der geschuetzt.php neu)


    teste mal in der geschuetzt.php die session mit
    echo $_SESSION[...]; die;

  • so erstmal danke!!!!habs hinbekommen und zwar so


    index.php


    geschuetzt.php


    warum bei geschuetzt.php die header so nen komisch pfad hat is allerdings noch unklar, aber hat gefuntzt

  • Jetz wirds komisch =)
    Warum denn erst $_SESSION und dann aber dort wo es gebraucht wird ein GET Wert in die Session packen?


    Zur index.php:
    alles was nach dem header(...) kommt wird nicht ausgeführt. Daher ist $_SESSION['eingeloggt'] nie true.


    Also das mit dem GET wieder weg und


    und in geschuetzt.php:


    Du kannst aber auch gleich in der index.php prüfen, ob weitergeleitet werden muss.
    Fänd ich sinnvoller erst weiter zu leiten, wenn login erfüllt ist.
    =)

  • jo ik wees bissel umständlich, aber es funktioniert! probiere deine version auch noch mal aus!!!!danke ;)


    kann ich den html code hinter else .... in der geschuetzt.php auch anders als mit dem affenklammern ausführen? is immer bissel blöd wenn man so häßlich php und html mischt!!

  • Das else kann weg.
    Du musst Dich mit den Funktionen die Du verwendest ein bissl auseinander setzen.
    Immer gut ist zB auf php.net die docu und die Bsp anzusehen. Aber nicht nur drüber gucken und gut, sondern auch verstehen.
    Denn wenn Du ein Script für einen Geschützten Bereich schreibst, dann aber nicht genau verstehst was die Funktionen eigtl machen,
    dann wissen warscheinlich andere mehr über evtl Lücken/Fehler als Du.

  • jo gucke mir die schon an und die bsp auch anders gehts nicht es sei denn man is schon ewig programmierer....also dein beispiel funktioniert nicht bei mir!!! wenn ik auf post umstelle erst recht nicht =((( mensch is doch doof, aber belib am ball :)

  • index.php


    geschuetzt.php:


    pfad musst du noch anpassen

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!