#include #include #include void get_value(char *src, const char *key, char *dest) { char *p = strstr(src, key); if (p) { p += strlen(key) + 1; int i = 0; while (*p && *p != '&') { if (*p == '+') dest[i++] = ' '; else dest[i++] = *p; p++; } dest[i] = '\0'; } else { strcpy(dest, "N/A"); } } int main() { char *data = getenv("QUERY_STRING"); char first[100], last[100], movie[100], time[100], tickets[10]; char snack1[100], snack2[100], snack3[100]; printf("Content-type: text/html\n\n"); if (data == NULL) { printf("

No data entered so sad.

"); return EXIT_SUCCESS; } get_value(data, "firstname", first); get_value(data, "lastname", last); get_value(data, "movie", movie); get_value(data, "time", time); get_value(data, "tickets", tickets); get_value(data, "snack1", snack1); get_value(data, "snack2", snack2); get_value(data, "snack3", snack3); printf(""); printf("Movie Ticket"); printf(""); printf("
"); printf("

🎬 Movie Tickets!

"); printf("

Name: %s %s

", first, last); printf("

Movie: %s

", movie); printf("

Time: %s

", time); printf("

Tickets: %s

", tickets); printf("
"); printf("

Snacks: "); int firstSnack = 1; if (strcmp(snack1, "N/A") != 0) { printf("%s", snack1); firstSnack = 0; } if (strcmp(snack2, "N/A") != 0) { if (!firstSnack) printf(", "); printf("%s", snack2); firstSnack = 0; } if (strcmp(snack3, "N/A") != 0) { if (!firstSnack) printf(", "); printf("%s", snack3); } printf("

"); printf("
"); printf("Thank YOU! Please enjoy your movie! 🍿"); printf("
"); printf("
"); printf(""); return EXIT_SUCCESS; }