Нам было предложено создать страницу входа в систему с использованием HTML, C/CGI и CSS. Я хотел бы начать с основ, HTML и C/CGI первой, так что я создал это:C/HTML - печать имени пользователя и пароля из формы HTML
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
char *data;
char *user;
char *password;
printf("Content-type:text/html\r\n\r\n");
printf("<!DOCTYPE html><html><head><title>Welcome!</title></head><body>");
data = getenv("QUERY_STRING");
if (data) {
sscanf(data,"user=%s&password=%s", &user, &password);
printf("Hello Mr./Ms. %s\n",user);
printf("You entered your password %s\n",password);
}
printf("<form action='http://localhost/inch.html'>");
printf("<input type=submit value='Compute'>");
printf("</body></html>");
exit(EXIT_SUCCESS);
}
Однако компилятор показывает мне эту проблему:
предупреждение: формат «% S» ОЖИДАЕТ аргумент типа «char *», но аргумент 3 имеет тип «char **» [-Wformat =] sscanf (данные, «пользователь =% s & пароль =% s», & пользователь, & пароль);
Кроме того, HTML показывает мне ошибку 500.
Любые идеи о том, как это исправить? Я довольно новичок в этом деле HTML/CGI, и я был бы признателен за помощь на этом пути. Благодаря!
определяются некоторые переменные, указатели, но вы никогда не сделать их указать в любом месте. Это неверно и приведет к * неопределенному поведению *. –
Что касается вашего предупреждения, вы на самом деле * читаете * его? Это точно говорит о том, что не так. –