php script auswerten ohne rückwurfseite
hardy
- php
0 Sven Rautenberg0 sky.connect0 hardy
0 Alexander Foken
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
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
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?
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
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
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
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
ich habs bisher so gehandhabt, vielleicht liegts an getURL
comment = comment.text;
getURL("mail.php", "_blank", "GET");
greets hardy
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
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
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
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