2016-10-25 6 views
0

HTML、C/CGI、およびCSSを使用してログインページを作成するように要求されました。C/HTML - HTMLフォームからのユーザー名とパスワードの印刷

警告:フォーマット「%s」のを期待しかし、コンパイラは私にこの問題を示している

#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); 
} 

:私は、私がこれを作成した最初のように、基本、HTMLおよびC/CGIで始めたいと思いましたタイプ 'チャー*' の引数が、引数3 'は文字**' [-Wformat =] のsscanf(データ、 "ユーザーは=%S &パスワード=%のS"、&ユーザ、&パスワード)を入力有します。また

、HTMLは私が500

この問題を解決する方法上の任意のアイデアをエラー表示されますか?私はこのHTML/CGIのことではかなり新しいので、途中で助けていただければ幸いです。ありがとう!

+0

int sscanf (const char * s, const char * format, ...); 

はこれを試してみてください。それは間違っており、*未定義の動作*につながります。 –

+0

あなたの警告に関しては、実際にそれを読んだことがありますか?それは何が間違っているかを正確に伝えます。 –

答えて

0

問題はcharへのポインタを必要とするsscanf、次のとおりです。あなたがポインタであるいくつかの変数を定義していますが、彼らはどこにも指すよう決して

char user[100]; 
char password[100]; 
// ... 
sscanf(data,"user=%s&password=%s", user, password); 
関連する問題