gpt4 book ai didi

html - 在我的 cgi 代码中使用 strcmp() 对于 html 网页会导致服务器错误

转载 作者:行者123 更新时间:2023-11-30 01:21:13 26 4
gpt4 key购买 nike

我正在制作一个 html 网页,它使用 cgi 访问 mysql 中的表/数据库。我输入一个包含我的类(class)表信息的 .csv 文件,该 html 文件将其显示在通常的类(class)表中。

我的问题是我似乎无法在解析 cgi 中使用 strcmp,因为它会导致服务器错误。这是我使用 strcmp 的代码摘录。

void parse2(char *queu)
{
//---------------------------------------------------------------
char *saveptr[1024];
char *subtoken;
char *Subject;
char *Day;
char *Start;
char *End;
char *Room;
char *Teacher;
int check = 1;
//---------------------------------------------------------------
subtoken = strtok_r(queu, ",", saveptr);

check = strcmp(subtoken, "\0");
printf("%d<br>", check);

if(check == 0){
printf("Error!");
} else {
Subject = subtoken;
Day = strtok_r(NULL, ",", saveptr);
Start = strtok_r(NULL, ",", saveptr);
End = strtok_r(NULL, ",", saveptr);
Room = strtok_r(NULL, ",", saveptr);
Teacher = strtok_r(NULL, ",", saveptr);

printf("%s\n<br/>%s\n<br/>%s\n<br/>%s\n<br/>%s\n<br/>%s\n", Subject, Day, Start, End, Room, Teacher);

//inputsql(Subject, Day, Start, End, Room, Teacher);
}
//---------------------------------------------------------------
}

请注意,我已经测试了这段代码,并且无需我调用 strcmp() 即可正常工作。 。

我正在使用strcmp()防止使用 POST 检索信息后生成一行不需要的字符方法,从被输入到我的数据库中。

从上面的代码可以看到,我使用了strtok()解析信息行。由于不需要的字符行不包含逗号(这是我的分隔符),因此它应该返回 NULL 值。正确吗?

谁能帮帮我吗?我欢迎建议使用不同的方式来解决我选择使用 strcmp() 解决的问题。 .

最佳答案

我认为你应该检查subtoken == NULL,而不是strcmp(subtoken, "\0") == 0

"\0" 是一个包含一个 NUL 字节,然后是另一个 NUL(终止符)的字符串,因此标准库的字符串函数只会看到一个空字符串。这与 NULL 指针(即值为零的指针)不同。

来自STRTOK(3) :

   Each call to strtok() returns a pointer to a null-terminated string
containing the next token. This string does not include the
delimiting byte. If no more tokens are found, strtok() returns NULL.

关于html - 在我的 cgi 代码中使用 strcmp() 对于 html 网页会导致服务器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18511995/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com