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;
}
}
展开
 我来答
百度网友6c1203d
推荐于2016-03-22 · 超过10用户采纳过TA的回答
知道答主
回答量:27
采纳率:0%
帮助的人:8.5万
展开全部
$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方法,错误也会提交成功应该跟这个有关系

MAFIA幽冥
2014-12-24 · TA获得超过878个赞
知道小有建树答主
回答量:1701
采纳率:0%
帮助的人:480万
展开全部
你先别做insert,你先做一下select查询,查一下数据库里是否存在这个用户名或者邮箱,存在的话返回已存在,不存在的话再insert。
两个地方可以做验证,一个是提交的时候直接在php代码里面判断,一个是用户名或者邮箱的文本框触发脱离焦点事件的时候,用ajax像php传值判断。
追问
按照您说的再insert前面增加判断,可以保证用户名和邮箱不重复,但是后面的判断语句都直接跳过了,表格不符合规范也可以将数据存入数据库中,显示注册成功,请问是否应该改写javascript语句,用ajax判断代码待如何写呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式