Hi,
Ich rufe fertige Compilierte Dateien auf (Exe Files), schon
alleine wegen der Geschwindigkeit und es lassen sich so
auch die Parameter besser auslesen.
Als Web-Server läuft hier im Moment noch JANA ,Flat2Serv und
MultiCom parallel, wobei JANA auf Port 80 als Standart-Server
fungiert, Flat2Serv als FTP. MultiCom ist ein Eigene
Produktion in sachen Web-Server, soll aber JANA und Flat2Serv
mal ablösen !!!
Mitlerweile sind aber viele CGI-Scripte nach Delphi Portiert,
und nur noch vereinzelt in Profan. Das Prinzip über die
API ist aber auch dort gebleiben.
Für den NICHT KOMMERZIELLEN gebrauch gebe ich nun die Profan
Inlude frei.
'STD_INC für CGI
'(C) MRK-Soft, 2002
'bei Kommerzellen gebrauch der INC sind 20 Euro zu entrichten !!!
def GetStdHandle(1) !"kernel32","GetStdHandle"
def stdReadFile(5) !"kernel32","ReadFile"
def stdWriteFile(5) !"kernel32","WriteFile"
declare cgi1#, cgi2#, querry$
querry$ = @GetEnv$("QUERY_STRING") 'daten aus dem Qureey lesen, Method = GET
proc std_WriteText
parameters textUser$
declare stdhandle&, cgiout$
cgiout$ = "Content-Type: text/html" + chr$(13) + chr$(10) + chr$(13) + chr$(10)
writetext$ = cgiOut$ + textUser$
dim cgi1#,len(writetext$)
dim cgi2#,4
String cgi1#,0=writetext$
stdhandle& = GetStdHandle(-11)
stdWriteFile(stdhandle&,cgi1#,len(writetext$),cgi2#,0)
dispose cgi1#
dispose cgi2#
endproc
proc std_WriteFile
parameters writefile$
declare stdhandle&, cgilen&, cgiout&, cgiout$
cgiout$ = "Content-Type: text/html" + chr$(13) + chr$(10) + chr$(13) + chr$(10)
cgiout& = FileSize(writefile$)
cgilen& = len(cgiout$) + cgiout&
dim cgi2#,4
dim cgi1#,cgilen&
String cgi1#,0=cgiout$
Assign #1,writeFile$
OpenRW #1
BlockRead(#1,cgi1#,len(cgiout$),cgiout&)
CloseRW #1
stdhandle& = GetStdHandle(-11)
stdWriteFile(stdhandle&,cgi1#,cgilen&,cgi2#,0)
dispose cgi1#
dispose cgi2#
Endproc
proc std_EWriteFile
parameters writefile$
declare stdhandle&, cgilen&, cgiout&, cgiout$
cgiout$ = "Content-Type: text/html" + chr$(13) + chr$(10) + chr$(13) + chr$(10)
cgiout& = FileSize(writefile$)
cgilen& = len(cgiout$) + cgiout&
dim cgi2#,4
dim cgi1#,cgilen&
String cgi1#,0=cgiout$
Assign #1,writeFile$
OpenRW #1
BlockRead(#1,cgi1#,len(cgiout$),cgiout&)
CloseRW #1
Erase #1
stdhandle& = GetStdHandle(-11)
stdWriteFile(stdhandle&,cgi1#,cgilen&,cgi2#,0)
dispose cgi1#
dispose cgi2#
Endproc
proc std_StreamFile
parameters writefile$
declare stdhandle&, cgilen&, cgiout&, cgiout$
cgiout$ = "Content-type: application/octet-stream; name=" + CHR$(34) + writefile$ + CHR$(34) + chr$(13) + chr$(10) + chr$(13) + chr$(10)
cgiout& = FileSize(writefile$)
cgilen& = len(cgiout$) + cgiout&
dim cgi2#,4
dim cgi1#,cgilen&
String cgi1#,0=cgiout$
Assign #1,writeFile$
OpenRW #1
BlockRead(#1,cgi1#,len(cgiout$),cgiout&)
CloseRW #1
stdhandle& = GetStdHandle(-11)
stdWriteFile(stdhandle&,cgi1#,cgilen&,cgi2#,0)
dispose cgi1#
dispose cgi2#
endproc
proc std_WriteGIF
parameters writefile$
declare stdhandle&, cgilen&, cgiout&, cgiout$
cgiout$ = "Content-Type: image/gif" + chr$(13) + chr$(10) + chr$(13) + chr$(10)
cgiout& = FileSize(writefile$)
cgilen& = len(cgiout$) + cgiout&
dim cgi2#,4
dim cgi1#,cgilen&
Assign #1,writeFile$
OpenRW #1
BlockRead(#1,cgi1#,0,cgiout&)
CloseRW #1
stdhandle& = GetStdHandle(-11)
stdWriteFile(stdhandle&,cgi1#,cgilen&,cgi2#,0)
dispose cgi1#
dispose cgi2#
Endproc
'std_WriteText "Hallo Computer"
'std_WriteText querry$
'std_WriteGIF "bild.gif" 'auch für JPG zu benutzen
|