dor_neue: automatischer Aufruf einer PHP Frame-Seite

Also:
1. Ich habe eine bestehende Seite - die besteht aus Frames
2. Ein Frame davon wird ein Kontak-Formular, dass über mehrere Seiten geht
3. Da ich keine Fehleingaben vom User haben will - lass ich das Formular prüfen
..:: das erreiche ich indem das Formular ("first_page.php") mit drücken des submitbuttons sich selber nochmal aufruft (<form method = "post" action = "first_page.php">) und ich am Anfang des Dokumentes eine Prüfung aller Daten durchführe. 1. ob alle Pflichtfelder ausgefüllt sind und 2. ob alle Eingaben richtig gemacht sind.
4. Wenn diese Prüfung abegeschlossen ist, dann soll bitte die Seite "second_page.php" aufgerufen werden.
5. für mich der 1. Lösungsansatz war: header("Location: ..."); - geht nicht mehr da das Formular zu dem Zeitpunkt ja schon 1 mal durchlaufen wurde
6. 2. Lösungsansatz war JAVA: window.location.href="second_page.php" - Problem dabei - das funzt wenn ich es nur für eine normale Seite nutze - jedoch nicht wenn ich die Seite auch als Frame einsetze.
7. 3. Lösungsansatz seid IHR :-)

Ich weiß nicht mehr weiter...

PS: Wenn Ihr weitere Infos braucht - sagt Bescheid - wer mir sagt, google doch mal - hab ich schon aber ich muss auch zugeben, ich weiß nicht genau wie ich das Problem als Schlagwörter formulieren soll

  1. Grüße,
    window.DOOFEFRAME.location= DINGS?
    MFG
    bleicher

    --
    __________________________-
    Menschen an sich , sind nicht schlecht - es sind nur ihre Taten (c).
    Lieber bereuen gesündigt zu haben, als nicht sündigen und es später trotzdem bereuen.
    Boccaccio
  2. n'abend,

    1. Da ich keine Fehleingaben vom User haben will - lass ich das Formular prüfen
      ..:: das erreiche ich indem das Formular ("first_page.php") mit drücken des submitbuttons sich selber nochmal aufruft (<form method = "post" action = "first_page.php">) und ich am Anfang des Dokumentes eine Prüfung aller Daten durchführe. 1. ob alle Pflichtfelder ausgefüllt sind und 2. ob alle Eingaben richtig gemacht sind.

    Was du da machst, nennt man auch gerne mal Affenformular. Ich habe vor kurzem jemand Anderem versucht das mit einem praktischen Beispiel zu erklären. Das Beispiel wird für deine Zwecke sicher kein copy-n-paste Trick, jedoch sollte es aufzeigen, wie du sowas richtig hinbekommst.

    1. für mich der 1. Lösungsansatz war: header("Location: ..."); - geht nicht mehr da das Formular zu dem Zeitpunkt ja schon 1 mal durchlaufen wurde

    So ein Affenformular kann man auch 234234234234 Mal durchlaufen, wenn einem der Sinn danach ist. Erst wenn alle Angaben als gültig angesehen werden, werden die Angaben weiterverarbeitet.

      1. Lösungsansatz war JAVA: window.location.href="second_page.php" - Problem dabei - das funzt wenn ich es nur für eine normale Seite nutze - jedoch nicht wenn ich die Seite auch als Frame einsetze.

    Du sprichst von Javascript *nicht* von Java.

    Javascript macht den Umgang mit Frames eigentlich recht einfach. Da du deine Frame-Struktur nicht angegegeben hast und nicht erklärt hast welchen Frame du ansprechen möchtest, muss ein Link auf die entsprechende Seite der Dokumentation wohl genügen.

    weiterhin schönen abend...

    --
    Freundlich wie man war, hat man mir Großbuchstaben geschenkt.
    sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|
    1. Affenformular - genau danach hatte ich gesucht!!!

      1000 Dank für die schnelle und kompetente Hilfe!!!
      Ich versuch es jetzt mal auf 2 Wegen - erst das mit dem JAVASCRIPT Befehl von Bleicher und danach muss ich wohl oder übel das nochmal mit location versuchen. Warum das bei mir nicht klappt ist komisch...

      Wenn ich es trotz allem nicht hinbekommen sollte und immer noch Probleme habe - dann melde ich mich nochmal bei Euch und geh Euch noch nen bisschen auf die Nerven :-)

      Danke aber jetzt schon mal für Eure Hilfe!!!!!!

      1. OK - hat funktioniert! Mein Fehler war:

        * ich hab keine Ahnung * :-)

        Ernsthaft - der Quelltext war super - musste meinen Quelltext durchforsten und ein wenig aufräumen - jetzt funzt es.

        Nochmal 1000 Dank!!!

        PS: Somit ein Fall für das Archiv - oder?!?

      2. n'abend,

        Ich versuch es jetzt mal auf 2 Wegen - erst das mit dem JAVASCRIPT Befehl von Bleicher und danach muss ich wohl oder übel das nochmal mit location versuchen. Warum das bei mir nicht klappt ist komisch...

        Du solltest sicherstellen, dass du Fehlermeldungen angezeigt bekommst. In einem Script könntest du das (für Debugging-Zwecke) folgendermaßen erreichen:

        error_reporting( E_ALL );  
        ini_set( 'display_errors', 'on' );
        

        header( 'Location: ...' ) kann versagen wenn:

        • bereits eine Ausgabe an den Browser erfolgte - in diesem Fall sollte eine Meldung a la "could not send header, since output already started" erscheinen. Achte darauf, dass du strikt nach dem EVA Prinzip arbeitest (Eingabe Verabeitung Ausgabe). Das Bedeutet, dass du zuerst alle "Berechnungen" anstellst und dein HTMML-Gedöns zu allerletzt ausgibst.
        • HTTP/1.1 verlangt _absolute_ URIs. Das bedeutet, dass header('Location: /foo.php') falsch ist. Die PHP Doku hat diesbezüglich einen Hinweis in der header() Erklärung.

        weiterhin schönen abend...

        --
        Freundlich wie man war, hat man mir Großbuchstaben geschenkt.
        sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|
  3. Mahlzeit,

    1. für mich der 1. Lösungsansatz war: header("Location: ..."); - geht nicht mehr da das Formular zu dem Zeitpunkt ja schon 1 mal durchlaufen wurde

    DAS sollte damit eigentlich nix zu tun haben. Wenn das Formular sich selbst aufruft (und dabei die vom Benutzer getätigten Eingaben an sich selbst übergibt), dann kannst du problemlos NACH der Überprüfung der Parameter und VOR der Ausgabe von irgendwas (Stichwort EVA) mit header() irgendwo anders hin "weiterverbinden".

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|