php链接mysql数据库完整登陆注册验

一.登陆注册

1.登陆注册的服务器逻辑:

(1)接受并校验 --- >如 if(empty($_POST['username'])) { echo '....' } 判断post方式提交过来的数组中有没有username这个属性名

(2)持久化---->放到数据库中/json文件中

(3)响应---->比如前端用ajax请求了数据,而想让php响应一些东西回去,用echo即可,注意的是数组类型的数据不能用echo,需要转为json

2.使用ajax进行注册时用户名的查询::

(1) js代码:


        var xhr = new XMLHttpRequest();
            xhr.open('get','./check.php?username='+v ,true);//请求发送到check.php里
            xhr.send();
      

(2)下面进入check.php里:

<?php

function query() {
    $con = !empty($_GET['username']) ? trim($_GET['username']) : '没有数据'; //接受传进来的数据--->username
    //链接数据库
    $connect = mysqli_connect('127.0.0.1','root','123456','team-project');
    if(!$connect) {
        echo '链接数据库失败';
        return;
    }
    mysqli_set_charset($connect , 'utf-8'); //查询数据库的时候,设置编码为中文
    $sql = "select userName from users where userName = '{$con}'";
    $query = mysqli_query( $connect,$sql); 
  
    if(!$query) {
        echo '读取错误';
        return;
    }
    $row = mysqli_fetch_assoc($query); //逐行读取数据库中内容,一次只能读取一行
    if(empty($row)) {
        echo 'kong';    //向前台返回字符串'kong'
    } else {
        echo 'you';     //向前台返回字符串'you'
    }
    mysqli_free_result($query);  //释放暂存
    mysqli_close($connect);    //炸桥
}


//使用函数形式是为了防止写很多的else,在函数里条件不成立后直接return就可以,后面的就不会执行了
if($_SERVER['REQUEST_METHOD'] === 'GET') {
    query();
}

(3)回到之前的js代码里:

 var xhr = new XMLHttpRequest();
            xhr.open('get','./check.php?username='+v ,true);
            xhr.send();




            xhr.onreadystatechange = function(){
                if( xhr.readyState == 4 ){
                    if( xhr.status>=200 && xhr.status<300){
                        var content = xhr.responseText; //获取服务器的返回值
                        if(content == 'kong') {   // 服务器echo回来的
                            n.text("恭喜您,该用户名可用");
                        } else {
                            n.html("<font color='red' style='font-size:12px;'>该用户名已存在</font>");
                        }
                    } else {
                        console.log(xhr.status);
                    }
                }
            }

以上就完成了一次查询!

其中注册成功时向数据库插入数据,只用添加几个数据,改变下sql语句即可:

代码如下:

<?php


function register() {
    $userName = $_POST['username']; //接收username

    $password = $_POST['password'];//接收password

    $phone = $_POST['phone'];//接收phone

    //链接数据库
    $connect = mysqli_connect('127.0.0.1','root','123456','team-project');

    //设置查询时为中文
    mysqli_set_charset($connect , 'utf-8');
    
    //设置插入的sql语句
    $sql = "insert into users (userName,password,phone) values ('{$userName}','{$password}','{$phone}')";

    //获取查询结果
    $query = mysqli_query( $connect,$sql);
    //$query为布尔值
    if(!$query) {
        $GLOBALS['message'] = '写入失败';
        return;
    }
    echo 'success';  //返回给前台的字段为success
}
    if($_SERVER['REQUEST_METHOD'] === 'POST') {
		register();
	}
?>

登录注册大致如以上!

猜你喜欢

转载自blog.csdn.net/qq_31906983/article/details/84073714