[C] Eigen serverside parser maken

Pagina: 1
Acties:

  • Engineer
  • Registratie: Juni 2001
  • Laatst online: 04-05 00:03
Ik wil dus zoiets maken als php, alleen dan veel simpeler.

Dus ik moet het volgende weten:
• Hoe haal ik een opgevraagde page m'n prog binnen?
• Hoe stuur ik een geparsede page terug naar de webserver?

Ik heb het met gewoon printen geprobeert, daar is toen dit uitgekomen, kweet niet of het goed is maar in dos kan ik er gewoon tekst mee printen als ik iets anders ipv de %1 zet:
code:
1
2
3
4
5
6
7
#include <stdio.h>

main(char*s, char*format)
{
  fprintf (stderr, "%1", 0);
  return 0;
}

Maar daar komt nix uit..

Dit is dus m'n 2e brouwseltje in C dus hou het een beetje simpel ;)

Is er iemand die uit kan leggen hoe ik dit nu verder aan moet pakken? :)

Verwijderd

Wil je een CGI maken? of een ISAPI plugin voor iis? of een eigen webserver? of ...? :? Leg eerst es uit at je precies wil bereiken dan helpen wij je hoe je verder moet :Y)

  • Engineer
  • Registratie: Juni 2001
  • Laatst online: 04-05 00:03
Simpel; De exe word netzoals php dat doet uitgevoerd, dan parsed ie de page die opgevraagd is en stuurt hem weer terug naar de webserver.

Gewoon een soort eigen php dus.. ;)

Verwijderd

CGI dus ;)

  • The - DDD
  • Registratie: Januari 2000
  • Laatst online: 03-09 16:40
CGI dus....

Als je de CGI interface bestudeerd, dan weet je dat je executable wordt aangeroepen met de waarden in de query string als argument(en) (weet niet precies meer).

En dat datgene wat de CGI executable op de stdout zet wordt terug gestuurd naar de server en weer wordt doorgegeven aan de webclient.

Verwijderd

code:
1
2
3
4
5
6
7
#include <stdio.h>

void main() {
    printf("Content-type: text/html\n\n") ;
    printf("<html><body>Hello CGI</body></html>");
    exit(0) ;
}

Dit moet je wel aan de gang helpen, compileren in je cgi-bin dir rotten en off you go :Y)

  • Engineer
  • Registratie: Juni 2001
  • Laatst online: 04-05 00:03
Koel, dat werkt :) :) :)

En hoe kan ik de data van de opgevraagde page binnenhalen? :)

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16-09 16:30

Janoz

Moderator Devschuur®

!litemod

Op zaterdag 17 november 2001 17:45 schreef The - DDD het volgende:
CGI dus....

Als je de CGI interface bestudeerd, dan weet je dat je executable wordt aangeroepen met de waarden in de query string als argument(en) (weet niet precies meer).
Je weet het dus wel precies :) get parameters (achter de ?) worden als parameters aan aan je executable gegeven.

Post parameters worden op de stdin gezet.

LET OP: Bij cgi moet je vaak zelf de headers toevoegen. Zonder een content type beeld de browser meestal weinig af!

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Engineer
  • Registratie: Juni 2001
  • Laatst online: 04-05 00:03
Ok, maar hoe kom ik aan de page die opgevraagd is dan :?

%1 dacht ik maar dat werkt niet..

Verwijderd

't is geen batchfile ;)

  • Engineer
  • Registratie: Juni 2001
  • Laatst online: 04-05 00:03
:P

Maar hoe moet dat wel dan?

Verwijderd

Goh iets zelf uit zoeken is je echt totaal onbekend he?
code:
1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
main( int argc, char *argv[ ], char *envp[ ] )
 {
   int i;
   printf("Content-type: text/html\n\n") ;
   printf("<html><body><pre>");
   for (i = 0; envp[i] != NULL; i++)
    printf("\n%s\n", envp[i]);
   printf("</pre></body></html>");
   exit(0) ;
}

In je cgi-bin dir rotten.

je httpd.conf even editen
code:
1
2
AddHandler got-script .got
Action got-script /cgi-bin/naam_van_jouw_binary

*klaaar* :Y)

  • The - DDD
  • Registratie: Januari 2000
  • Laatst online: 03-09 16:40
Op zaterdag 17 november 2001 18:02 schreef Janoz het volgende:

[..]

Je weet het dus wel precies :) get parameters (achter de ?) worden als parameters aan aan je executable gegeven.

Post parameters worden op de stdin gezet.

