用户注册时,输入的用户名为空 网站注册时用户名和Email为必填项,可是昨天竟然发现用户名和Email都为空的用户名,由于用户注册时把数据插入了几张表,这几张表的用户名都为空,什么原因导致的呢,也过滤空格了! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 第一:你代码string userName=this.txtName.text.Tirm().ToString();是否这样写了(之前要判断不必须输入用户名)。第二:黑客通过sql注入,然后添加进去的第三:没注册添加的,就是wuyqll所说的, function JudgeUserCode(va) { va=va.Trim(); var words=$("#filterword").val(); $("#usercodeimg").css('display','none'); var array=words.split(",") ; var index=0; for(var i=0;i<array.length;i++) { if(va==array[i]){ index=1; } } if(va=='') { $("#usercodetip").css("display","inline-block"); $("#usercodetip").html('请输入用户名!'); return false; } else if(va.length<3||va.length>15) { $("#usercodetip").css("display","inline-block"); $("#usercodetip").html('用户名必须在3到15个字符之间!'); return false; } else if(index==1) { $("#usercodetip").css("display","inline-block"); $("#usercodetip").html('该用户名不允许注册!'); return false; } else if(isDigit(va)) { $("#usercodetip").css("display","inline-block"); $("#usercodetip").html('用户名不能是纯数字!'); return false; } else if(!VerifyUserCode(va)) { $("#usercodetip").css("display","inline-block"); $("#usercodetip").html('用户名只能有字母,数字和下划线组成,且第一个字符必须是字母,最后一个字符不能是下划线'); return false; } } }这个是js判断用户名不能为空及其它的一些验证!中间调用的方法就不贴了, 我无论怎么点击,js这关都过不了,服务器端的事件就更执行不过去,不能重现这种情况,我们有通过Yahoo,Google等第三方登录,但是都有标志,注册用户名为空的user是通过注册,添加进数据的! 全角的空格用.trim()能过滤掉吗? 验证用户名为空 必须在 服务器端进行验证~浏览器端的 JS验证 是为了 提高UI体验 和 减少服务器压力 也有可能呗 sql注入做防sql注入的 出来了吗? sql注入的可能性很小啦,有用参数化!服务器端没有做验证,用户用很有可能用post传数据注册的! ajax 返回 输入的用户名如果存在 相同的 就 提示已经注册是不是??? 真有意思。javascript验证就能“算数”了?只有后台验证代码才是“说话算数”的。 是这样的。不仅仅禁用,有时候你的程序员更新某一个版本时js自己也会出现bug,此时错误的数据仍然会提交到服务器。 if(va=='')如果输入空格的话会不会为true???试试if($.trim(va)=="")吧不清楚。在新增的时候可以考虑在代码或者存储过程中加入判断虽然会影响性能。但是注册量不是很大的话应该没什么问题吧 现在前台用js判断去掉空格,然后再后台调用注册方法之前再判断一下,就行了document.getElementById("id").value.replace(/(^\s*)|(\s*$)/g,"")=="" [size=10jpx]其实在判断的时候,不仅仅前台判断,前台判断只是给用户一个友好的提示,在接交的时候,后台同样也需要再做一次判断,这样才能保证数据的安全性[/size] 请教,如何在excel表格中添加定义名称(aspose.cells)并制定定义范围 asp进度条怎么做? 新闻排版代码 [急]小女子求救 根据页面所在栏目动态改变用户控件属性改变缓存内容 数据相加的代码 ASP.NET中超链接 路径问题 一个简单的问题 vs2005如何使用水晶报表 xsl文件样取出CDATA中的内容?xsl中要加入什么代码? aspnetpager分页数据库为access access数据库多表查询 谁用过阿里旺旺网页版
{
va=va.Trim();
var words=$("#filterword").val();
$("#usercodeimg").css('display','none');
var array=words.split(",") ;
var index=0;
for(var i=0;i<array.length;i++)
{
if(va==array[i]){
index=1; }
}
if(va=='')
{
$("#usercodetip").css("display","inline-block");
$("#usercodetip").html('请输入用户名!');
return false;
}
else if(va.length<3||va.length>15)
{
$("#usercodetip").css("display","inline-block");
$("#usercodetip").html('用户名必须在3到15个字符之间!');
return false;
}
else if(index==1)
{
$("#usercodetip").css("display","inline-block");
$("#usercodetip").html('该用户名不允许注册!');
return false;
}
else if(isDigit(va))
{
$("#usercodetip").css("display","inline-block");
$("#usercodetip").html('用户名不能是纯数字!');
return false;
}
else if(!VerifyUserCode(va))
{
$("#usercodetip").css("display","inline-block");
$("#usercodetip").html('用户名只能有字母,数字和下划线组成,且第一个字符必须是字母,最后一个字符不能是下划线');
return false;
}
}
}
这个是js判断用户名不能为空及其它的一些验证!
中间调用的方法就不贴了,
sql注入的可能性很小啦,有用参数化!
服务器端没有做验证,用户用很有可能用post传数据注册的!
如果存在 相同的 就 提示已经注册是不是???
真有意思。javascript验证就能“算数”了?只有后台验证代码才是“说话算数”的。
是这样的。不仅仅禁用,有时候你的程序员更新某一个版本时js自己也会出现bug,此时错误的数据仍然会提交到服务器。
如果输入空格的话会不会为true???
试试if($.trim(va)=="")吧
不清楚。在新增的时候可以考虑在代码或者存储过程中加入判断
虽然会影响性能。但是注册量不是很大的话应该没什么问题吧
document.getElementById("id").value.replace(/(^\s*)|(\s*$)/g,"")==""