Oud 03-12-2003, 10:40
G.T.C.
Avatar van G.T.C.
G.T.C. is offline
Op school moet ik een heel simpel cgi script maken in c taal voor een linux server.
We moeten een html pagina maken met 2 invoer velden. Voornaam en achternaam bijvoorbeeld:

--------------------------------
<HTML>

<HEAD>
<TITLE>Demo post en get</TITLE>
</HEAD>

<BODY>

<FORM method=post action="http://10.10.20.12/~hotel3/cgi-bin/gtc/postenget">
<BR>Wat invoervelden.
<BR><INPUT TYPE="TEXT" NAME="NAAM">
<BR><INPUT TYPE="TEXT" NAME="VOORNAAM">

<INPUT TYPE="SUBMIT" VALUE="VERZENDEN">
<BR>
</FORM>

</BODY>
</HTML>
------------------------------

dit is dan met de method POST. Als het goed is zou je dan alleen die method in GET moeten veranderen voor een GET script. (toch ???)





hieronder staat dan een script die eigenlijk de POST en de GET zou moeten kunnen verwerken.

-----------------------------------
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

main()
{
char *methode;
char *lengte;
char *type;
char *string;
char voornaam[30];
char achternaam[30];

methode = getenv("REQUEST_METHOD");
lengte = getenv("CONTENT_LENGTH");
type = getenv("CONTENT_TYPE");
string = getenv("QUERY_STRING");

scanf("%c", &voornaam[30]);
scanf("%c", &achternaam[30]);

printf("content-type: text/html \n\n");
printf("<HTML><br><br>\n\n");
printf("<head><title>test pagina 1</title></head>\n") ;
printf("<body>\n") ;

printf("<h1>voornaam = %c</h1>\n", voornaam);
printf("<h1>achternaam = %c </h1>\n", achternaam);
printf("<p>type = %s</P>\n", type);
printf("<p>lengte = %s</P>\n", lengte);
printf("<p>methode = %s</P>\n", methode);
printf("<p>query string = %s</P>\n", string);

printf("</body>\n");
printf("</html>\n");
printf("<br>\n");
return 0;
}
-----------------------------------


als ik nou een pagina met GET gebruik krijg ik alleen bij query string te zien wat daar in staat. Bijvoorbeeld: NAAM=de+Boer&VOORNAAM=Rob
Bovenaan de pagina staat de tekst "voornaam" en "achternaam". Hier achter zou die dus die variablen ook moeten printen. Nu krijg je alleen rare ascii tekens ofzo.
En bij POST kan je nu al helemaal niets zien natuurlijk.

KAn iemand een mooi script geven voor een POST pagina en een GET pagina die dan 2 velden uitlezen en op de terug gegeven pagina kan weergeven.
Alvast bedankt!!!
__________________
A lie gets halfway around the world before the truth has a chance to get its pants on.
Met citaat reageren
Advertentie
Oud 05-12-2003, 15:23
G.T.C.
Avatar van G.T.C.
G.T.C. is offline
is het nou toch best moeilijk allemaal of heeft gewoon niemand zin om te reageren?
__________________
A lie gets halfway around the world before the truth has a chance to get its pants on.
Met citaat reageren
Oud 05-12-2003, 16:38
Verwijderd
Code:
scanf("%c", &voornaam[30]);
scanf("%c", &achternaam[30]);
Waarvan lees je hier in?
Je moet je querystring zelf splitsen...
Met citaat reageren
Oud 05-12-2003, 17:24
G.T.C.
Avatar van G.T.C.
G.T.C. is offline
Citaat:
eddie schreef op 05-12-2003 @ 17:38:
Code:
scanf("%c", &voornaam[30]);
scanf("%c", &achternaam[30]);
Waarvan lees je hier in?
Je moet je querystring zelf splitsen...
dit script is ook niet van mij. Dit is een incompleet script van school. Maar wat wij als opdracht moeten met die 2 velden uitlezen met POST en GET is volgens mij zo erg basic dat het mij leek dat iemand hier dat zo wel effe uit z'n mouw kon schudden.
__________________
A lie gets halfway around the world before the truth has a chance to get its pants on.
Met citaat reageren
Oud 06-12-2003, 13:28
Verwijderd
Citaat:
G.T.C. schreef op 05-12-2003 @ 18:24:
dit script is ook niet van mij. Dit is een incompleet script van school. Maar wat wij als opdracht moeten met die 2 velden uitlezen met POST en GET is volgens mij zo erg basic dat het mij leek dat iemand hier dat zo wel effe uit z'n mouw kon schudden.
Als het zo basic is, kun je het zelf ook wel.

Je hebt je query string als karakter reeks. Dan kun je er dmv pointers doorheenlopen en de benodigde gegevens opslaan.
Je weet dat voor de '=' het veld staat van de pagina (NAAM) en achter de '=' de waarde, tot een '&' teken. (kijk maar naar je string). Alles wat tussen de '=' en '&' staat is dus de waarde die je nodig hebt. Verder lijkt de '+' op een spatie...
Er zal allicht een beter methode zijn, maar zo goed is mijn C kennis niet...
Met citaat reageren
Oud 07-12-2003, 10:04
G.T.C.
Avatar van G.T.C.
G.T.C. is offline
ik heb op inet nu een stukje gevonden om een query_string uit te lezen. MAar ik snap niet helemaal wat dit programma doet


-------------------------------------------
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char *data;
long m,n;
printf("%s%c%c\n",
"Content-Type:text/html;charset=iso-8859-1",13,10);
printf("<TITLE>Multiplication results</TITLE>\n");
printf("<H3>Multiplication results</H3>\n");
data = getenv("QUERY_STRING");
if(data == NULL)
printf("<P>Error! Error in passing data from form to script.");
else if(sscanf(data,"m=%ld&n=%ld",&m,&n)!=2)
printf("<P>Error! Invalid data. Data must be numeric.");
else
printf("<P>The product of %ld and %ld is %ld.",m,n,m*n);
return 0;
}
-------------------------------------------




wat doet deze regel:
Citaat:
else if(sscanf(data,"m=%ld&n=%ld",&m,&n)!=2)
scanf ken ik wel maar wat is dan sscanf? en normaal doe je na zo'n scanf tussen aanhalings tekens zeggen wat voor variabele het is en na de komma waar het opgeslagen wordt.

is sscanf er om een bestaande variabele juist weer in te lezen ofzo? Als dat zo is dan snap ik alleen nog niet wat tussen de aanhalings tekens staat.
iemand die kan helpen?
__________________
A lie gets halfway around the world before the truth has a chance to get its pants on.
Met citaat reageren
Advertentie
Reageren

Topictools Zoek in deze topic
Zoek in deze topic:

Geavanceerd zoeken

Regels voor berichten
Je mag geen nieuwe topics starten
Je mag niet reageren op berichten
Je mag geen bijlagen versturen
Je mag niet je berichten bewerken

BB code is Aan
Smileys zijn Aan
[IMG]-code is Aan
HTML-code is Uit

Spring naar


Alle tijden zijn GMT +1. Het is nu 03:45.