php或者javascript注册界面如何判断用户名和邮箱是否已存在,存在则报错。以下是我的代码请高手指点
<?phpinclude("conn.php");include("head.php");if(isset($_POST['submit'])&&$_POST['subm...
<?php
include("conn.php");
include ("head.php");
if(isset($_POST['submit']) && $_POST['submit']){
$sql="INSERT INTO `user`(`id`, `username`, `password`, `email`, `idgroup`, `lastdate`) VALUES ('','$_POST[username]','$_POST[password]','$_POST[email]','$_POST[idgroup]',now())";
if(mysql_query($sql)){
print( "<script language=\"javascript\">alert('注册成功');location='login.php';</script>");
}
}
?>
<SCRIPT language=javascript>
function CheckPost(){
if(myform.username.value=="")
{
alert("请填写用户名!");
myform.username.focus();
return false;
}
var username = myform.username;
if(!username.value.match(/^[a-zA-Z0-9_]{1,}$/))
{
alert("用户名只能为数字或字母!");
myform.username.focus();
return false;
}
if (myform.password.value.length<5)
{
alert("密码不能少于五个!");
myform.password.focus();
return false;
}
if(myform.email.value=="")
{
alert("请填写邮箱!");
myform.email.focus();
return false;
}
if(myform.email.value.indexOf("@")<1 || myform.email.value.lastIndexOf(".")<1)
{
alert("请填写正确的电子邮箱!");
myform.email.focus();
return false;
}
} 展开
include("conn.php");
include ("head.php");
if(isset($_POST['submit']) && $_POST['submit']){
$sql="INSERT INTO `user`(`id`, `username`, `password`, `email`, `idgroup`, `lastdate`) VALUES ('','$_POST[username]','$_POST[password]','$_POST[email]','$_POST[idgroup]',now())";
if(mysql_query($sql)){
print( "<script language=\"javascript\">alert('注册成功');location='login.php';</script>");
}
}
?>
<SCRIPT language=javascript>
function CheckPost(){
if(myform.username.value=="")
{
alert("请填写用户名!");
myform.username.focus();
return false;
}
var username = myform.username;
if(!username.value.match(/^[a-zA-Z0-9_]{1,}$/))
{
alert("用户名只能为数字或字母!");
myform.username.focus();
return false;
}
if (myform.password.value.length<5)
{
alert("密码不能少于五个!");
myform.password.focus();
return false;
}
if(myform.email.value=="")
{
alert("请填写邮箱!");
myform.email.focus();
return false;
}
if(myform.email.value.indexOf("@")<1 || myform.email.value.lastIndexOf(".")<1)
{
alert("请填写正确的电子邮箱!");
myform.email.focus();
return false;
}
} 展开
2个回答
展开全部
$sql="INSERT INTO `user`(`id`, `username`, `password`, `email`, `idgroup`, `lastdate`) VALUES ('','$_POST[username]','$_POST[password]','$_POST[email]','$_POST[idgroup]',now())";
$sql1="select * from user where username='$_POST[username]'";
$sql2="select * from user where email='$_POST[email]'";
if(mysql_query($sql1)){
echo "<script language=\"javascript\">alert('用户名已经存在');location='reg.php';</script>";
}elseif (mysql_query($sql2)){
echo "<script language=\"javascript\">alert('邮箱已经存在');location='reg.php';</script>";
}else{
if(mysql_query($sql)){
print( "<script language=\"javascript\">alert('注册成功');location='login.php';</script>");
}
}这是服务器端的判断 也可以用ajax判断
追问
按照这个可以提示用户名已存在,但是还是会注册成功,而且直接跳过了下面的javascript语句,表格没有填完或者不合规范也照样存进数据库中了。请问是不是应该在javascript里面改写代码,来判断用户已存在呢?
追答
$rs1=mysql_query($sql1);
$rs2=mysql_query($sql2);
$row1=mysql_fetch_array($rs1);
$row2=mysql_fetch_array($rs1);
if(if( is_array($row1)||is_array($row2)){
echo "<script language=\"javascript\">alert('用户名或邮箱已经存在');location='reg.php';</script>";
}else{
if(mysql_query($sql)){
print( "<script language=\"javascript\">alert('注册成功');location='login.php';</script>");
}
}
这样呢 试试
这些都是最基础的判断方法 建议前段用ajax来判断 无刷新
还有 你是怎么调用的你的CheckPost方法,错误也会提交成功应该跟这个有关系
展开全部
你先别做insert,你先做一下select查询,查一下数据库里是否存在这个用户名或者邮箱,存在的话返回已存在,不存在的话再insert。
两个地方可以做验证,一个是提交的时候直接在php代码里面判断,一个是用户名或者邮箱的文本框触发脱离焦点事件的时候,用ajax像php传值判断。
两个地方可以做验证,一个是提交的时候直接在php代码里面判断,一个是用户名或者邮箱的文本框触发脱离焦点事件的时候,用ajax像php传值判断。
追问
按照您说的再insert前面增加判断,可以保证用户名和邮箱不重复,但是后面的判断语句都直接跳过了,表格不符合规范也可以将数据存入数据库中,显示注册成功,请问是否应该改写javascript语句,用ajax判断代码待如何写呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |