Avatar billede thomas_fogh Nybegynder
11. februar 2009 - 16:33 Der er 7 kommentarer og
1 løsning

Kør CGI script fra PHP?

Jeg er nybegynder til PHP, og vil gerne vide hvordan man kører et CGI script fra PHP. Helt præcist så har min NAS en authenticate.cgi som "will output the user name if the user has logged in. However, there will not be any output if the user has not been authenticated."
Jeg vil kun at mit PHP script kører, hvis brugeren er logget ind. Hvordan gør jeg det?
Avatar billede arne_v Ekspert
11. februar 2009 - 16:43 #1
Et CGI script er bare et script og kan koeres med exec.

Det stoerste problem er environment.

CGI protokollen forudsaetter diverse environment variabler er sat op.

Men proev og kig i det script og se hvad det goer. Muligvis kan det koeres standalone. Muligvis kan det reimplementeres i PHP.
Avatar billede thomas_fogh Nybegynder
11. februar 2009 - 16:52 #2
Koden er desværre ikke med til scriptet, men den bruges normalt som vist forneden. Jeg tager et kig på exec.
Tak!

int IsUserLogin(char *user, int bufsize)
{
FILE *fp = NULL;
char buf[1024];
int login = 0;

bzero(user, bufsize);

fp = popen("authenticate.cgi", "r");
  if (!fp) {
  return 0;
}
bzero(buf, sizeof(buf));
fread(buf, 1024, 1, fp);
 
if (strlen(buf) > 0) {
    snprintf(user, bufsize, "%s", buf);
    login = 1;
}
pclose(fp);
return login;
}
Avatar billede arne_v Ekspert
11. februar 2009 - 17:02 #3
authenticat.cgi er et binary image og ikke bash/perl/whatever ?

Det der kode er C kode. Og der ser ikke ud til at vaere specielt CGI specifikt.

Saa PHP exec virker sikkert.

PHP har ioevrigt ogsaa popen !
Avatar billede arne_v Ekspert
11. februar 2009 - 17:04 #4
Avatar billede thomas_fogh Nybegynder
12. februar 2009 - 08:58 #5
Tak, Arne! Det er vist det jeg skal bruge. Skriv lige et svar, så du kan få nogle point.
Nu manger jeg bare at få sat min web server rigtigt op. Den viser bare php koden i stedet for at køre scriptet...
Avatar billede arne_v Ekspert
12. februar 2009 - 15:14 #6
svar
Avatar billede arne_v Ekspert
12. februar 2009 - 15:15 #7
du skal have loaded mod_php og have den associeret med .php extension.
Avatar billede thomas_fogh Nybegynder
12. februar 2009 - 15:17 #8
Jep. Det har jeg fået rettet... Tak for hjælpen!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester