我的表单应该如何提交(我是初学者) (30分)

  • 主题发起人 主题发起人 movodo
  • 开始时间 开始时间
M

movodo

Unregistered / Unconfirmed
GUEST, unregistred user!
表单如下:
<form name='authform' action='http://cgi-bin/authcgi_login' method='post' onsubmit='return check_input();'>

<script language='JavaScript' >
function check_input() {
with (document.authform) {
if ( uid.value=="" || uid.value.charAt(0) == " " ) {
alert ("Plase input User ID !");
uid.focus();
return false;
}
if ( upwd.value=="" || upwd.value.charAt(0) == " " ) {
alert ("Plase input User Password !");
upwd.focus();
return false;
}

//submit();
}
return true;
}
</script>
<center>
<input type='hidden' name='uact' value='login'>
<table width=80%>
<tr>
<td align=right>User ID :</td>
<td><input type='text' name='uid' size='20' value=''></td>
</tr>
<tr>
<td align=right>User Password :</td>
<td><input type='password' name='upwd' size='20' value=''></td>
</tr>
<tr>
<td colspan=2 align=center><br>
<input type='submit' name='go' value='Login' >
</td>
</tr>
</table>
</center>
</form><br><br><br>


我想要在程序中实现提交 uid,upwd,而不用打开网页.post怎么用呢?
 
怎么没有人回答呀?????????
 
大概是这样的。
TIdHTTP.Post('http://.../cgi-bin/authcgi_login', 'uid=xxxx&upwd=yyyy');
 
但是IDHTTP的post 只有下面两种形式:
procedure Post(URL: string; const Source: TStrings; const AResponseContent: TStream); overload;
procedure Post(URL: string; const Source: TStream; const AResponseContent: TStream); overload;

我想补充说明一下,我是通过网关上网,我必须输入上网卡的卡号和密码,然后按时计费,有DNS服务器。
上面那个表单就是登陆界面,我就是想要用程序实现登陆。我的post 是这样写的(用INDY控件):
var
s: Tstringstream;
.....
....
s := TStringStream.Create('');
idhttp1.post('http://218.104.109.2/cgi-bin/authcgi_login',memo1.Lines,s);

在memo1中事先存入 uid=xxxx&upwd=yyyy


我总是不能成功实现登陆。请问应该怎么作,是不是我的方法不对?请指教。
 
action='http:///cgi-bin/authcgi_login'
改成
action='http:///cgi-bin/authcgi_login.asp'
呵,要把文件名带上吧
 
的确是
action='http://cgi-bin/authcgi_login',没有错呀。
 
action='http://cgi-bin/authcgi_login'
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~晕,ACTION怎么会没有文件呢?authcgi_login是文件吗?
加上后缀!
 
若用
idhttp1.post('http://218.104.109.2/cgi-bin/authcgi_login.asp',memo1.Lines,s);

产生 :404 not found

再请指教。谢谢。
 
authcgi_login.asp有没有这个文件?
其次这个文件的内容我不知道,我不能确定是哪个地方出错!
 
表单上是没有的,其实这种无后缀名的提交方式,我也见过,只是一时找不到原例了.
这个问题会不会与网络连接有关系呢?在表单提交以前,我是不能访问internet的.
 
服务器有没有回传什么内容?
内容里有没有cookie?
 
我接收responsetext返回的是 200 OK,但是我提交错误密码,仍然返回200 OK,


如果加后缀.asp则没有任何信息。而且,在程序运行的时候就已经产生了这个错误, 404 not found,是以对话框的形式出现的。
我真是不明白呀!
 
如果是ASP或ASPX我是没见过这种提交方式!
 
告诉你一个绝对解决问题的答案

idHTTP1.Request.ContentType := 'application/x-www-form-urlencoded';

把这个放在前面post前面。
 
to netnice:
你的我已经试过,还是没有用。不过想要问你一下,你这句的作用是什么?

会不会是这个提交的过程用了其他的手段,所以使POST失败了呢。我真的弄不明白了。

请知道的快回答呀,要不就发分了。
 
多人接受答案了。
 
后退
顶部