Philip: neue Seite aufrufen ohne Klick

Hallo Ihr lieben Leut,

es ist doch sicherlich möglich, wenn eine Bedingung in einer "if-Anweisung" erfüllt ist, automatisch eine Seite aufzurufen.

Sieht voll doof aus, wenn ich da einfach nur nen Link hin hau.
Wenn die Seite sich von selber aufrufen würde wäre es wesentlich hübscher.

Also Danke vorab für Eure Hilfe
Philip

  1. es ist doch sicherlich möglich, wenn eine Bedingung in einer "if-Anweisung" erfüllt ist, automatisch eine Seite aufzurufen.

    Wenn noch kein Header gesendet wurde kannst du die Funktion header("Location: neueseite") benutzen (neueseite natürlich ersetzen).
    Aber das nur, wenn der Header noch nicht gesendet wurde. Ansonsten musst du dich an Javascript wenden.

    Gruß
    Click

    1. Hey Click,

      das ist ja mist. Ich dachte PHP kann alles.
      Soetwas einfaches muss es doch können.
      Ich Frage zum Verständnis lieber nochmal deutlicher.
      Nicht das wir aneinander vorbei reden.

      Der User gibt einen Benutzernamen, sowie Passwort an und klickt auf nen Submitbutton.

      In der neuen seite.php prüfe ich dann mit ner If-Anweisung, od der User existiert und das Passwort übereinstimmt:

      if ($pw == $regpw)
         {
         echo "Ihre Anmeldung war erfolgreich.";
         ?>
         <a href="login-frame.html" target="optional">klicken Sie hier um zur Übersicht zu gelangen</a>
        <?
        }

      Und um diesen blöden Text "klicken Sie hier..." komme ich nur mit Java rum?

      1. hi,

        das ist ja mist. Ich dachte PHP kann alles.

        PHP kann vieles.

        Soetwas einfaches muss es doch können.

        Wie viel du damit kannst, kommt auf dein Verständnis an.

        Der User gibt einen Benutzernamen, sowie Passwort an und klickt auf nen Submitbutton.

        In der neuen seite.php prüfe ich dann mit ner If-Anweisung, od der User existiert und das Passwort übereinstimmt:

        if ($pw == $regpw)
           {
           echo "Ihre Anmeldung war erfolgreich.";
           ?>
           <a href="login-frame.html" target="optional">klicken Sie hier um zur Übersicht zu gelangen</a>
          <?
          }

        Und um diesen blöden Text "klicken Sie hier..." komme ich nur mit Java rum?

        Nö - du kannst genausogut die Daten der Datei login-frame.html (wieso eigentlich so benannt? Eingeloggt habe ich mich doch gerade vorher) ausgeben. Oder sie bspw. per readfile() einlesen (dann natürlich ohne das echo davor, wenn es sich um ein vollständiges HTML-Dokument handelt).

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. Hallo wahsaga,
          Nö - du kannst genausogut die Daten der Datei login-frame.html  ausgeben.

          Das geht leider nicht, weil ich meine Seite schon in deverse Frames zerteilt habe und die "login-frame" setzte sich über drei frames rüber, wodrunter auch die Prüfung ist, von der ich die html aufrufen will.

          Oder sie bspw. per readfile() einlesen (dann natürlich ohne das echo davor, wenn es sich um ein vollständiges HTML-Dokument handelt).

          das hört sich schon wesentlich interessanter an.
          Ich habe mal folgendes ausprobiert:

          if ($pw == $regpw)
            {
            readfile("login-frame.html" target ="optional");
            }

          funzt aber leider nicht. Habe ich da was falsch gemacht?

          1. das hört sich schon wesentlich interessanter an.

            Naja, wenn's sich so interessant anhört muss wohl was dran sein *Sarkasmus-Schild-hochhalt*

            Ich habe mal folgendes ausprobiert:

            if ($pw == $regpw)
              {
              readfile("login-frame.html" target ="optional");
              }

            funzt aber leider nicht. Habe ich da was falsch gemacht?

            Was funzt denn nicht? Fehlermeldung?
            Und was soll das denn für ein Argument sein:
            "login-frame.html" target ="optional"??

            Man braucht hier _keine_ HTML Eigenschaften, sondern vernünftige Argumente.

            1. Was funzt denn nicht? Fehlermeldung?

              Parse error: parse error, unexpected T_STRING

              Und was soll das denn für ein Argument sein:
              "login-frame.html" target ="optional"??

              Na vielleicht konntest Du Dir ja schon denken, dass ich die Seite mit dem Namen "login-frame.html" im Frame "optional" öffnen wollte.

              Man braucht hier _keine_ HTML Eigenschaften, sondern vernünftige Argumente.

              Die Aussage klingt logisch, ich wäre oberglücklich, wenn Du mir mal ein Argument geben könntest, mit dem ich beispielsweise eine html Datei in einem bestimmten Frame öffnen kann :))

              Danke

              1. Der Fehler sagt, wie ich ja bereits sagte, dass du keine vernünftigen Argumente übergeben hast.

                Also: Du hast die HTML Datei, überprüfst, ob die Eingabe richtig ist, und wenn ja, kannst du bei der richtigen Stelle (im Frame) readfile einsetzen, damit eine Datei mit dem einzulesenden COde eingelesen und ausgegeben wird.

                Inwiefern das jetzt sinnvoll ist oder bleibt liegt bei dir.

                Gruß,
                Click

          2. hi,

            bitte lasse die beim Antworten vorgegebenen Zitatzeichen stehen - damit man besser erkennen kann, was von dir ist, und was Zitat.

            Nö - du kannst genausogut die Daten der Datei login-frame.html  ausgeben.

            Das geht leider nicht, weil ich meine Seite schon in deverse Frames zerteilt habe und die "login-frame" setzte sich über drei frames rüber, wodrunter auch die Prüfung ist, von der ich die html aufrufen will.

            Dass du die Nutzbarkeit deiner Seite schon mit Frames verringert hast, hattest du bisher glaube ich nicht erwähnt.

            Oder sie bspw. per readfile() einlesen (dann natürlich ohne das echo davor, wenn es sich um ein vollständiges HTML-Dokument handelt).

            readfile("login-frame.html" target ="optional");

            funzt aber leider nicht.

            Natürlich nicht.

            Habe ich da was falsch gemacht?

            Lies bitte im Handbuch nach, was für Parameter readfile übergeben bekommen will.

            gruß,
            wahsaga

            --
            /voodoo.css:
            #GeorgeWBush { position:absolute; bottom:-6ft; }
            1. Also ich habe es inzwischen hinbekommen, dass die neue Seite aufgerufen wird. Allerdings nicht im richtigen Frame.

              Kannst Du mir noch einen Tipp geben, wie ich dem "readfile" sagen kann, wo er die neue Seite aufrufen soll?

              1. hi,

                Kannst Du mir noch einen Tipp geben, wie ich dem "readfile" sagen kann, wo er die neue Seite aufrufen soll?

                Gar nicht - Fenster sind eine Angelegenheit des Clients, von denen der Server nicht das Geringste weiss.

                Wenn, dann müsstest schon beim Aufruf der Ressource, die die Daten ausgibt, clientseitig den richtigen Frame ansteuern.
                Oder du tust den Nutzern deiner Seite einen großen Gefallen - und gestaltest sie ohne Frames.

                gruß,
                wahsaga

                --
                /voodoo.css:
                #GeorgeWBush { position:absolute; bottom:-6ft; }
                1. Oder du tust den Nutzern deiner Seite einen großen Gefallen - und gestaltest sie ohne Frames.

                  Das sehe ich genauso, auf Frames solltest du wirklich nicht zurückgreifen.

                  Ich glaube du solltest die Struktur deiner Website nochmal überdenken^^

                  Gruß
                  Click

                  1. Oder du tust den Nutzern deiner Seite einen großen Gefallen - und gestaltest sie ohne Frames.

                    Das sehe ich genauso, auf Frames solltest du wirklich nicht zurückgreifen.

                    Jaja, wenn ich ein bisl mehr Ahnung hätte, würde ich Euch sicherlich zustimmen, aber da hapert es auch schon. Ich bin schon froh, dass ich überhaupt soweit gekommen bin und habe noch nicht wirklich jemanden gefunden, der mir eine Alternative zu Frames so erklört, dass auch ich das schnalle.

                    Und kommt mir nicht mit nem Buch oder so, ich kann nur "learning by doing"

                    Aber sonst bin ich voll Eurer Meinung

                    1. hi,

                      Jaja, wenn ich ein bisl mehr Ahnung hätte, würde ich Euch sicherlich zustimmen, aber da hapert es auch schon. Ich bin schon froh, dass ich überhaupt soweit gekommen bin und habe noch nicht wirklich jemanden gefunden, der mir eine Alternative zu Frames so erklört, dass auch ich das schnalle.

                      Da gibt es doch gar nicht soo viel zu "schnallen" ...

                      In deine Frames lädst du doch auch jetzt schon einzelne HTML-Dokumente.
                      Also nur die Frames weglassen, und dafür in einem Dokument all das unterbringen, was dargestellt werden soll.

                      Sich wiederholende Bestandteile kann man dabei natürlich in eigene Dateien auslagern, und serverseitig vor dem Ausliefern der Ressource zu einem Dokument zusammensetzen. Dieses Prinzip erläutert bspw. http://tut.php-q.net/frames.html schon mal ansatzweise.

                      gruß,
                      wahsaga

                      --
                      /voodoo.css:
                      #GeorgeWBush { position:absolute; bottom:-6ft; }
      2. Ich dachte PHP kann alles.

        Da sag ich jetzt mal nix zu :P

        Also, würdest du den Text "Anmeldung war erfolgreich weglassen, bzw. die ganze Seite drumherum kannst du direkt weiterleiten.

        Wenn aber, wie in vielen Foren erst das "Anmeldung erfolgreich" auf der Seite stehen soll, kannst du es noch mit Metatags (ich komm grad ned drauf wie genau, aber dafür is ja google da) versuchen, oder mit Javascript.

        Gruß,
        Click

        PS: Javascript ist _nicht_ Java!

        1. Also, würdest du den Text "Anmeldung war erfolgreich weglassen, bzw. die ganze Seite drumherum kannst du direkt weiterleiten.

          Du sagst wenn ich auf die Begrüßung verzichte könnte ich es direkt weiterleiten...

          wie denn :o)   ???

          1. Also... einer sendet das Formular an ein PHP Script.
            Das Script überprüft die Eingabe und leitet auf eine (HTML) Datei weiter, ohne, dass bei der Seite, die überprüft, in irgendeiner Art und Weise HTML ausgegeben wird.

            1. Also... einer sendet das Formular an ein PHP Script.
              Das Script überprüft die Eingabe und leitet auf eine (HTML) Datei weiter, ohne, dass bei der Seite, die überprüft, in irgendeiner Art und Weise HTML ausgegeben wird.

              Da alles andere keinen wirklichen Durchruch verspricht muss ich jetzt nochmal bei dieser Antwort nachhaken.

              Wenn ich Dich also richtig verstanden habe, klickt der User auf den Button, ein Script prüft die Variablen und leitet automatisch weiter zu einer html, ohne das der User etwas von diesem Script gesehen hat.

              Hört sich sehr gut an, allerdings habe ich wenig Ahnung, wie ich das umsetzen könnte.

              1. Formular wird an das PHP Script abgeschickt. Hier das Script:

                //mache einige Sachen, um $pw zu bekommen

                ...

                if($pw == $reg_pw) {
                  header("Location: zielseite");
                }

                else {
                  echo "Login fehlgeschlagen";
                }

                So würde der Benutzer weitergeleitet werden, oder "Login fehlgeschlagen" wird ausgegeben.

                Hatte ich heut aber schonmal geschrieben :S

                Gruß,
                Click

                1. Super !!

                  Das probiere ich gleich mal aus.

                  Vielen Dank

                  PS: Das hast Du schon mal geschrieben? - Dann aber nicht so schön deutlich :)

                  1. Grandios!!

                    Vielen lieben Dank hat alles wunderbar geklappt.

                    Wieder einen Schritt weitergekommen, Dank Deiner Hilfe.

                    Echt Super!

                    Lieben Gruß

                    Philip