Wie PHP Datei aufrufen - Nur einmal Ausführen; ohne Antwort
Metaphore
- javascript
Hi,
ich habe ein PHP-Skript, dass ich per JS aufrufen möchte. Dieses Skript bekommt ein paar Parameter und speichert sie ab; mehr soll es nicht tun.. keine Ausgaben etc.
Wie mache ich den Aufruf?
Sorry.. hab echt schon ein bisschen gesucht.. hab aber irgendwie nichts gefunden.
Hallo,
Hi,
ich habe ein PHP-Skript, dass ich per JS aufrufen möchte. Dieses Skript bekommt ein paar Parameter und speichert sie ab; mehr soll es nicht tun.. keine Ausgaben etc.
Wie mache ich den Aufruf?
Wie wärs mit
location.href="script.php?var1=value1&var2=value2&var3=value3
Das übergibt dem PHP-Script via get die Variablen var(1-3) mit den Werten value(1-3).
gefunden.
Gruß
Alexander Brock
Moin!
dann wird aber das script im browser aufgerufen und es erscheint u.U. nur eine weise seite, wenn das script keine antwort geben soll. entweder er schreibt noch ein header("location:...") ans ende des scriptes oder er muss das script über php aufrufen.
tschüss ichen
Guten Morgen,
dann wird aber das script im browser aufgerufen und es erscheint u.U. nur eine weise seite, wenn das script keine antwort geben soll. entweder er schreibt noch ein header("location:...") ans ende des scriptes
Das ist natürlich die bessere Lösung
oder er muss das script über php aufrufen.
Er könnte aber auch ein neues Fenster öffnen und das onload wieder schließen.
Aber die obere Lösung finde ich besser.
Gruß
Alexander Brock
[...]entweder er schreibt noch ein header("location:...") ans ende des scriptes
Das hört sich interessant an.. Auch wenn "Ende" und "Header" spontan nicht so ganz zusammenpassen... ;) ...werd ich mal schaun, was Du meinen könntest :)
Moin!
mit header("location:...") brichst du das aktuelle script ab, und es erfolgt eine umleitung auf die adresse die nach location: angegeben ist. die php-funktion header() sendet einen http-header, in unserem falle einen zur weiterletung.
tschüss ichen
Wie wärs mit
location.href="script.php?var1=value1&var2=value2&var3=value3
Das übergibt dem PHP-Script via get die Variablen var(1-3) mit den Werten value(1-3).
Hi Alexander,
das funzt leider nicht wie gewünscht - Das Skript soll _nur_ ausgeführt werden, aber das Ergebnis nicht angezeigt werden.
Simples Beispiel:
Wir haben eine Seite mit zwei Buttons.
Wenn ich Button A drücke wird eine PHP-Skript aufgerufen, dass einen Zähler hochzählt - Sonst passiert nichts! (Wir sind immer noch auf unser Seite)
Wenn ich Button B drücke, dann wird der Inhalt aus der Zähldatei gezeigt....
Mit Deinem Tip wird leider auch das Ergebnis angezeigt. Im Prinzip fehlt mir ein simplier Funktions-Aufruf.
Hallo,
Simples Beispiel:
Wir haben eine Seite mit zwei Buttons.
Wenn ich Button A drücke wird eine PHP-Skript aufgerufen, dass einen Zähler hochzählt - Sonst passiert nichts! (Wir sind immer noch auf unser Seite)
Dann binde den Zähler in die Seite ein und lasse ihn hochzählen,
wenn eine bestimmte $_GET['Variable'] einen bestimmten Wert hat
(es muss ja nichts ausgeben(außer der eigentlichen Seite)).
Dann musst du die Seite nur noch mit der entsprechenden Variable aufrufen.
Wenn ich Button B drücke, dann wird der Inhalt aus der Zähldatei gezeigt....
Dann nimm ein anderes Script, das nur die Aufgabe hat, den Zählerstand
anzuzeigen.
Gruß
Alexander Brock
Moin!
du kannst ein php-script nicht mit js aufrufen und parameter übergeben. nimm doch zum aufrufen ebenfalls php, was hindert dich daran?
schönen guten morgen
ichen
Moin!
du kannst ein php-script nicht mit js aufrufen und parameter übergeben. nimm doch zum aufrufen ebenfalls php, was hindert dich daran?
schönen guten morgen
ichen
Moinsen,
nun ja.. die Parameter häng ich einfach an den Link zum PHP-Skript ran.. ganz simpel.
Mir fehlt nur die Möglichkeit einfach das Skript aufzurufen.. ohne die Seite zu verlassen - Im Hintergrund einmal quasi.
PHP habe ich auf der Aufrufe-Seite nicht zur Verfügung.
Moin!
darfst du das php-script editieren also bearbeiten? wenn jan poste mal bitte den quellcode des scriptes, das nur im hintergrund aufgerufen weden soll und den namen der datei, von wo das script gestartet wird (die seite mit dem zähler button z.B.).
tschüss ichen
[...]
*hihi*.. öhm - Eigentlich wollte ich nur eine Antwort auf eine allg. Fragestellung; ich hab noch nicht wirklich was zurecht gebasteltes, was ich Dir liefern könnte.
Die Zähler-Sache war nur exemplarisch gemeint - Ganz allgemein formuliert (Ich geb mir Mühe *schwitz*):
Seite A:
Hier kann ich HTML und JS einbinden - das war's.
Seite B:
Hier kann ich machen was ich will.. zB PHP-Skripte basteln.
Ich möchte nun auf Seite A, Dinge tun, und die Ergebnisse dieser Dinge an _irgendwas_ (es muß ja nicht PHP sein, meinetwegen auch Perl oder weiß der Geier) auf Seite B übergeben, damit dort dieses _irgendwas_ die Ergebnisse speicher kann; zB in eine Datei (was ja das einfachste wäre).
Das PHP-Skript mal im groben:
$datei = "bc.txt";
if (isset($text))
{
if (!empty($text))
{
// Aktuellen Satz schreiben
$fp = fopen ($datei,"a+");
fputs($fp,$text."\n");
fclose($fp);
}
}
// Alles auslesen
$fp = fopen ($datei,"r");
while(!feof($fp))
{
echo "<br>";
$str = fgets($fp);
echo $str;
}
fclose($fp);
?>
Schöne Grüße
Michael
PS: Sorry.. für meine umständliche Art gerade.. bin gerade ein bisschen fertig und sitz nur am PS weil ich nicht schlafen kann...
Moin!
Das PHP-Skript mal im groben:
$datei = "bc.txt";if (isset($text))
{
if (!empty($text))
{
// Aktuellen Satz schreiben
$fp = fopen ($datei,"a+");
fputs($fp,$text."\n");
fclose($fp);
header("location:datei_a.html");
exit;
}
}
// Alles auslesen
$fp = fopen ($datei,"r");
while(!feof($fp))
{
echo "<br>";
$str = fgets($fp);
echo $str;
}
fclose($fp);
?>
ich habe jetzt dem script etwas hinzugefügt.
mit header() leitest du nach dem schreiben der datei die seite auf die seite datei_a.html um. du kannst natürlich einen beliebigeb dateinamen oder pfad einsetzen. mit exit; brichst du das script ab um sicher zu gehen, dass der rest des scriptes nicht ausgeführt wird.
das script rufst du nun ganz einfach über einen link oder den button auf. (<a href="script.php"></a> bzw. <input type="button" name="link" value="Klick mich!" onClick="self.location.href='script.php'">
wenn du noch fragen hast, ich bin noch lange wach.
ichen
Moin!
nachtrag:
du must die variable $text einfach an del link hängen:
<a href="script.php?text=wert"></a>
oder
<input type="button" name="link" value="Klick mich!" onClick="self.location.href='script.php?text=wert'">
[...]
Hmmm.. interessant. Wenn ich das richtig verstanden habe, dann führt der Klick auf den Button dazu, dass das PHP-Skript angezeigt wird, da dieses jedoch den Header()-Befehl enthält und sofort abbricht, wird es letztlich doch nicht angezeigt?
Moin!
Hmmm.. interessant. Wenn ich das richtig verstanden habe, dann führt der Klick auf den Button dazu, dass das PHP-Skript angezeigt wird, da dieses jedoch den Header()-Befehl enthält und sofort abbricht, wird es letztlich doch nicht angezeigt?
genau.
"du bist ein helles kerlchen"
Zitat: Bud Spencer im Film Zwei Bärenstarke Typen
tschüss ichen
[...]
"du bist ein helles kerlchen" [...]
Das Kompliment gebührt wohl Dir :)
...allerdings funzt das nicht so ganz :/
www.virgin-online.de/toolz/test.htm
~/bc.php
:eek: - warum?
Ich bin gerade am überlegen, ob der Tipp von Raik vielleicht ganz gut ist. Ich create mir einfach ein Objekt per js und bapp da ne .src Eigenschaft ran - ähnlich wie beim Image-Preload. Wenn ich das JS dann aufrufe.. vielleicht klappt das?
Das php-skript soll übrigens evtl. beim Verlassen der Hauptseite aufgerufen werden ohne dabei die eigentliche Weiterleitungs zu stören.. -> OnUnload
Hallo, ichen!
Moin!
Hmmm.. interessant. Wenn ich das richtig verstanden habe, dann führt der Klick auf den Button dazu, dass das PHP-Skript angezeigt wird, da dieses jedoch den Header()-Befehl enthält und sofort abbricht, wird es letztlich doch nicht angezeigt?
genau.
header("location:datei_a.html");
wieso wird "datei_a.html" nicht angezeigt?
und wozu der aufwand, wenn man mit einem zweiten javascript in der seite den aufruf des php-scriptes über dieses zweite script erledigen kann?
freundl. Grüsse aus Berlin, Raik
He, he.. wenn man vom Teufel spricht...
Moin!
geht es nicht? oder was soll das heißen?
ichen
Moin!
geht es nicht? oder was soll das heißen?
ichen
:0 - Jup... geht net. Guckst Du www.virgin-online.de/toolz/bc.php
Moin!
poste mal bitte den z.Z. aktuellen quellcode der datei bc.php
danke ichen
Moin!
poste mal bitte den z.Z. aktuellen quellcode der datei bc.php
danke ichen
Sorry Ichen.. mein Fehler - Du hast vollkommen Recht!
Ich hatte noch HTML-Gedöns am Anfang stehen (Ein Formular um das Datei-Geschreibsel zu testen).. mit dem reinen php-code funzt es!
Super! :)
Moin!
ok. ich kann jetzt ruhig schlafen ;-)
schönen tag noch
ichen
Moin!
es gibt einige user im i-net, die js ausgeschaltet haben. ich z.B. auch. ich bin der meinung, man sollte versuchen so wenig wie möglich mit javascript zu arbeiten, auch wenn man schöne sachen damit machen kann.
tschüss ichen
Ja.. das stimmt wohl. Aber beim Aufruf des PHP-Skripts steht nur JS zur Verfügung.
Wat shalls mocken?
Hallo, Metaphore!
Ja.. das stimmt wohl. Aber beim Aufruf des PHP-Skripts steht nur JS zur Verfügung.
dabei kommt mir noch eine idee:
bau in die seite nen hidden iframe mit ein und gib dem formular als target den iframe.
freundl. Grüsse aus Berlin, Raik
[...]und wozu der aufwand, wenn man mit einem zweiten javascript in der seite den aufruf des php-scriptes über dieses zweite script erledigen kann? [...]
So:
<SCRIPT LANGUAGE="JavaScript">
function buff()
{
Image1= new Image(1,1)
Image1.src = "http://www.virgin-online.de/toolz/bc.php?text=SPECIAL-TEST"
}
</SCRIPT>
...
<a href="javascript:buff();">TEST</a>
So funzt das :)
Ich find das zwar unschön, dass ich ein image-Objekt create (wasn Wort)... aber es funzt schonmal. Jmd ne bessere Idee als nen Image-Objekt?
Hallo, Metaphore!
Ich find das zwar unschön, dass ich ein image-Objekt create (wasn Wort)... aber es funzt schonmal. Jmd ne bessere Idee als nen Image-Objekt?
ja, ich sprach von einem zweiten javascript, nicht von einem bild.
<script type=text/javascript src="bc.php"></script>
...
document.scripts[1].src="bc.php?"+parameter;
freundl. Grüsse aus Berlin, Raik
Hmmm...
Hab das schon verstanden - Nur wird das Skript so auch schon einmal aufgerufen (ohne Parameter)...
Komischerweise nicht beim Betreten der Seite; aber beim Reload zB.
Hallo, Metaphore!
Hab das schon verstanden - Nur wird das Skript so auch schon einmal aufgerufen (ohne Parameter)...
du kannst es ja auch beim aufruf des php-scriptes erzeugen (document.createElement("script"); ).
freundl. Grüsse aus Berlin, Raik
Hallo, Metaphore!
Wie mache ich den Aufruf?
dein javascript setzt für ein zweites (externes) javascript in der seite die url für das php-script als src.
freundl. Grüsse aus Berlin, Raik
Hi,
ich habe ein PHP-Skript, dass ich per JS aufrufen möchte. Dieses Skript bekommt ein paar Parameter und speichert sie ab; mehr soll es nicht tun.. keine Ausgaben etc.
Wie mache ich den Aufruf?
Sorry.. hab echt schon ein bisschen gesucht.. hab aber irgendwie nichts gefunden.
mach doch einfach einen Image-Aufruf:
<img src="/pfad/test.php?var1=test1&var2=test2" width="1" height="1">
Das Script sollte dann aber einen Blindpixel zurückgeben!
Gruß
Reiner
Moin!
ich habe ein PHP-Skript, dass ich per JS aufrufen möchte. Dieses Skript bekommt ein paar Parameter und speichert sie ab; mehr soll es nicht tun.. keine Ausgaben etc.
Ganz simpel:
Das PHP-Skript arbeitet, gibt aber keinerlei Ausgaben aus, und am Ende sorgt es mit
header("Status: 204 No Content"); // für die CGI-Variante von PHP
oder
header("HTTP/1.0 204 No Content"); // für die Modul-Variante von PHP
dafür, dass der Browser die alte Seite nicht durch die skriptgenerierte ersetzt, sondern ohne Veränderung weiter anzeigt.
Ob der Aufruf des Skriptes jetzt durch Javascript oder einen normalen HTML-Link geschieht, ist egal.
- Sven Rautenberg
Hello,
Das PHP-Skript arbeitet, gibt aber keinerlei Ausgaben aus, und am Ende sorgt es mit
header("Status: 204 No Content"); // für die CGI-Variante von PHP
oder
header("HTTP/1.0 204 No Content"); // für die Modul-Variante von PHP
dafür, dass der Browser die alte Seite nicht durch die skriptgenerierte ersetzt, sondern ohne Veränderung weiter anzeigt.
Das führt im M$IE5.5 zu einem nicht enden wollenden Request. Im Firefox sofort zu einem sofortigen "Done" im Gecko (NS7) zu keiner sichtbaren Reaktion.
Wie kann man denn nun den IE auch zu einem "fertig" bewegen?
Außerdem wüßte ich gerne, ob es irgendwo eine Kurzübericht über die gebräuchlichsten HTTP-Header gibt mit kurzen Erläuterungen dazu.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hallo allerseits,
Das führt im M$IE5.5 zu einem nicht enden wollenden Request. Im Firefox sofort zu einem sofortigen "Done" im Gecko (NS7) zu keiner sichtbaren Reaktion.
wiso denn nicht einfach zur Ausgansseite weiterleiten?
Gruß, Andreas
Hello,
Das führt im M$IE5.5 zu einem nicht enden wollenden Request. Im Firefox sofort zu einem sofortigen "Done" im Gecko (NS7) zu keiner sichtbaren Reaktion.
wiso denn nicht einfach zur Ausgansseite weiterleiten?
Das war eben nicht die Frage, obwohl das wahrscheinlich die ergonomischste Möglichkeit wäre, da ein User schließlich auch eine Reaktion erwarten würde.
Zur Frage mit dem 204: Da müsste man dann wahrscheinlich den 202 Accepted verwenden?
Wie muss man dann ggf. den Ressourcen-namen mitteilen, wenn man die Möglichkeit nutzen will?
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hello,
Zur Frage mit dem 204: Da müsste man dann wahrscheinlich den 202 Accepted verwenden?
Wie muss man dann ggf. den Ressourcen-namen mitteilen, wenn man die Möglichkeit nutzen will?
202 löscht leider das Dokument im aktiven Request-Frame
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
wiso denn nicht einfach zur Ausgansseite weiterleiten?
Das war eben nicht die Frage,
mag schon sein, aber abgesehen von simplen Lösungen, wie z.B. das neue Dokument einfach in einem versteckten frame (iframe) zu laden, ist das ja wohl die einfachste und sinnfälligste Möglichkeit. Ich würde mich wundern, wenn ich wo draufklicke und es passiert nichts.
Gruß, Andreas
Hallo!
Das führt im M$IE5.5 zu einem nicht enden wollenden Request. Im Firefox sofort zu einem sofortigen "Done" im Gecko (NS7) zu keiner sichtbaren Reaktion.
Wie kann man denn nun den IE auch zu einem "fertig" bewegen?
Ja, ich hatte das auch mal probiert, leider kann man "204" mit IE vollkommen vergessen.
Außerdem wüßte ich gerne, ob es irgendwo eine Kurzübericht über die gebräuchlichsten HTTP-Header gibt mit kurzen Erläuterungen dazu.
http://de.selfhtml.org/diverses/httpstatuscodes.htm#uebersicht
Grüße
Andreas
Hallo!
ich habe ein PHP-Skript, dass ich per JS aufrufen möchte. Dieses Skript bekommt ein paar Parameter und speichert sie ab; mehr soll es nicht tun.. keine Ausgaben etc.
Wie mache ich den Aufruf?
Es gibt verschiedene Methoden, die von Sven vorgschlagene (204-Header) gefällt mir prinzioiell am besten, nur kümmert sich der IE an dieser Stelle herzlich wenig um den HTTP-Standard.
Ich hatte da mal einen interessanten Artikel bei IBM gelesen, und nach einigem Suchen habe ich ihn auch wieder gefunden:
http://www-106.ibm.com/developerworks/web/library/wa-exrel/
Da findest Du sicher ein paar Anregungen!
Grüße
Andreas