您的位置:程序门 -> java -> web 开发



高手帮我看看代码 问题是注册表单中空字符也能注册


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


高手帮我看看代码 问题是注册表单中空字符也能注册
发表于:2007-05-22 10:01:23 楼主
index中有check函数
function   check(){
if(form1.username.value== " "){
alert( "请输入你的用户名 ");
form1.username.focus();
return   false;
}
判断了是否为空
check.jsp中检验
<%
date   date=new   date();
condb   con=new   condb();
string   username=request.getparameter( "username ");
string   rname=request.getparameter( "rname ");
string   password=request.getparameter( "password ");
string   email=request.getparameter( "email ");
string   address=request.getparameter( "address ");
string   photo=request.getparameter( "photo ");
string   pass=request.getparameter( "pass ");
string   question=request.getparameter( "question ");
string   str= "select   username   from   tb_user   where   username= ' "+username+ " ' ";
resultset   rs=con.EXECutequery(str);
if(rs.next()){
%>
<script   language= "javascript ">
alert( "此用户已经被占用请重新注册 ");
history.back();
</script>
<%
}else{
string   sql= "insert   into   tb_user(username,rname,userpass,email,address,photo,question,result,dattime)values( ' "+username+ " ', ' "+rname+ " ', ' "+password+ " ', ' "+email+ " ', ' "+address+ " ', ' "+photo+ " ', ' "+pass+ " ', ' "+question+ " ', ' "+date.tolocalestring()+ " ') ";
int   temp=con.EXECuteupdate(sql);
%>
<script   language= "javascript ">
alert( "注册成功 ");
window.location.href=( "../index.jsp ");
</script>
<%
}con.close();
%>
这样空的字符也能注册   请问下问题出在哪儿啊
发表于:2007-05-22 10:05:371楼 得分:0
form1.username.value
需要trim()后再和 " "进行比较
发表于:2007-05-22 10:13:552楼 得分:0
trim该怎么用啊   当我进入注册页面时   直接点提交就能注册成功了....
发表于:2007-05-22 11:01:593楼 得分:0
如何调用的?
发表于:2007-05-22 11:02:524楼 得分:0
index中就应该过滤到了,为空的问题不能留到check中去处理
发表于:2007-05-22 11:03:335楼 得分:0
比如
<script>
function   check(){
if(form1.aaa.value== " ")
alert( "错误 ");
return   false;
}
</script>
<form   id= "form1 "   onsubmit= "return   check(); ">
<input   type= "text "   name= "aaa "   />
<input   type= "submit "   value= "submit "/>
</form>
发表于:2007-05-22 11:25:036楼 得分:0
我是如楼上的代码所写的啊,在index中过滤掉   但是进入注册页面   什么都不写直接点提交也能注册成功,并且数据会传入到数据库中,不知道问题出在哪儿啊  
这是我的check函数
function   check(){
if(form1.username.value== " "){
alert( "请输入你的用户名 ");
form1.username.focus();
return   false;
}
发表于:2007-05-22 11:30:197楼 得分:0
form1.username.length==0
发表于:2007-05-22 11:32:438楼 得分:0
trim+length
length也不行   我的错了
发表于:2007-05-22 11:36:079楼 得分:0
trim也不行   你数据库处理下
发表于:2007-05-22 15:06:4210楼 得分:0
我的数据库所有字段定义的时候都是not   null的   可是还是出现这种情况   头都大了
发表于:2007-05-22 17:30:5611楼 得分:0
form1.username.replace(/(^\s*) ¦(\s*$)/g, " ").length==0
发表于:2007-05-23 11:19:2112楼 得分:0
你要在js中去空格的
我前面说的是jsp中
可以写个函数每给你个
//删除字符串两边空格的函数
        function   functrim(inputstring)
        {
                var   temp   =   " ";
                var   returnvalue   =   inputstring;
               
                while(returnvalue.charat(0)   ==   "   ")  
                {
                        returnvalue   =   returnvalue.substr(1);
                }
               
                while(returnvalue.charat(returnvalue.length-1)   ==   "   ")  
                {
                        returnvalue   =   returnvalue.substr(0,returnvalue.length-1);
                }
               
                return   returnvalue;
       
        }
发表于:2007-05-23 14:09:1413楼 得分:0
function   check(){
if(form1.username.value== " "){
alert( "请输入你的用户名 ");
form1.username.focus();
return   false;
}
大哥,不会吧,这里你还写value== " "呵呵应该是value==null
还有一个,在js中没有去空格的函数trim()要自己写的!
换成value==null就ok了
发表于:2007-05-23 14:45:4314楼 得分:0
首先要看你的表单是怎么写的
如果方法返回false表单仍旧提交了呢?
发表于:2007-05-23 15:57:1715楼 得分:0
form1.username.replace(/(^\s*) ¦(\s*$)/g, " ").length==0
发表于:2007-05-23 18:23:3216楼 得分:0
晕看不出来啊?就是那个你判断出了问题了啊?把 " "改成null就好了
发表于:2007-05-27 07:57:5717楼 得分:0
楼上的错了,从文本框中获取到的字符串是不会等于null的,文本框中获取的空字符串都是 " "值, " "字符串与null是不一样的.
发表于:2007-05-27 08:01:5718楼 得分:0
如果我没记错的话check()方法是javascript的内置方法,楼主把方法名改成checkname()试试,别忘了把表单中调用的方法名也改了.
发表于:2007-05-27 08:08:1619楼 得分:0
form1.username.length==0
发表于:2007-05-27 10:03:2220楼 得分:0
ghostadai()   (   )  
我服你了check()是js的内置方法,你从哪看来的啊?
不知道的话你不要误导别人好不好!
如果文本框内没有输入任何东西那这么它的值就是null
null和 " "空串是不一样的!
发表于:2007-05-27 14:20:0521楼 得分:0
我服你了check()是js的内置方法,你从哪看来的啊?
不知道的话你不要误导别人好不好!
===========================
我说过我记不清了,因为我以前碰到过一个问题就是因为方法命名与内置方法相同导致结果出错,所以提醒楼主注意一下是不是有这样的问题。

如果文本框内没有输入任何东西那这么它的值就是null
null和 " "空串是不一样的!
=========================
楼上的你试试把从文本框获取到的空值打出来试试,一定不是null。对 " "和null我做过太多实验了。
发表于:2007-05-27 21:19:5622楼 得分:0
value==null


快速检索

最新资讯
热门点击