Autor Thema: Probleme mit CGI-Skript  (Gelesen 3158 mal)

ChristianF

  • Beiträge: 296
    • Profil anzeigen
    • DeutschOS - Betriebssystem Projekt
Gespeichert
« am: 01. August 2008, 15:30 »
Hi Community,
ich habe da mal so ein kleines Problemchen...  :roll:
 
Und zwar soll ich eine CGI-Schnittstelle testen, mit der ausgewählte Personen Zugriff auf eine SQL Datenbank bekommen.
Nun muss der Zugriff auf das Skript, wegen dem Zugriff des Skriptes auf die Datenbank, entfernt angesprochen werden, z.B.:
<form name="Form" action="www.domain.de/cgi-bin/script.cgi?p1=n&...pn=n" ...>
</form>

So funktioniert alles wunderbar, das Skript wird aufgerufen und das Ergebnis der Abfrage im Browser angezeigt.
Angezeigt wird das ganze im csv-Format:
Skript; OKAY;
Datensatz1;1;foo
Datensatz2;2;bar
...

Und genau hier habe ich ein Problem.
Wie kann ich denn die Daten jetzt weiter verarbeiten? Das Problem ist ja, dass einer externen Website weitergeleitet wird.

Geschrieben ist der Krempel in HTML. Für die Auswertung muss ich eine serverseitige Skript-Sprache verwenden, wie z.B. ASP oder PHP, ist ja logisch.
Doch wie mache ich das.
 
 
Für eine Antwort wäre ich sehr Dankbar, denn für ASP wie auch für PHP habe ich bis jetzt nichts brauchbares gefunden  :cry:
 
Gruß Christian
 
PS: Auf den Quellcode der CGI-Skripte habe ich keinen Zugriff.

Termite

  • Beiträge: 239
    • Profil anzeigen
Gespeichert
« Antwort #1 am: 01. August 2008, 17:22 »
Hi Community,
ich habe da mal so ein kleines Problemchen...  :roll:
 
Und zwar soll ich eine CGI-Schnittstelle testen, mit der ausgewählte Personen Zugriff auf eine SQL Datenbank bekommen.
Nun muss der Zugriff auf das Skript, wegen dem Zugriff des Skriptes auf die Datenbank, entfernt angesprochen werden, z.B.:
<form name="Form" action="www.domain.de/cgi-bin/script.cgi?p1=n&...pn=n" ...>
</form>

So funktioniert alles wunderbar, das Skript wird aufgerufen und das Ergebnis der Abfrage im Browser angezeigt.
Angezeigt wird das ganze im csv-Format:
Skript; OKAY;
Datensatz1;1;foo
Datensatz2;2;bar
...

Und genau hier habe ich ein Problem.
Wie kann ich denn die Daten jetzt weiter verarbeiten? Das Problem ist ja, dass einer externen Website weitergeleitet wird.

Eigentlich auch logisch. In einer HTML Seite ist dein Form, und an das wird auch das ergebnis weitergeleitet.


Geschrieben ist der Krempel in HTML. Für die Auswertung muss ich eine serverseitige Skript-Sprache verwenden, wie z.B. ASP oder PHP, ist ja logisch.
Doch wie mache ich das.
 

Wieso logisch? Das CGI nimmt aus dem Internet Anfragen entgegen und gibt die antwort wieder an den Anfragensteller. In deinem falle eine HTML Seite. (das könnte aber auch jedes andere Programm oder server sein) Was das ganze mit ASP oder PHP zu tun hat, kann ich nicht nachfolziehen.

Also für eine PHP oder ASP test , müsste ein ggf zusätzlicher webserver dein  ASP oder PHP Test Programm ausführen. Würde dan so aussehen. Du steuerst über eine HTML Seite, oder etwas ähnliches dein PHP oder ASP, ... Programm auf dem Webserver, das ASP Programm frägt das CGI an, das liefert die daten an das ASP Programm das die auswertung macht, und dann das ergebniss an deinen web browser schickt. ( etwas umständlich finde ich )

