Metaphore: Wie PHP Datei aufrufen - Nur einmal Ausführen; ohne Antwort

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.

  1. 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

    --

    SelfCode: sh:( fo:) ch:? rl:( br:> n4:? ie:{ mo:} va:) de:> zu:| fl:{ ss:( ls:[ js:(
    http://emmanuel.dammerer.at/selfcode.html
    Deshalb können Pinguine nicht fliegen:
    Was nicht fliegt kann auch nicht abstürzen
    <img src="http://www.againsttcpa.com/images/AgainstTCPA-Log01Small.gif" border="0" alt="">
    http://againsttcpa.com
    1. 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

      --
      Selfcode: sh:( fo:| br: n4:& ie:% mo:| mo:| de:] zu:) fl:| ss:| ls:[ js:|
      1. 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

        --

        SelfCode: sh:( fo:) ch:? rl:( br:> n4:? ie:{ mo:} va:) de:> zu:| fl:{ ss:( ls:[ js:(
        http://emmanuel.dammerer.at/selfcode.html
        Deshalb können Pinguine nicht fliegen:
        Was nicht fliegt kann auch nicht abstürzen
        <img src="http://www.againsttcpa.com/images/AgainstTCPA-Log01Small.gif" border="0" alt="">
        http://againsttcpa.com
        1. [...]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 :)

          1. 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

            --
            Selfcode: sh:( fo:| br: n4:& ie:% mo:| mo:| de:] zu:) fl:| ss:| ls:[ js:|
    2. 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.

      1. 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

        --

        SelfCode: sh:( fo:) ch:? rl:( br:> n4:? ie:{ mo:} va:) de:> zu:| fl:{ ss:( ls:[ js:(
        http://emmanuel.dammerer.at/selfcode.html
        Deshalb können Pinguine nicht fliegen:
        Was nicht fliegt kann auch nicht abstürzen
        <img src="http://www.againsttcpa.com/images/AgainstTCPA-Log01Small.gif" border="0" alt="">
        http://againsttcpa.com
  2. 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

    --
    Selfcode: sh:( fo:| br: n4:& ie:% mo:| mo:| de:] zu:) fl:| ss:| ls:[ js:|
    1. 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.

      1. 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

        --
        Selfcode: sh:( fo:| br: n4:& ie:% mo:| mo:| de:] zu:) fl:| ss:| ls:[ js:|
        1. [...]

          *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...

          1. 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

            --
            Selfcode: sh:( fo:| br: n4:& ie:% mo:| mo:| de:] zu:) fl:| ss:| ls:[ js:|
            1. 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'">

              --
              Selfcode: sh:( fo:| br: n4:& ie:% mo:| mo:| de:] zu:) fl:| ss:| ls:[ js:|
              1. [...]

                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?

                1. 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

                  --
                  Selfcode: sh:( fo:| br: n4:& ie:% mo:| mo:| de:] zu:) fl:| ss:| ls:[ js:|
                  1. [...]
                    "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

                  2. 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

                    1. He, he.. wenn man vom Teufel spricht...

                      1. Moin!
                        geht es nicht? oder was soll das heißen?
                        ichen

                        --
                        Selfcode: sh:( fo:| br: n4:& ie:% mo:| mo:| de:] zu:) fl:| ss:| ls:[ js:|
                        1. Moin!
                          geht es nicht? oder was soll das heißen?
                          ichen

                          :0 - Jup... geht net. Guckst Du www.virgin-online.de/toolz/bc.php

                          1. Moin!
                            poste mal bitte den z.Z. aktuellen quellcode der datei bc.php
                            danke ichen

                            --
                            Selfcode: sh:( fo:| br: n4:& ie:% mo:| mo:| de:] zu:) fl:| ss:| ls:[ js:|
                            1. 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! :)

                              1. Moin!
                                ok. ich kann jetzt ruhig schlafen ;-)
                                schönen tag noch
                                ichen

                                --
                                Selfcode: sh:( fo:| br: n4:& ie:% mo:| mo:| de:] zu:) fl:| ss:| ls:[ js:|
                    2. 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

                      --
                      Selfcode: sh:( fo:| br: n4:& ie:% mo:| mo:| de:] zu:) fl:| ss:| ls:[ js:|
                      1. Ja.. das stimmt wohl. Aber beim Aufruf des PHP-Skripts steht nur JS zur Verfügung.

                        Wat shalls mocken?

                        1. 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

                    3. [...]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?

                      1. 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

                        1. 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.

                          1. 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

  3. 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

  4. 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

  5. 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

    1. 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

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
      1. 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

        --
        <img src="http://was-ist-das.andreas-lindig.de/was_ist_das_fetzen.jpg" border="0" alt="">
        hier könnte auch ruhig mal'n neues Bild stehen.
        1. 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

          --
          Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
          Nur selber lernen macht schlau
          1. 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

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau
          2. 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

            --
            <img src="http://was-ist-das.andreas-lindig.de/was_ist_das_fetzen.jpg" border="0" alt="">
            hier könnte auch ruhig mal'n neues Bild stehen.
      2. 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

        --
        SELFHTML Linkverzeichnis: http://aktuell.de.selfhtml.org/links/
  6. 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

    --
    SELFHTML Tipps & Tricks: http://aktuell.de.selfhtml.org/tippstricks/