Ankündigung

Einklappen
Keine Ankündigung bisher.

cgi-Skript in php einbinden

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • cgi-Skript in php einbinden

    Hallo!

    Ich hätte eine "Befehl"-Frage:
    Gibt es in php einen Befehl, der auf der Seite (in einer Tabelle) ein cgi-Skript ausführt und nicht den Code des Skripts, sondern das Ergebnis anzeigt? Ich wollte nämlich einen Kleinanzeigenmarkt auf meiner Seite installieren, hab dazu ein kostenloses Skript ausprobiert und mit "include" das ausprobiert. Hat natürlich nicht funktioniert.
    Für die Cracks unter euch ist die Frage wahrscheinlich lächerlich, aber jeder fängt mal klein an... :wink:
    Oder gäbe es da eine Alternative?

    Danke und Grüße, Tom


  • #2
    Re: cgi-Skript in php einbinden

    Zitat von derTom
    Gibt es in php einen Befehl, der auf der Seite (in einer Tabelle) ein cgi-Skript ausführt und nicht den Code des Skripts, sondern das Ergebnis anzeigt?
    Nicht direkt. PHP Scripte werden nur deshalb interpretiert, weil der Apache so konfiguriert wurde, daß er *.php an das PHP Modul übergibt. Sinngemäß ähnlich ist es mit allen anderen Datei"typen", wenn für die ebenfalls ein Verknüpfung mit einem entsprechendem Modul besteht.

    Du kannst Dich entweder mit virtual() (in Verbindung mit einer Ausgabepufferung) beschäftigen oder den Apache Request via URL_fopen_wrapper ausführen lassen. ZB. so:
    Code:
    $ausgabe = file_get_contents ('http://www.example.com/cgi-bin/dein_script.cgi?arg1=4711&arg2=0815');
    Beachte, daß Du in beiden Fällen ein komplettes HTML Dokument bekommst, von dem Du aber nur den Teil zwischen <body> und </body> verwenden darfst, weil Du sonst fehlerhaftes HTML zum Client schickst.

    Kommentar


    • #3
      Es gibt auch eine ganz einfache Lösung:

      Code:
      readfile('datei.pl');
      Das gibt dir genau das zurück, was das Script ausgeben würde, wenn du es normal aufrufst!

      wilko

      Kommentar


      • #4
        Zitat von wilko
        Code:
        readfile('datei.pl');
        Das gibt dir genau das zurück, was das Script ausgeben würde, wenn du es normal aufrufst!
        Nein, weil weder der Apache (der ist daran nicht beteiligt) noch PHP (das weiß davon nix) das File vorher "durch Perl jagt".

        Kommentar


        • #5
          wenn ein Perlinterpüreter installiert ist geht das sehr wohl!

          Ich habs gerade mal ausprobiert, das funktioniert!

          wilko

          Kommentar


          • #6
            Zitat von wilko
            wenn ein Perlinterpüreter installiert ist geht das sehr wohl!
            Das geht nur dann, wenn das File ausführbar ist und in der 1. Zeile drinsteht, welcher Interpreter benutzt werden soll. Sonst zeigt PHP bei readfile nur den Quelltext an.

            In jedem Falle muß das vom Script ausgegebene HTML korrigiert werden.

            Kommentar


            • #7
              #usr/lib/perl

              soetwas sollte über jedem Perl-script stehen!

              wilko

              Kommentar


              • #8
                naja

                Hallo!

                Erst mal danke für die Antworten.

                Ich hab das jetzt mal mit "$ausgabe ..." und "readfile" ausprobiert, aber leider hat das nicht funktioniert.
                Wie kann ich "nur den Teil zwischen <body> und </body> verwenden"? Welche Datei muss ich dafür wie verändern?
                Oder:
                Wie installier ich den Perl Interpretor?
                Oder:
                Gibt es einen PHP-MySQL-Kleinanzeigenmarkt? (wär wahrscheinlich an einfachsten...)
                Könnte man so etwas selber programmieren? Wenn ja, hätte ich best. noch mehr fragen

                Gruß

                Kommentar


                • #9
                  Re: naja

                  Zitat von derTom
                  Wie kann ich "nur den Teil zwischen <body> und </body> verwenden"?
                  ZB. damit:
                  Code:
                  # Diese Funktion sucht nach <body> und </body>
                  # wenn vorhanden, wird nur der "Body-Text" zurückgegeben
                  # wenn nicht vorhanden, dann der komplette Texte
                  function getbody($t)
                  {
                  	$preg = "=<body[^>]*>(.*)</body>=siU";
                  	return (preg_match_all($preg,$t,$res)) ? $res[1][0] : $t;
                  }
                  Deine restlichen Fragen betreffen die Systemkonfiguration.

                  Kommentar


                  • #10
                    immer noch naja

                    Hallo!

                    Das mit der Einbindung funktioniert immer noch nicht.
                    Ich poste mal den Code der Seite (test.php; ohne Tabelle usw.):
                    Code:
                    <html>
                    <body>
                        <?
                    	$ausgabe = file_get_contents ('/home/www/kunden/meine-seite.de/cgi-bin/flohmarkt.cgi'); 
                    	function getbody($t) 
                    	{ 		
                    		$preg = "=<body[^>]*>(.*)</body>=siU"; 
                    		return (preg_match_all($preg,$t,$res)) ? $res[1][0] : $t; 
                    	}
                    	?>
                    
                    </body>
                    </html>
                    Ich hab keine Ahnung, ob das so stimmen kann. Das Ergebnis ist nur eine leere Seite.

                    Ich hoffe, mir kann jemand weiterhelfen...

                    Gruß; Tom

                    Kommentar


                    • #11
                      Re: immer noch naja

                      Zitat von derTom
                      Das mit der Einbindung funktioniert immer noch nicht.
                      Ich poste mal den Code der Seite :
                      Ich vermisse da
                      1. den Aufruf der Funktion und
                      2. die Ausgabe des Ergebnisses oder
                      3. eine Fehlermeldung (ist ja nicht sicher, ob flohmarkt.cgi so gestartet werden möchte)
                      Ich hoffe, mir kann jemand weiterhelfen...
                      Da habe ich so meine Zweifel, da Dir offenbar jegliche Programmierkenntnisse fehlen.

                      Kommentar


                      • #12


                        Da habe ich so meine Zweifel, da Dir offenbar jegliche Programmierkenntnisse fehlen.
                        Anstatt suggestive Arroganz zu posten, könnte man in der gleichen Zeit auch die Lösung bzw. den richtigen Code ins Forum setzen.

                        So viel ich weiß, sind wir hier in der Kategorie 'PHP-Anfänger' (ich wiederhole: Anfänger!!!) und nicht bei 'Spezielle Fragen von und für Informatik-Professoren".
                        Vielleicht habe ich auch den grundlegenden Sinn eines Forums missverstanden, aber meiner Meinung nach ist dies eine Plattform, in der man Fragen stellt an andere, die sich damit auskennen, und nicht, in der man Fragen stellt, damit sich andere profilieren können.

                        Nichts für ungut, aber bei solchen Antworten krieg ich nen Hals!

                        Ich brauch doch nur den Code für die Zelle in der Tabelle, damit PHP mir dort das cgi-script ausgibt!

                        Kommentar


                        • #13
                          Re:

                          Zitat von derTom
                          Da habe ich so meine Zweifel, da Dir offenbar jegliche Programmierkenntnisse fehlen.
                          Anstatt suggestive Arroganz zu posten, könnte man in der gleichen Zeit auch die Lösung bzw. den richtigen Code ins Forum setzen.
                          Anstatt hier zu heulen solltest Du es mal mit nachdenken versuchen.

                          Kommentar


                          • #14
                            Zitat:
                            Da habe ich so meine Zweifel, da Dir offenbar jegliche Programmierkenntnisse fehlen.

                            Anstatt suggestive Arroganz zu posten, könnte man in der gleichen Zeit auch die Lösung bzw. den richtigen Code ins Forum setzen.

                            Anstatt hier zu heulen solltest Du es mal mit nachdenken versuchen.
                            Ich versteh einfach dein Problem nicht...

                            Kommentar


                            • #15
                              [OT]

                              Zitat von derTom
                              Anstatt hier zu heulen solltest Du es mal mit nachdenken versuchen.
                              Ich versteh einfach dein Problem nicht...
                              Merkst Du noch was? Du bist es, der ein Problem hat. Und ich gehöre nicht zu denen, die für andere die Hausaufgaben verfassen, damit das arme Kind nicht so schwer nachdenken muß.

                              Kommentar

                              Lädt...
                              X