du könntest auch eine ganz normale Programmiersprache verwenden, ein Programm schreiben das über das Netzerk dein CGI anspricht, von dem die daten bekommtn, und diese dann auswertet. z.B. java

mit AJAX bzw. java script könntest du die auswertung auch clientseitig im browser machen, bzw die daten an ein anderen Web Dienst weiterleiten der dir dann die auswertung macht.

gruss

ChristianF

  • Beiträge: 296
    • Profil anzeigen
    • DeutschOS - Betriebssystem Projekt
Gespeichert
« Antwort #2 am: 09. September 2008, 16:12 »
Hallo.
Wieso logisch? Das CGI nimmt aus dem Internet Anfragen entgegen und gibt die antwort wieder an den Anfragensteller. In deinem falle eine HTML Seite. (das könnte aber auch jedes andere Programm oder server sein) Was das ganze mit ASP oder PHP zu tun hat, kann ich nicht nachfolziehen.
Genau das passiert nicht.
Ich habe 2 Lösungen entworfen, die das Skript aufrufen und den Inhalt der HTML-Datei auslesen. Dies wird dann weiterverarbeitet mit ASP und PHP.
Das Skript macht nichts außer...
  • ...zu prüfen, ob die Parameter korrekt sind
  • ...eine SQL Abfrage durchzuführen
  • ...Das Ergebnis in dem obigen Format auszugeben
Wenn ich das Skript aus HTML heraus aufrufe, ist das so, als würde ich einen Link zu diesem Skript setzen.
 
Nun suche ich allerdings einen Weg, die Daten anders zuverarbeiten (ohne eine serverseitige Skriptsprache).
Ist das so ohne weiteres möglich mit Javascript, von mir aus auch in verbindung mit AJAX. Ich würde nur gerne eine 3 Lösung finden, bei der ich keinen extra Server brauche.
Ich müsste...
  • ...das Skript aufrufen
  • ...das Ergebnis des Skripts auslesen
  • ...ausgaben tätigen, wie z.B. Tabellen ausgeben o.ä.

du könntest auch eine ganz normale Programmiersprache verwenden, ein Programm schreiben das über das Netzerk dein CGI anspricht, von dem die daten bekommtn, und diese dann auswertet. z.B. java
Nun es soll eine Website sein und da java nicht jeder hat, fällt dies weg.
 
 
Grüße Christian

stultus

  • Beiträge: 486
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 09. September 2008, 17:30 »
Hm. Aus nem Browser heraus dürfte das schwierig bis unmöglich werden, da:
a) JavaScript neben Java, Silverlight und Flash (die man alle 3 nich verwenden will) die einzige Verarbeitungsmöglichkeit darstellt, aber
b) JavaScript sich die Daten für sowas nur über die AJAX/XmlHttpRequest-Schnittstelle holen kann, welche leider nur vonner gleichen Domain holt (Datendiebstahl, DoS-Attacken, ... etc. vorbeugen). Da du ja auf das .csv keinen Zugriff hast, geh ich mal davon aus das gleiche Domain entsprechend auch nicht drin ist.
--> Um Serverseitige Skripte kommst du wohl nicht herum.
Zum verarbeiten aus PHP heraus, das ist eigentlich ganz einfach. readfile("http://...."); liefert nen Array, jede Zeile der Seite als ein Arrayelement. Dannach wendest auf jedes Arrayelement nen explode($element,";") an, und bekommst nen weiteres array, jeden Wert des Datensatzes als ein Element. Die lassen sich natürlich leicht zusammenbringen, -> 2-Dimensionales Array. Weiterverarbeitung sollte dannach kein Problem mehr sein.
Oder halt alternativ doch nen Applet.... aber bitte bitte in Java, wenn sowas schon sein muss. Jeder  nicht-i386-Linuxer wird es dir danken ;) (Flash läuft jedenfalls nur unter i386 gescheit, bis überhaupt. Gnash jetzt mal nicht mitgezählt)
MSN: planetconquestdm@hotmail.de
ICQ: 190-084-185

... Wayne?

 

Einloggen