私は以下のhtmlコードを持っています:
<html>
<head><title>OPTIONS</title></head>
<body>
<p>Choose schedule to generate:</p>
<form action='cgi-bin/mp1b.cgi'>
<input type=checkbox name='tfield' value=on />Teacher<input type=text name=teacher value=""/><br>
<input type=checkbox name='sfield' value=on />Subject<input type=text name=subject value=""/><br>
<input type=checkbox name='rfield' value=on />Room<input type=text name=room value=""/><br>
<input type=submit value="Generate Schedule"/>
</form>
</body>
</html>
問題は、これらのテキスト スペースの 1 つを入力し、C CGI スクリプトを使用してそれを解析すると、正しい出力が得られることです。しかし、チェックボックスの1つをチェックするたびに、それに対応するテキストスペースに入力された文字列が削除されるようです. たとえばname='tfield'
、文字列をチェックして text に書き込むとname=teacher
、 の出力が得られませんname=teacher
。これで何が問題になる可能性がありますか?ありがとう!
編集:以下はCGIコードです
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(void)
{
char *data;
printf("Content-type:text/html\n\n");
printf("<html><body>");
data = getenv("QUERY_STRING");
char teacher[1024] = "";
char subject[1024] = "";
char room[1024] = "";
sscanf(data,"teacher=%[^&]&subject=%[^&]&room=%s",teacher,subject,room);
puts(teacher);
puts(subject);
puts(room);
printf("</body></html>");
return 0;
}