| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1430 人关注过本帖
标题:[求助]请问如何自动生成用户名??
只看楼主 加入收藏
tellmeok
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2006-9-1
收藏
 问题点数:0 回复次数:15 
[求助]请问如何自动生成用户名??

问题是这样的:我从网上下载的聊天室源码,经多次修改后终于成功。但它是要求用户登陆的,现在我想

修改成像一般聊天室做的那样,用户一进来不用登陆即可自动给一个用户名如"游客:20300003",不知道如何

修改实现。网上一个都搜不到啊.(注:我用的是asp ,ACCESS,空间不支持global.asp,以及session,application)
我的疑问是:要达到这样的目的,要不要写一个if判断,要不要写一个隐藏表单,如<input name="name",type="HIDDEN",Value=<%request(name)%>>之类?
下面是我的原代码,请高手告诉我如何修改后,插到我注释的下面“可能的接口处”。谢谢。

----------------------------
<%@codepage=936%>
<%Response.Buffer=true%>
<body bgcolor="#F8E17A">
<%if Request("name")="" then%>
<%addr=Request("REMOTE_ADDR")%>
<form method="POST" action="chatadd1.asp">
<p><input type="hidden" name="IP" value="<%

=addr%>"></p>

#####可能的接口处1########
<p>昵称:<input type="text" name="name"

size="15">
密码:<input type="password" name="pass"

size="15">
性别:<select name="D4" size="1" style="color:

rgb(0,0,128)">
<option value="先生">先生</option>
<option value="女士">女士</option>
</select>
<input type="submit" value="发送" name="B1">
<input type="reset" value="复原" name="B2"></p>
</form>
<%=Request("a")%>
<%else%>
<%
B1=Request("B1")
If B1="发送" Then
If Request("name")="" or Request("pass")=""

Then
a="名字或密码不能为空!<br>"
Response.Redirect "chatadd1.asp?a=" & a & " "
end if

##########可能的接口处2#########
dim Conn,sConnection
set Conn=Server.CreateObject

("ADODB.Connection")
sConnection =

"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data

Source=C:\sites\content\t\e\l\tellerx\db\chat.m

db;" & _
"Persist Security Info=False"
'Conn.Open(sConnection)
Conn.Open sConnection

sql="SELECT * FROM 用户表 WHERE 姓名='" &

Request("name") & "'"

Set Rs=conn.Execute(sql)
If Rs.Bof OR Rs.Eof Then
'sz="'"&Request("IP")&_"','"&Request("name")

&_"','"&Request("D4")&_"','"&Request("pass")

&"'"
sz="'"&Request("IP")&"','"&Request("name")

&"','"&Request("D4")&"','"&Request("pass")&"'"
into_db = "INSERT INTO 用户表 (IP, 姓名, 性别,

密码) VALUES(" &sz & ")"

Conn.Execute(into_db)
Else
If Request("pass")<>Rs("密码") Then
a="这个名字已经被别人使用,或者你输入的口令不

对!<br>"
Response.Redirect "chatadd1.asp?a=" & a & " "
end if
end if
#########可能的接口处3##############重要
time1=now
'Set Conn=Server.CreateObject

("ADODB.Connection")
'Connstr="DBQ="+server.mappath

("tellerx/db/chat.mdb")+";DRIVER={Microsoft

Access Driver (*.mdb)};"
'Conn.Open connstr

set Conn=Server.CreateObject

("ADODB.Connection")
sConn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data

Source=C:\sites\content\t\e\l\tellerx\db\chat.m

db;" & _
"Persist Security Info=False"
Conn.Open sConn

sql="SELECT * FROM 在线用户表 WHERE 姓名='" &

Request("name") & "'"
Set Rs=conn.Execute(sql)
If Rs.Bof OR Rs.Eof Then
'sz = "'" & Request("name") &_"', '"& Request

("D4") &_"', '"& time1 & "'"
sz = "'" & Request("name") &"', '"& Request

("D4") &"', '"&time1&"'"
into_db="INSERT INTO 在线用户表 (姓名,性别,登录

