[an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive]
 
[an error occurred while processing this directive] [an error occurred while processing this directive]
Skåne Sjælland Linux User Group - http://www.sslug.dk Home   Subscribe   Mail Archive   Forum   Calendar   Search
MhonArc Date: [Date Prev] [Date Index] [Date Next]   Thread: [Date Prev] [Thread Index] [Date Next]   MhonArc
 

Re: [[CPROG] Cgi programmer i C]



sslug@sslug wrote:
> Det eneste problem jeg støder ind i hele tiden er, hvordan får man
> hentet informationerne ud af forms'ne på siden, og returneret
> den side man vil vise efter udførslen af programmet??

Hvis du bruger POST/GET så modtager du enten replyet på
kommandolinien eller på stdin. Dit svar udskriver du på
stdout og det bliver så vist i browseren.

> Kan man benytte sig af en normal istr() og ostr()
Normalt bruger jeg cin.get(ch);  for at hente input
karaktere en af gangen, idet inputtet skal url-dekrypteres.

Har du en form som:
<form action="some_url/my.cgi" method="POST" target="andenframe">
  <input type="text" name="ib">
  <input type="text" name="bo">
</form>

Så vil replyet se ud som:
ib=testiboxet&bo=textiboxto

Så du skal lave lidt kode der fortolker dette. Hvis der nu 
er skrevet '&' eller '=' (og '%') i tekstfeltet, så sendes
dette som '%'+hex code, dvs. modtager du '%' er de to næste
chars en hex code.

Bemærk at du fra environment strengen CONTENT_LENGTH modtager
antallet af karaktere på stdin, der er ikke en eof i enden, 
så forsøger du at læse efter det sidste tegn, så crasher din
fortolker, og browseren i den anden ende staller. Og du må
så lufte root accounten og dræbe processen.

Når du har fået input dekrypteret, kan du gøre med det
som du lyster, når du sender et svar tilbage så skal det
starte med "Content-Type:  text/html\r\n", hvis det altså
er html du sender tilbage.
Så kan du bare cout << "<Html><H1>Reply in html</h1></html>\n";

Og browseren vil fortolke det som html og vise det i en frame
eller i et nyt vindue, afhængigt af hvad for target du bruger
i form'en.

Du kan også sende gif billeder eller lyd osv. tilbage.
Jeg lavede engang et life program, det sendte et mime
multimessage tilbage til browseren, så den stod og modtog
en 'video' af gif billeder.  :*)

Husk at gemmer dit program filer, så skal directoriet 
have accessrights så httpd'en kan skrive til det. Dette
skyldes at dit cgi program udføres med http deamonens
uid og ikke din egen.

> Er der nogen, som har et lille eksempel liggende, jeg
> muligvis kan se, og få inspiration fra??

Jeg har lavet en del, men ikke nogle programmer der er
pædagogiske, eller letlæselige, men jeg har en C++ klasse
der url dekryptere. :*)


   from zqex

____________________________________________________________________
More than just email--Get your FREE Netscape WebMail account today at http://home.netscape.com/netcenter/mail


 
Home   Subscribe   Mail Archive   Index   Calendar   Search

 
 
Questions about the web-pages to <www_admin>. Last modified 2005-08-10, 20:07 CEST [an error occurred while processing this directive]
This page is maintained by [an error occurred while processing this directive]MHonArc [an error occurred while processing this directive] # [an error occurred while processing this directive] *