Мы разрабатываем openwrt.
Веб-сервер использует lighttpd.
CGI был разработан на языке Си.
В html-форме действие устанавливается как cgi в теге формы, и выполняется cgi, разработанный в C.
Я поставил скрипт в cgi.
int main(int argc, char *argv[]){
char *form, *inStr;
long inLen;
printf("Content-type: text/html%c%c\n\n",10,10);
printf("<HTML>\n");
printf("<head>\n");
inLen = strtol(getenv("CONTENT_LENGTH"), NULL, 10) + 1;
inStr = malloc(inLen);
memset(inStr, 0, inLen);
fgets(inStr, inLen+1, stdin);
form = web_get("page", inStr, 0);
if (!strcmp(form, "reboot")) {
set_reboot(inStr);
printf("scriptype='text/javascript'>document.location.href='../index.shtml';/script>\n");
}else if (!strcmp(form,"lan"))
{
set_lan(inStr);
}
free(inStr);
printf("</head>\n");
printf("</HTML>");
return 0;
}
После запуска cgi в Chrome скрипт не запустится.
Это то, что я вижу на веб-странице.
net.bridge.bridge-nf-call-custom = 0
Ошибка при выполнении команды
Хорошо
Хорошо
Хорошо
Тип контента: текстовый / простой; кодировка = UTF-8
<HTML>
<head>
<script
type='text/javascript'>document.location.href='../wireless_setting.shtml';
</script>
</head>
</HTML>
Я не захожу на страницу, которую хочу.