LET OP: Bij cgi moet je vaak zelf de headers toevoegen. Zonder een content type beeld de browser meestal weinig af!
Eej, dat van post wist ik nog niet. Cool nu zou ik eventueel ook mijn eigen CGItjes kunnen maken die POSTS afhandelen. Mocht ik het een keer zoiets in de CGI-BIN dir moeten rotten >:). Bruut woord wel. :P

  • Engineer
  • Registratie: Juni 2001
  • Laatst online: 04-05 00:03
Jeah sure, dat vind ik even uit zonder boeken of iets .. btw httpd.conf had ik al aangepast. ;)

Verwijderd

Op zaterdag 17 november 2001 18:22 schreef hdd het volgende:
Jeah sure, dat vind ik even uit zonder boeken of iets .. btw httpd.conf had ik al aangepast. ;)
Ik vind het toch ook uit zonder boeken of iets?! tot jij je post opende ook nog nooit wat gedaan met apache meuk hoor..

  • Engineer
  • Registratie: Juni 2001
  • Laatst online: 04-05 00:03
Dan mag jij me vertellen hoe ik er dan achter kan komen hoe zoiets moet ;)

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

apache.org?

Doet iets met Cloud (MS/IBM)


Verwijderd

Ik heb gebruikt:

Docs van apache voor de handler troep.
Docs/tutors over cgi om er achter te komen dat de meeste intresante variablen via het enviroment worden door gegeven.
5 mins google groups om ff 'n print routine te vinden om die krengen af te drukken want had geen zin in om zelf na te denken.

Goed roeren, klaaar :)

  • Engineer
  • Registratie: Juni 2001
  • Laatst online: 04-05 00:03
Kan iemand even uitleggen hoe dat werkt met die procenten in een string?

printf("%d", var);

? :)

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
hdd: Kan iemand even uitleggen hoe dat werkt met die procenten in een string?
Misschien kan je beter uitgelegd worden dat je docs moet lezen en eventueel zelfs een goed boek moet kopen :) .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

Op zaterdag 17 november 2001 19:53 schreef hdd het volgende:
Kan iemand even uitleggen hoe dat werkt met die procenten in een string?
printf("%d", var);
man 3 printf

[edit: clickable link met manpage]

  • Engineer
  • Registratie: Juni 2001
  • Laatst online: 04-05 00:03

Verwijderd

Voor de werking van de C printf functie ga jij in de php manual kijken :? errmmzz... okay.. ik hoop voor je dat ze het zelfde weken.

  • Engineer
  • Registratie: Juni 2001
  • Laatst online: 04-05 00:03
De zoveelste vraag .. maargoed, ik wil nu de string waar de filename in staat door strrchr heen halen zodat alleen de filename overblijft..

filename = strrchr(envp[29],'=');

Maar dan zegt ie:
type error in argument 1 to 'strrchr'; found 'char' expected 'pointer to const char'
:?

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Ahum, is het je nu nog niet duidelijk dat je niet zomaar kan gaan prutsen in een taal als C? Dit is iets andere materie dan PHP en dergelijke. Je moet meer kennis hebben van de principes van C. Koop of leen aub een boek of lees een hele goede tutorial door.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include <stdlib.h>

main( int argc, char *argv[ ], char *envp[ ] )
{
    char *fn;
    printf("Content-type: text/html\n\n") ;
    printf("<html><body><pre>");
    fn = getenv("PATH_TRANSLATED");
    printf("Filename getenv: %s\n",fn);
    fn = envp[29]; // <--- BAD IDEA!!!
    fn = fn +17;
    printf("Filename envp  : %s\n",fn);
    printf("</pre></body></html>");
    exit(0) ;
}

En nu terug naar de HK tot je een fatsoenlijk boek over de basis beginselen van C gelezen hebt.

  • Engineer
  • Registratie: Juni 2001
  • Laatst online: 04-05 00:03
Ja baas

Verwijderd

Op zaterdag 17 november 2001 21:35 schreef hdd het volgende:
Ja baas
Als je maar niet denkt dat ik je ook nog ga betalen ofzo >:)

  • Johannes
  • Registratie: Juni 2000
  • Laatst online: 14-09 23:09
Goede NL beginnersuitleg voor C:

Emulov's C-taal voor beginners

Voor C++ ken ik niet zoiets, maar deze is wel heel handig voor de beginselen.

Uit volle borst op weg naar nergens / Zonder reden zonder doel
Met m'n zeden en m'n zonden / En mijn angstig voorgevoel
Laat mij mijn kont tegen de krib / Laat mij dit goddeloze lied
Hef jij je handen maar ten hemel / Maar red mij niet

Pagina: 1