用PHP写用户名验证..注意我的正则表达式用法是否正确

if($_POST['submit']=='同意以下服务条款,提交注册信息'){//检验用户名$result=mysql_query("select*fromobjwhe... if($_POST['submit']=='同意以下服务条款,提交注册信息')
{
//检验用户名
$result=mysql_query("select*from obj where tbxNewAccount='$_POST[newname]'");
if(mysql_num_rows($result)!=0)
{
err_output("该用户名已经被注册了,请选择别的用户名!");
}
/*if($newname==""||$newpwd==""||$email=="")
{
//如果某项为空
err_output("各项均不能为空!");
}*/
//进行用户的检验
$pattern="/\w/";
if($newname==""||$newname.length<6||A.lenth>16||!pattern.test(A))
{
err_output("用户名6-16个字符(包括大小写字母、数字、下划线)组成!");
}
if ($newpwd==""|| $newpwd.length<6|| $newpwd.lenth>13)
{
err_output("密码含有6-13个字符!");
}
//进行密码的检验
if($newpwd!=$tbxRePwd)
{
err_output("两次输入的密码不相同!");
}
$pattern=" /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]w+)*$/";
if(!pattern.test($email)||$email=="")
{
err_output("邮箱格式错误!");
}

//以上皆通过,则可以向数据库中添加记录了
else
{

$sql="insert into obj(id,tbxNewAccount,tbxPwd,tbxEmail,FindPwd,FindPwdAnswer,lastdate)".
"value('',$_POST[newname]','$_POST[newpwd]','$_POST[email]','$_POST[FPWD]','$_POST[FPAW]',now())";
mysql_query($sql)or die( mysql_error());
echo"恭喜你,$newname,您已经注册成功!<BR>";
echo"请点击此处<A HREF=javacript:history.go(-1);>返回</A>";
}
mysql_close($db);
exit();
}
这样哪里出问题了.无法进行验证..难道是正则表达式,那又该怎么写咯.
展开
 我来答
蛋壳儿漂
2010-09-10 · TA获得超过1160个赞
知道小有建树答主
回答量:433
采纳率:0%
帮助的人:602万
展开全部
$pattern="/\w/";这里有问题,一个字符啊。
得用/^\w+$/哦,/^[_a-zA-Z0-9]+$/也行

其实字符个数你都可以写到正则里面不用再额外判断f($newname==""||$newname.length<6||A.lenth>16||!pattern.test(A))
写成
$pattern="/^[a-zA-Z][_a-zA-Z0-9]{5,15}$/"(6-16位字符,字母开头,只包含字母数字下划线)然后只用
f($newname==""||!pattern.test(A))来判断就可以了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式