C语言cgi接口如何实现对网页登录的控制

zl 2012-04-12 03:41:50
小弟做用c语言写了一个网页登录注册的boa服务器的cgi接口,注册用户的信息我保存在一个txt文档中,当登录的用户和文档中已有的某个用户信息相符,便登录成功,跳转到主页,不成功就重新返回到登录页面。
但是现在有个问题,我发现即使不用登录或登录不成功,直接输入主页的网址,就可以进入网页,这就使得做的登录注册没有意义了。
哪位知道如何控制,使得登录不成功和不登陆的情况下,输入主页的网址不起作用,就像咱们平时登录邮箱一样。

...全文
1112 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
duyinxia123 2012-07-19
  • 打赏
  • 举报
回复
不知道楼主问题最后怎么解决的呀,我现在也在用C语言编写CGI,但是表单的内容总是提交不了,不知道什么原因呀,求助
zl 2012-04-23
  • 打赏
  • 举报
回复
虽然问题没有解决,但还是谢谢大家了,给分了
kszsa 2012-04-21
  • 打赏
  • 举报
回复
不如移植login
zl 2012-04-15
  • 打赏
  • 举报
回复
502的错误我以前解决过,也改过boa的源码,大哥,你确定这样做行吗?我这两天搜资料又看到了一些cookie的方法,说是可以结局这个问题,我现在还是没有头绪。。[Quote=引用 7 楼 的回复:]

引用 6 楼 的回复:

这个我刚试了,不行啊,有
502 Bad Gateway
The CGI was not CGI/1.1 compliant
这样的错误
引用 5 楼 的回复:

那就把main.html放在cgi-bin之类的目录下面,只能通过cgi访问

你这是另一个问题了,见 http://topic.csdn.net/t/20061120/13/5171……
[/Quote]
zl 2012-04-15
  • 打赏
  • 举报
回复
我刚搜了一下,cgi目录下好像不能放html文件吧
[Quote=引用 7 楼 的回复:]

引用 6 楼 的回复:

这个我刚试了,不行啊,有
502 Bad Gateway
The CGI was not CGI/1.1 compliant
这样的错误
引用 5 楼 的回复:

那就把main.html放在cgi-bin之类的目录下面,只能通过cgi访问

你这是另一个问题了,见 http://topic.csdn.net/t/20061120/13/5171……
[/Quote]
zl 2012-04-15
  • 打赏
  • 举报
回复
502的错误我以前解决过,也改过boa的源码,大哥,你确定这样做行吗?我这两天搜资料又看到了一些cookie的方法,说是可以结局这个问题,我现在还是没有头绪。。

[Quote=引用 7 楼 的回复:]

引用 6 楼 的回复:

这个我刚试了,不行啊,有
502 Bad Gateway
The CGI was not CGI/1.1 compliant
这样的错误
引用 5 楼 的回复:

那就把main.html放在cgi-bin之类的目录下面,只能通过cgi访问

你这是另一个问题了,见 http://topic.csdn.net/t/20061120/13/5171……
[/Quote]
daviddb7 2012-04-13
  • 打赏
  • 举报
回复
那就把main.html放在cgi-bin之类的目录下面,只能通过cgi访问
daviddb7 2012-04-13
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

这个我刚试了,不行啊,有
502 Bad Gateway
The CGI was not CGI/1.1 compliant
这样的错误
引用 5 楼 的回复:

那就把main.html放在cgi-bin之类的目录下面,只能通过cgi访问
[/Quote]
你这是另一个问题了,见 http://topic.csdn.net/t/20061120/13/5171006.html

既然用了cgi,我建议除了第一个界面,其它的都放在cgi-bin下面。
zl 2012-04-13
  • 打赏
  • 举报
回复
这个我刚试了,不行啊,有
502 Bad Gateway
The CGI was not CGI/1.1 compliant
这样的错误
[Quote=引用 5 楼 的回复:]

那就把main.html放在cgi-bin之类的目录下面,只能通过cgi访问
[/Quote]
zl 2012-04-12
  • 打赏
  • 举报
回复
不好意思,没有啊,这是我写的cgi跳转的那部分
int main()
{
printf("Content-type:text/html\n\n");
char* userName = NULL;
char* userPassword = NULL;
char* form1 = NULL;
char* form2 = NULL;
char* next = NULL;
char* data;
int flag;
data = input();
//printf("%s \n\n",data);
next = data;
if(next == NULL)
{
return -1;
}
else
{
form1 = strsep(&next,"=");
userName = strsep(&next,"&");
form2 = strsep(&next,"=");
userPassword = strsep(&next,"&");
;
}
//char *usrname ="heyrobby";
//char *passwd ="zl8237516";

if((flag=login(userName,userPassword)==0))
{

printf("<html>\n");
printf("<head><title>login success</title></head>\n");
printf("<body><br>\n");
printf("<h2> please tip this to jump homepage,or it will jump to homepage in five seconeds later</h2>\n");
printf("<hr><p>\n");
printf("<meta http-equiv=\"Refresh\" content=\"5;URL=http://172.20.11.116/home.htm\">\n");
printf("<a href=\"http://172.20.11.116/home.htm\">snn</a>\n");
printf("</body>\n");
printf("</html>\n");

}
else
{
printf("<html>\n");
printf("<head><title>login error</title></head>\n");
printf("<body><br>\n");
printf("<h2> please press this to try again,or it will jump to loginpage in five seconeds later</h2>\n");
printf("<hr><p>\n");
printf("<meta http-equiv=\"Refresh\" content=\"5;URL=http://172.20.11.116/index.html\">\n");
printf("<a href=\"http://172.20.11.116/index.html\">snn</a>\n");
printf("</body>\n");
printf("</html>\n");
}
free(Data);
return 0;
}
[Quote=引用 3 楼 的回复:]

楼主使用过其他cgi吗? 比如 asp php
它们提供了session,将访问站点的“全局值”保存在session中,以便所以页面的调用。

比如楼主 你登录成功之后,可以设置一个全局值,
那么访问其他页面,如果没发现这个全局值,那么就返回登录页面,要求登录,
发现了这个值,才能正常操作。
[/Quote]
001007009 2012-04-12
  • 打赏
  • 举报
回复
楼主使用过其他cgi吗? 比如 asp php
它们提供了session,将访问站点的“全局值”保存在session中,以便所以页面的调用。

比如楼主 你登录成功之后,可以设置一个全局值,
那么访问其他页面,如果没发现这个全局值,那么就返回登录页面,要求登录,
发现了这个值,才能正常操作。
zl 2012-04-12
  • 打赏
  • 举报
回复
你没明白的我的意思啊,问题是这样的,比如咱们登录邮箱的网页地址是172.20.11.11\index.html,登录成功后网页变为172.20.11.11\mail.html,平时你不通过登录验证,而直接输入172.20.11.11\mail.html这个网址你是进不去邮箱的,但是我现在这部分控制不知道怎么做,输入这个地址就可以直接登录到邮箱,这就使得登录注册失去意义了[Quote=引用 1 楼 的回复:]

楼主cgi中验证一下,没输入信息就返回到登录界面。
[/Quote]
001007009 2012-04-12
  • 打赏
  • 举报
回复
楼主cgi中验证一下,没输入信息就返回到登录界面。

2,203

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 CGI
社区管理员
  • CGI社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