Autor Beitrag
DeCodeGuru
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1333
Erhaltene Danke: 1

Arch Linux
Eclipse
BeitragVerfasst: Do 27.06.02 11:26 
Hi,

kann mir einer ein kleines Codebeispiel für eine CGI-Anwendung geben?

Wichtig dabei wäre, dass beim Aufrufs des Programm eine ein Parameter übergeben wird.

Wäre echt super, wenn mir einer helfen könnte.

MfG DeCodeGuru
crip
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 24



BeitragVerfasst: Sa 29.06.02 16:51 
In Delphi Hilfe schon mal nachgeguckt?
Ok ich hab da nicht durchgeblickt aber wahrscheinlcih gibs du dir mehr Muehe als ich :D
MfG
Crip :arrow:
MerlinElMago
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Do 11.07.02 16:52 
Titel: kein problem...
die einfache methode ist sicherlich eine neue web applikation zu öffnen und die ganzen events zu beantworten. aber ich möchte dir mal eine ganz andere (jedoch HARDCORE :twisted: ) lösung nahebringen. ich persönlich bin einer von der alten garde und deswegen mache ich lieber sachen per hand als das ein komponent mir meine probleme löst, denn mit komponenten weiss man nie so richtig was die machen.
ich setze natürlich voraus das du TP kenntnisse hast, denn in meinem beispiel wird alles OHNE komponenten gemacht.
als erstes, mach' eine console applikation und dann hast du ein leeres programm. gut.
merke dir: alles was mit writeln in stdout geschrieben wird, kommt beim remote user als http daten an. also musst du nur noch eine komplette seite aufbauen.
ein beispiel wäre:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
program Project;
{$APPTYPE CONSOLE}
uses
  SysUtils;
begin
  { TODO -oUser -cConsole Main : Insert code here }

// AB HIER GEHT DIE HTML ÜBERTRAGUNG LOS...

  WriteLN('content-type: text/html');
  WriteLN;

// HIER IST DER HEADER ZUENDE UND DER MUSS IMMER DA SEIN DAMIT DER BROWSER WEISS DASS EIN DOKUMENT FOLGT!

  WriteLN('<HTML><BODY>');
  WriteLN('<H1> Hallo   DeCodeGuru</H1>'
  WriteLN('</BODY></HTML>')

// HIER IST DAS DOKUMENT ZUENDE UND DAMIT AUCH UNSER PROGRAMM
end.


der header ist sehr wichtig und der MUSS so wie ich ihn hier geschrieben habe präsent sein. es sei denn, du möchtest einen file verschicken oder ähnliches... dann ist das eine andere geschichte. aber belassen wir es erstmal hierbei.
wenn du interaktivität möchtest, dann kannst du environmentvariablen auslesen. wie das geht? ganz einfach :

ausblenden Quelltext
1:
GetEnvironmentVariable('MEINE VARIABLE');					


diese funktion gibt die variable als string aus die man wissen möchte.
eine liste aller variablen kannst du hier sehen...

lightning.prohosting...lsom/variables.shtml

eigentlich sind die variablen für cgi scripts auf unix maschienen, aber die namen sind die gleichen in delphi.

ich hoffe ich hab' dir geholfen wenn noch fragen sind dann poste oder schick' mir 'ne PM.

gruss
merlin
DeCodeGuru Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1333
Erhaltene Danke: 1

Arch Linux
Eclipse
BeitragVerfasst: So 14.07.02 10:39 
Hey danke erstmal,

ich kam gestern abend erst ausm Urlaub zurück

@MerlinElMago: Das habe ich bisher auch schon hinbekommen. Und meine CGI-Anwendung hat auch Parameter ausgewertet, leider musste ich feststellen, dass meine JavaScript und HTML-Kentnisse leider nicht ausgereicht haben. Also, mittlerweile wäre meine Frage, wie ich aus einem JavaScriptformular meinem Programm die Eingaben direkt übergeben kann. Wenn ihr dazu was wisst, wäre das auch super.

_________________
Viele Grüße
Jakob
MerlinElMago
Hält's aus hier
Beiträge: 3



BeitragVerfasst: So 14.07.02 11:26 
Titel: -->
hallöchen.
toll dass es dir weitergeholfen hat.
auf deine frage eingaben in dein cgi programm zu übertragen, kann ich nur sagen, dass du es mit normalem HTML hinkriegst ohne zwingenderweise JavaScript zu benutzen (obwohl es mit JS genauso geht).
dazu brauchst du den <FORM> tag von HTML.
alles was zwischen <FORM> und </FORM> steht, wird dein formular. siehe->
www.htmlhelp.com/ref...ml40/forms/form.html
es gibt im form tag eine besondere methode die exact das macht was du möchtest, nämlich werte an eine cgi anwendung schicken. das geht einfach mit:
ausblenden Quelltext
1:
<form method=GET action="http://meine.cgianwendung.com/cgi-bin/hier.exe">					

oder mit
ausblenden Quelltext
1:
<form method=POST action="http://meine.cgianwendung.com/cgi-bin/hier.exe">					


POST wird benutzt wenn die zu übertragenden zeichen nicht url konform sind, also "©" oder ähnliche, und GET ist dazu da url konforme zeichen zu übertragen.
das alles kann (wie du sicher schon weisst) mit der QUERY_STRING variable ausgelesen werden.

gruss
merlin
DeCodeGuru Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1333
Erhaltene Danke: 1

Arch Linux
Eclipse
BeitragVerfasst: So 14.07.02 22:16 
Hi MerlinElMago,

danke erstmal für deine Antwort. Werde das auch gleich mal ausprobieren, aber leider weiss ich noch nicht, wie ich die Daten einlesen soll. Bisher habe ich einfach die Parameter, die ich meinem CGI-Prog übergeben habe ausgewertet. Kannste mir das kurz erklären (Nur wenn es nicht zu viel ausmacht), wie das geht.

_________________
Viele Grüße
Jakob
DeCodeGuru Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1333
Erhaltene Danke: 1

Arch Linux
Eclipse
BeitragVerfasst: Mo 15.07.02 11:22 
Ähm tut mir leid, dass ich so voreilig gepostet habe, aber ich habe es hinbekommen :oops:

Ich hoffe, dass ich dir nicht zuviel Zeit gekostet habe ;-)

_________________
Viele Grüße
Jakob