kangjacob 2021-08-07 22:20 采纳率: 96.8%
浏览 38
已结题

为何无论是否已经存在用户,总是判定为已经存在

下面是注册页面的代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>VIP用户注册</title>
</head>
<body>
<?php
echo $_COOKIE['cautionWord'];
?><br><br>
<form name="registerForm" onsubmit="return isRight()" action="testinputUser.php" method="get">
填写用户名:<input type="text" name="userName" ><br><br>
请填写密码:<input type="text" name="userPassword1"><br><br>
请重复密码:<input type="text" name="userPassword2"><br><br>
请输入年龄:<input type="text" name="userAge" ><br><br>
请选择性别:<input type="radio" name="userSex" value="male">男性&nbsp &nbsp
          <input type="radio" name="userSex" value="female">女性<br><br>
<input type="reset" value="重写" width=60 length=30>&nbsp &nbsp &nbsp
<input type="submit" value="提交" width=60 length=30>
</form>
<script>
    function isRight(){
        var userName=document.getElementsByName('userName')[0];
        var userPassword1=document.getElementsByName('userPassword1')[0];
        var userPassword2=document.getElementsByName('userPassword2')[0];
        var userAge=document.getElementsByName('userAge')[0];
        var userSex=document.getElementsByName('userSex')
        if (userName.value==""||userPassword1.value==""||userPassword2.value==""||userAge.value==''){
            alert('全部都要填写哦');
            return false;
        }
        if(userPassword1.value != userPassword2.value){
            alert('密码请保持一致');
            return false;
        }
        var isCheckedSex=0;
        for(m=0;m<userSex.length;m++){
            if(userSex[m].checked){
                isCheckedSex=1;
            }
        }
        if(isCheckedSex==0){
            alert('请选择性别');//必须放在return的前面,return后面的好像都无法执行哦
            return false;

        }
    }
</script>
</body>
</html>




下面是处理注册信息的页面代码

<?php
$servername = "---";
$username = "--";
$password = "---";
$dbname = "--l";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
} else {
    echo '连接成功!<br>';
}
$loginName=$_GET['userName'];
$userPassword=$_GET['userPassword1'];
$userAge=$_GET['userAge'];
$userSex=$_GET['userSex'];
//firstly we make sure if the userName has been put into  database?
$sql="SELECT * FROM user_table WHERE userName='$loginName'";//这里给变量加上引号,是为了表明是文本字段
if($result=$conn->query($sql)){
    setcookie('cautionWord','用户名已存在,请重新输入');
    header('location:./register.php');
    exit();//如果不加上die()或者exit(),即算是跳转了,后面的代码还是会执行
}else{
    setcookie('cautionWord','');
}
//now we begin to put the user's info into database
//$conn->query('set names utf8;');
$sql="INSERT INTO user_table (userName,userPassword,userAge,userSex)VALUES('$loginName','$userPassword','$userAge','$userSex')";
if($result = $conn->query($sql)){  //nn ->query is important
    echo '成功录入';
    header("location:./corePage.php");
    setcookie('userName',$loginName);
    setcookie('userPassword',$userPassword);
}else{
    echo 'please insert again';
    header('location:./register.php');
}

?>


不知道为什么,总是被判定为用户名已经存在而返回到上面的注册页面?

  • 写回答

4条回答 默认 最新

  • greatofdream 2021-08-08 00:04
    关注
    $result = $conn->query($sql)
    

    获取结果之后再用if判断内容,而不是把这个赋值操作放到if里

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 8月16日
  • 已采纳回答 8月8日
  • 修改了问题 8月7日
  • 创建了问题 8月7日

悬赏问题

  • ¥15 phython如何实现以下功能?查找同一用户名的消费金额合并—
  • ¥15 ARIMA模型时间序列预测用pathon解决
  • ¥15 孟德尔随机化怎样画共定位分析图
  • ¥18 模拟电路问题解答有偿速度
  • ¥15 CST仿真别人的模型结果仿真结果S参数完全不对
  • ¥15 误删注册表文件致win10无法开启
  • ¥15 请问在阿里云服务器中怎么利用数据库制作网站
  • ¥60 ESP32怎么烧录自启动程序,怎么查看客户esp32板子上程序及烧录地址
  • ¥50 html2canvas超出滚动条不显示
  • ¥15 java业务性能问题求解(sql,业务设计相关)