时间) VALUES(" &sz & ")"
Conn.Execute(into_db)

name=Request("name")
sex=Request("D4")
#########至此应该接口完毕############
ming="※管理员宣布…"
sz2= "<font color=red>"&"热烈欢迎" & "</font>

<font color=#006600>"&name & sex &"

</font>"&"<font color=red>"&"的光临"

into_db2 = "INSERT INTO 聊天表 ( 姓名,说话 )

VALUES('" & ming & "','" & sz2 & "')"
Conn.Execute(into_db2)

end if
end if%>

搜索更多相关主题的帖子: 用户名 自动 
2006-09-01 21:44
tellmeok
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2006-9-1
收藏
得分:0 
怎么没有一个人回答啊!!!!是不屑于回答还是回答不了?给一个思路也可以嘛.谢谢能帮我的朋友.我可是外行啊,现在我正在自己探索,可以给一个编号,但不知多线程能否自动加1.如我的机器显示是"1000001",其他不知能否是10000002,1000003.....
只是离线处理不了,老是"进入"而不是离开.........郁闷
2006-09-03 17:17
google
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:3419
专家分:23
注 册:2005-11-1
收藏
得分:0 
用一个RND随机函数做应该可以吧

祝天下所有母亲幸福安康!~
2006-09-03 19:23
tellmeok
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2006-9-1
收藏
得分:0 
我用的是自动加1,而不是随机,如第一个用户为100000001,第二个进来的为100000002.......
2006-09-03 19:45
gdk2006
Rank: 4
等 级:业余侠客
威 望:8
帖 子:928
专家分:270
注 册:2006-7-2
收藏
得分:0 
那你可以截取now()
这里面的数字来做!

程序员的悲哀如何找女朋友?
追女解决方案百度“让她着迷”!
2006-09-03 20:31
google
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:3419
专家分:23
注 册:2005-11-1
收藏
得分:0 
在不支持SESSION与APPLICATION的服务器中,单靠数据库是很难做到判断谁在线的
可以在每当有用户发言的时候或者每当有用户登陆的时候做数据库搜索,搜索所有用户发言的最后时期,如果这个时间和现在系统的时间做对比的话,如果大于20分钟,则删除这个人的信息和他的发言,并显示他已经离线

祝天下所有母亲幸福安康!~
2006-09-03 20:32
google
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:3419
专家分:23
注 册:2005-11-1
收藏
得分:0 
不过上面的方法要用到欠套查询,对服务器来说工作量不小啊

祝天下所有母亲幸福安康!~
2006-09-03 20:46
tellmeok
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2006-9-1
收藏
得分:0 
谢谢各位,很有启发.尚须努力.
2006-09-03 21:48
tellmeok
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2006-9-1
收藏
得分:0 
以下是引用google在2006-9-3 20:32:36的发言:
在不支持SESSION与APPLICATION的服务器中,单靠数据库是很难做到判断谁在线的
可以在每当有用户发言的时候或者每当有用户登陆的时候做数据库搜索,搜索所有用户发言的最后时期,如果这个时间和现在系统的时间做对比的话,如果大于20分钟,则删除这个人的信息和他的发言,并显示他已经离线

我原来需要用户名和密码的程序中,有一个"离开聊天室"按钮,可以处理用户离开;但改用无用户名登陆(即游客方式)后,原语句未动,但当按下此按钮后,却转到"XXX进入聊天室"的语句(应执行"XXX离开聊天室",而且程序中是针对此有此语句的),莫名其妙.........

2006-09-03 23:51
google
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:22
帖 子:3419
专家分:23
注 册:2005-11-1
收藏
得分:0 
以下是引用tellmeok在2006-9-3 23:51:02的发言:

有一个"离开聊天室"按钮,可以处理用户离开

80%用户不是按照正常程序离开的,呵呵
这点不能不考虑


祝天下所有母亲幸福安康!~
2006-09-04 00:16
快速回复:[求助]请问如何自动生成用户名??
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027313 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved