int main(int argc, char *argv[]) { int x,m; char *qs; entry *entries; int n; char **list,**urls; /* récupération de la chaîne de paramètres */ qs = get_query_string(argc,argv); /* récupération des couples (nom,valeur) */ entries = get_entries(qs,&m); /* émission de l'entête */ print_html_head("Résultat"); /* affichage éventuel des informations de debug */ if (DEBUG) print_debug_query(entries,m,qs,argc,argv); /* lecture de la liste des images */ list = readList("/u/q/quenotg/HMUL8R6A/PROJET/test/list.txt",&n); if (list == NULL) {printf("Failed to read %s file.\n","list.txt"); exitfail();} if (DEBUG) printf("Read list, %d images.<BR>\n",n); /* lecture des urls des images */ urls = readList("/u/q/quenotg/HMUL8R6A/PROJET/test/urls.txt",&n); if (list == NULL) {printf("Failed to read %s file.\n","list.txt"); exitfail();} if (DEBUG) printf("Read list, %d images.<BR>\n",n); /* émission de la fin de corps et de document */ print_html_tail(); exit(0); }
int main(int argc, char *argv[]) { int x,m; char *qs; entry *entries; int nbTrain,nbVal,nbDims,nbConcepts,c,**trainAnns,**valAnns,ret; char **trainList,**valList,**concepts,*name; float **trainDescriptors,**valDescriptors; /* récupération de la chaîne de paramètres */ qs = get_query_string(argc,argv); /* récupération des couples (nom,valeur) */ entries = get_entries(qs,&m); /* émission de l'entête */ print_html_head("Résultat"); /* affichage éventuel des informations de debug */ if (DEBUG) print_debug_query(entries,m,qs,argc,argv); trainList = readList("/usr/lib/cgi-bin/RIM/images/train/list.txt",&nbTrain); if (trainList == NULL) {printf("Failed to read %s file.\n","train/list.txt"); exitfail();} if (DEBUG) printf("Read train list, %d images.<BR>\n",nbTrain); valList = readList("/usr/lib/cgi-bin/RIM/images/val/list.txt",&nbVal); if (valList == NULL) {printf("Failed to read %s file.\n","val/list.txt"); exitfail();} if (DEBUG) printf("Read val list, %d images.<BR>\n",nbVal); trainDescriptors = readDescriptors("/usr/lib/cgi-bin/RIM/images/train/descriptors.bin",nbTrain,&nbDims); if (trainDescriptors == NULL) {printf("Failed to read %s file.\n","train/descriptors.bin"); exitfail();} if (DEBUG) printf("Read train descripors, %d images, %d dimensions.<BR>\n",nbTrain,nbDims); valDescriptors = readDescriptors("/usr/lib/cgi-bin/RIM/images/val/descriptors.bin",nbVal,&nbDims); if (valDescriptors == NULL) {printf("Failed to read %s file.\n","val/descriptors.bin"); exitfail();} if (DEBUG) printf("Read val descripors, %d images, %d dimensions.<BR>\n",nbVal,nbDims); concepts = readList("/usr/lib/cgi-bin/RIM/images/concepts.txt",&nbConcepts); if (concepts == NULL) {printf("Failed to read %s file.\n","concepts.txt"); exitfail();} if (DEBUG) printf("Read concept list, %d concepts.<BR>\n",nbConcepts); trainAnns = malloc(nbConcepts*sizeof(int *)); if (trainAnns == NULL) {printf("malloc() failed.\n"); exitfail();} if (DEBUG) printf("Read train annotations:"); for (c = 0; c < nbConcepts; c ++) { ret = asprintf(&name,"/usr/lib/cgi-bin/RIM/images/train/ann/%s.ann",concepts[c]); if (ret < 0) {printf("asprintf() failed.\n"); exitfail();} trainAnns[c] = readAnnotations(name,nbTrain); if (trainAnns[c] == NULL) {printf("Failed to read train/ann%s.ann file.\n",concepts[c]); exitfail();} if (DEBUG) printf(" %s",concepts[c]); } if (DEBUG) printf(".<BR>\n"); valAnns = malloc(nbConcepts*sizeof(int *)); if (valAnns == NULL) {printf("malloc() failed.\n"); exitfail();} if (DEBUG) printf("Read val annotations:"); for (c = 0; c < nbConcepts; c ++) { ret = asprintf(&name,"/usr/lib/cgi-bin/RIM/images/val/ann/%s.ann",concepts[c]); if (ret < 0) {printf("asprintf() failed.\n"); exitfail();} valAnns[c] = readAnnotations(name,nbVal); if (valAnns[c] == NULL) {printf("Failed to read val/ann%s.ann file.\n",concepts[c]); exitfail();} if (DEBUG) printf(" %s",concepts[c]); } if (DEBUG) printf(".<BR>\n"); /* émission de la fin de corps et de document */ print_html_tail(); exit(0); }
int main(int argc, char ** argv){ cgi datCGI; char * teach=NULL; char * acceptTOS=NULL; person reg_person; bool pw_short=false; init_person(®_person); init_CGI(&datCGI); get_CGI_data(&datCGI); if(datCGI.request_method == GET){ print_exit_failure("Use POST!"); } //Für die Namen: siehe HTML-Dokument mit entsprechenden <input>-Elementen extract_POST_data(&datCGI, "name_vor", ®_person.first_name); remove_newline(reg_person.first_name); clean_string(reg_person.first_name); extract_POST_data(&datCGI, "name", ®_person.name); remove_newline(reg_person.name); clean_string(reg_person.name); extract_POST_data(&datCGI, "email", ®_person.email); remove_newline(reg_person.email); clean_string(reg_person.email); extract_POST_data(&datCGI, "pass", ®_person.password); remove_newline(reg_person.password); extract_POST_data(&datCGI, "acronym", ®_person.acronym); remove_newline(reg_person.acronym); clean_string(reg_person.acronym); extract_POST_data(&datCGI, "teach", &teach); remove_newline(teach); extract_POST_data(&datCGI, "acceptTOS", &acceptTOS); remove_newline(acceptTOS); //TODO: fehlerhaften Aufruf abfangen if(strcmp(teach, "true") == 0){ reg_person.isTeacher=true; if(strlen(reg_person.acronym) != 3){ print_html_error("Das Kürzel muss genau 3 Zeichen lang sein", "/registrierung.html"); exit(EXIT_FAILURE); } }else{ reg_person.isTeacher=false; } //Die E-Mail-Adresse muss genau EIN '@' beinhalten if((strchr(reg_person.email, '@') == strrchr(reg_person.email, '@')) && strchr(reg_person.email, '@')) { #ifdef DEBUG fprintf(stderr, "es scheint alles zu passen (EMAIL)\n"); #endif // DEBUG if(strlen(reg_person.password)<8){ pw_short=true; } insert_user(®_person); } //fprintf(stderr, "\nnow comes da htmlz\n"); httpCacheControl("no-store, no-cache, must-revalidate, max-age=0"); httpHeader(HTML); //printf("%s\n", datCGI.POST_data); print_html_head("Passwort erneut eingeben", "Verifikation"); puts("<body>\n\ <div id='login-form'>\n"); printf("<p><span>Herzlich willkommen <span style='font-weight: bold;'>%s %s.</span><br>Bitte %s zum Anmelden %s Passwort ein</p>\n", reg_person.first_name, reg_person.name, reg_person.isTeacher ? "geben Sie" : "gib", reg_person.isTeacher ? "Ihr" : "dein" ); printf("<form method='post' action='/cgi-bin/login.cgi' style='border-radius: 1em; padding: 1em;' autocomplete='off'>\n\ <input type='hidden' name='email' value='%s' />\n\ <input class='textIn' placeholder='Passwort' type='password' id='pass' name='pass' required>\n\ <button class='submitButton' type='submit'>Anmelden*</button>\n\ </form>\n",reg_person.email); puts("<small>* Cookies müssen aktiviert sein!</small>\n"); if(pw_short){ puts("<br><small style='color: yellow; background-color: red;'>Sie sollten wirklich ein längeres Passwort verwenden!!</small>\n"); } puts("</div>\n</body>\n</html>\n"); /*puts("Erhaltene Daten:\n"); printf("CONTENT_LENGTH: %d\n", datCGI.content_length); printf("Name: %s\nPassword: %s\n", reg_person.name, reg_person.password); printf("Kuerzel: %s\nTeach: %s\n", reg_person.acronym, teach); printf("accepted TOS: %s\n\n", acceptTOS); printf("Post Data: %s\n", datCGI.POST_data);*/ exit(0); }