我的这个提交表单的方法对吗?(请帮我看看)(60分)

  • 主题发起人 主题发起人 Robot5
  • 开始时间 开始时间
R

Robot5

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大侠!小弟当学Delphi不久,想做个聊天室的发言窗口,可不知道如何
提交表单,用post提交好象不行!聊天室的发言窗口代码如下:
=================================================================
<form method=POST action='http://chat2.lz.gs.cninfo.net/cgi-bin/feitian/chat.cgi?job=says&username=聊神&userid1=7037037&userid2=49866803821&userid3=0T39XeyY/Dj6&userid4=0e8KWr08TS&point=88888888&usersex=Boy' target='message' onsubmit='return(checksays());'>
<input type=hidden name='says' value=''>
<input type=hidden name='filteruser' value=''>
<input type=checkbox name='towhoway' value='private'>私谈
<input type=text name='saystemp' size=40 maxlength=110>
对象:<select name='towho'>
<option value=''>全部
<option value='晓坤'>晓坤
</select>
<input type=submit value='发言'>
<input type=reset value='清除'><br>
<input type=checkbox name='autocls' value='yes' checked>清除
颜色:<select name='addwordcolor'>
<option style="color: #000000" value="000000">绝对黑色</option>
<option style="color: #ee01ff" value="ee01ff">红粉佳人</option>
<option style="color: #3388aa" value="3388aa">我不知道</option>
</select>
表情:<select name='addsays'>
<option value=''>无表情
<option value="顾作沉思状">沉思
<option value="一付无辜的样子">无辜
<option value="不舒服的说">不适
</select>
图案:<select name='addsign'>
<option value=''>不贴图
<option value="<">磁片
<option value="|">黑花
<option value="]">舵
<option value="{">白花
<option value="'">腊烛
<option value=":">电脑</select>
</form>
=================================================================
我想用Delphi使现上面的功能!是否可以用TNMHTTP控件实现?
如何实现?我做了个程序但是好象不能提交表单!!!请问如何实现?
我的程序代码如下!
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
procedure TForm1.Button1Click(Sender: TObject);
Var all:string;
begin
all:='&says=&filteruser=&towhoway=&saystemp='+FYEdit.Text;//这里是提交表单内容
NMHTTP1.InputFileMode:=False;
NMHTTP1.OutputFileMode:=False;
NMHTTP1.ReportLevel:=Status_Basic;
if ProxyCheckBox.Checked then
begin
NMHTTP1.Proxy:=ProxyEdit.Text;
NMHTTP1.ProxyPort:=StrToInt(ProxyPortEdit.Text);
end;
NMHTTP1.Post(ChatUrlBox1.Text,all);//用post方法提交
Memo1.Text:=NMHTTP1.Body;
end;
 
all 中好象还不够东西吧
all中第一个就是“&”号?
 
Pipi:你好!我试过了,好象还是不行!不知有没有别的办法??
 
请大家说详细点!谢谢!
 
注意post是立即返回返回的(不等成功)
要写OnSuccess事件等待成功。
注意当Cmd为CmdPOST才是
 
我要实现象聊天室发言窗口一样的功能!(只要发出就OK!不用接收!)
可是我不知用什么办法实现?
 
各位大侠请帮我看看!!我做了个程序来实现这个功能,可是每次提交后
Body反回的是个空值!在聊天室中也看不到我所说的话!请高手指点!!!
程序如下!!
//这个程序想完成的功能同聊天室的发言窗口一样
//下面这段是提交表单
procedure TForm1.Button1Click(Sender: TObject);
var url,tt:string;
begin
url:='http://chat.lz.gs.cninfo.net/feitian/chat.cgi';
tt:='?job=says&username=酷哥userid1=5555556&userid2=31200024961&use
rid3=AeTD6CJLwPfI&userid4=A4aygmiw&point=20000&usersex=Boy&target=mess
age&saystemp=大家好&';//saystemp是传递所说出去的言字的
NMHttp1.InputFileMode:=False;
NMHttp1.OutputFileMode:=False;
NMHttp1.ReportLevel:=Status_Basic;
NMHttp1.Post(url,tt);
Memo1.Text:=NMHttp1.Body;
end;
//下面是如果提交成功反回'Post Success'
procedure TForm1.NMHTTP1Success(Cmd: CmdType);
begin
Case Cmd of
CmdPost:StatusBar1.SimpleText:='Post Success';
end;
end;
//在同一界面上还有一个WebBrowser控件,其作用是看表单是否提交!

 
hehe , I watch!
 
干嘛tt的最前面又加多一个问号?
 
Pipi,
你的意思是把tt中的"?"号去掉?
tt:='job=says&username=酷哥userid1........'
象这样吗?好象还在发不到聊天室去!!!
 
all:='&says=&filteruser=&towhoway=&saystemp='+FYEdit.Text;

首先需要确认一下,该聊天室有无确认用户的功能,否则没有用户身份,
聊天室程序将不会处理这些发言。
 
alum 你好!
聊天室需要确认身份,我在程序中以加入这部份!如下:

job=says&username=酷哥userid1=5555556&userid2=31200024961&userid3=AeTD6CJLwPfI&userid4=A4aygmiw&point=20000&usersex=Boy

上面这段就是聊天室确认身份用的(是不是很长?室主太小心了!呵呵)
 
话没说完:)

有时候身份验证通过cookie 或是 session来。。所以么。。。不能直接
用字串验证身份。。

job=says&username=酷哥userid1=5555556....
^^这里是不是缺个& ?
 
我以前也试过这个问韪。你把all:='&says=&filteruser=&towhoway=&saystemp='+FYEdit.Text;
改成all:='?says=&filteruser=&towhoway=&saystemp='+FYEdit.Text;
然后NMHTTP1.Post(ChatUrlBox1.Text,all);改为
NMHTTP1.Post(ChatUrlBox1.Text+'?'all,'');试一试吧!应该可以的。
 
如果身份验证通过cookie 或是 session ,应该怎样Post???
 
nmhttp不会自己设cookie,你得自己来(当然,好处是可写多用户程序)
另外,除了cookie,头信息还得加点东西。
 
nmhttp.post
不能提交 form里面的input的值的吧?
nmhttp.post('aspname.asp?name=value')只能用 request.querystring("name")
得到啊!
要是知道http post传出到服务器的格式就可以解决问题了
我们可以用nmhttp.write(..........)
 
后退
顶部