hardy: php script auswerten ohne rückwurfseite

kleine frage hätt ich...

ist es möglich, ein php-script auszuführen, ohne dass es eine Rückwurfseite gibt. sprich, das script wird abgearbeitet, aber der user bekommt nichts davon mit

greets hardy

  1. Moin!

    ist es möglich, ein php-script auszuführen, ohne dass es eine Rückwurfseite gibt. sprich, das script wird abgearbeitet, aber der user bekommt nichts davon mit

    Gib HTTP-Status 204 zurück.

    - Sven Rautenberg

    --
    Signatur oder nicht Signatur - das ist hier die Frage!
    1. Gib HTTP-Status 204 zurück.

      was soll das bringen Sven?

      "
      204 No Content Befehl an den Browser, um eine Seite nicht erneut zu laden: "Die Seite enthält keine Daten"
      "

      Ich denke, Du möchtest ein PHP-Script ausführen, welches im Hintergrund läuft. Mein Wissenstand sagt mir, das es nicht möglich ist ohne das der User es merkt (peformance). Aber wann macht sowas sinn?

      1. ich will aus swf heraus ein mailscript aufrufen, brauch aber, da im swf bereits die danke-seite drin ist kein neues fenster. auch darf das alte fenster nicht neu geladen werden..

        greets hardy

        1. Hallo,

          ich will aus swf heraus ein mailscript aufrufen, brauch aber, da im swf bereits die danke-seite drin ist kein neues fenster. auch darf das alte fenster nicht neu geladen werden..

          Ich sehe da kein Problem. Wenn das PHP-Script nur die Mail verschickt udn keine Ausgaben an den Flash-Film sendet, wird auch nichts weiter passieren.

          MfG, Thomas

          1. hmm, in der .php steht wirklich nur php-code drin.
            das ergebnis ist und bleibt ein leeres Browserfenster.
            mit javascript kann das zwar geschlossen werden, aber naja...

            greets, Hardy

            1. Hallo,

              hmm, in der .php steht wirklich nur php-code drin.
              das ergebnis ist und bleibt ein leeres Browserfenster.
              mit javascript kann das zwar geschlossen werden, aber naja...

              Dann stellt sich die Frage, ob ein HTML-Formular zum Einsatz kommt oder der Versand aus einem Flash-GUI erfolgt, also etwa ueber einen Button mit

              on(release)
              {
                this.loadVariables("mail.php",...,"POST");
              }

              Im letztgenannten Fall gibt es AFAIK kein leeres Fenster.

              MfG, Thomas

              1. ich habs bisher so gehandhabt, vielleicht liegts an getURL

                comment = comment.text;
                    getURL("mail.php", "_blank", "GET");

                greets hardy

                1. Hallo,

                  ich habs bisher so gehandhabt, vielleicht liegts an getURL

                  comment = comment.text;
                      getURL("mail.php", "_blank", "GET");

                  Naja, "_blank" ist ja wohl das Zielfenster (target).

                  Probiere es mal so:

                  this.loadVariables("mail.php");

                  Das sollte die Daten defaultmaeßig per GET uebergeben oder in erweiterter Form so: this.loadVariables("mail.php",0,"GET");

                  MfG, Thomas

        2. Moin!

          ich will aus swf heraus ein mailscript aufrufen, brauch aber, da im swf bereits die danke-seite drin ist kein neues fenster. auch darf das alte fenster nicht neu geladen werden..

          Genau deshalb gibst du HTTP-Status 204 zurück. Der tut genau, was du willst. Ich hab's selbst schon mit Flash ausprobiert (wobei ich nicht für das Flash zuständig war, sondern nur für PHP). Lade die nicht erscheinen sollende Seite ins selbe Browserfenster (also keinerlei target-Angabe), und es passiert.... nichts!

          - Sven Rautenberg

          --
          Signatur oder nicht Signatur - das ist hier die Frage!
  2. Moin Moin !

    Du wirst kaum darum herumkommen, *irgendwas* vom Server anzunehmen (sprich: die Response auf einen GET-Request zu verarbeiten).

    Aber:

    Du mußt ja nicht gleich eine neue Seite laden. Lade einen Dummy innerhalb der Seite. Das geht wahrscheinlich nur mit Javascript.

    Skizze:

    <form onsubmit="handleSubmit(this)" ...>
    <input type="text" name="msg" value="Hi">
    </form>

    function handleSubmit(f)
    {
      var dummy=new Image();
      dummy.src="http://www.example.com/phpstuff/formmailer.php?to="+escape(f.msg.value);
      // und vielleicht noch:
      document.images['dummyimg'].src=dummy.src;
    }

    Das PHP-Script muß in diesem Fall irgendetwas Image-artiges zurückliefern, z.B. ein transparentes 1x1-GIF.

    Du könntest natürlich auch ein minimales IFRAME in die Seite packen und das als TARGET für das FORM angeben.

    Oder Du nimmst ein Dummy-Frame, wenn Du ohnehin ein Frameset benutzt.

    Oder Du bindest ein "mach nix"-Javascript bei onSubmit ein:

    document.write('<script type="text/javascript" src="http://www.example.com/phpstuff/formmailer.php?to='+escape(f.msg.value)+'"></script>');

    Hier liefert PHP natürlich Javascript zurück. Eine Zeile "/* nix */" solle reichen.

    Irgendwas davon sollte mit kleinen Änderungen funktionieren. ;-)

    Alexander

    --
    Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so!"
    1. Moin!

      Du wirst kaum darum herumkommen, *irgendwas* vom Server anzunehmen (sprich: die Response auf einen GET-Request zu verarbeiten).

      Aber:

      Du mußt ja nicht gleich eine neue Seite laden. Lade einen Dummy innerhalb der Seite. Das geht wahrscheinlich nur mit Javascript.

      Genau da kommt der HTTP-Status 204 wunderbar ins Spiel. Da hat man einen Response, der aber im Browser nichts veranlaßt.

      - Sven Rautenberg

      --
      Signatur oder nicht Signatur - das ist hier die Frage!