欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

apache+cgi如何实现用户登录(cgi用c语言编写)

更新时间: 2014-01-05 02:04:08 责任编辑: Author_N1

 

Apache+cgi怎么实现用户登录(CGI用C语言编写)
前台页面:
<html>
<head>
<title>RFID_Middleware</title>
</head>
<body style="background-image:url(cgi_2.jpg);background-repeat:no-

repeat;background-accachment:scroll;">
<center><H1>RFID中间件登录系统</H1></center>
<br>
<br>
<br>
<table border=1 align=center cellspacing=3 cellpadding=10>
<tr>
<td>
<from method=post name="form1" action=E:\CGI\cgi-bin\Hello.cgi>
<center>
用户名:<input type="text" name="username" ><br><br>
密&nbsp;&nbsp码:<input type="text" name="password" ><br><br>
<input type="submit" value="登录" style="width:99px">
</center>
</from>
</td>
</tr>
</table>
</body>
</html>

后台CGI处理程序:
// Login.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

// Login.cpp : 定义控制台应用程序的入口点。
//

int _tmain(int argc, _TCHAR* argv[])
{
char *str_len=NULL;//定义字符型指针
int len=0;
char buf[100]="";
char user[20]="";
char passwd[20]="";
printf("%s\r\n\r\n","Content-Type:text/html");//CGI标准头
printf("<html>\n<TITLE>CGI3:登录结果</TITLE><br>\n");
str_len = getenv("CONTENT_LENGTH");//获取输入字符长度
//如果str_len没有赋值成功,如果str_len有多过数值,如果len大于80则打印出错
if( (str_len==NULL)||(sscanf(str_len, "%d", &len)!=1) || (len>80) )
printf("sorry!error!");
fgets(buf, len+1, stdin);
//从标准输入中读取len个字符
sscanf(buf, "name=%[^&]&password=%s", user,passwd);//格式化输入获得登陆名和密码
if( (strncmp(user,"11",2)==0) && (strncmp(passwd, "111111", 6)==0) )
printf("<body><h1>Welcome! 登录成功!</h1></body></html>");
else
printf("<body><h1>Sorry! 用户名或密码错误!</h1></body></html>\n");
return 0;
}

点击登录按钮提交表单后,没有反应。
是不是要在Apcahe里输入什么内容呀





--参考方法--
你的action地址不对吧?
<from method=post name="form1" action=E:\CGI\cgi-bin\Hello.cgi>

这里错了。

你先检查请求有没有传达到apache服务器那边。cgi是否已经运行了。 然后再检查其他问题。
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:04:08
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/5268/
本文WWW.DOC100.NET DOC100.NET版权所有。