zoukankan      html  css  js  c++  java
  • 原生php登陆注册

    本以为一个登陆注册功能十来分钟就写好了,没想到thinkPHP用久了,原生的php不会写了

    最开始我直接写了类和方法,在前台传递参数给类的login方法(action="index.php/login"),尝试几次发现无法访问,这才意识到,这种方式是mvc模式,原生php不具有

    然后,把登陆注册的php代码没有写类和方法直接放到对应的php文件里,前端放在相应的HTML文件里(还是习惯HTML 和php分开来写)

    这时候action直接填对应的文件就好了,具体代码如下

    login.php

    <?php
    $un = $_POST['username'];
    $pd = $_POST['password'];
    $mysqli = new mysqli('localhost', 'root', '', 'java');
    $result = $mysqli->query("SELECT password FROM user WHERE username = "."'$un'");//第一个容易出错的地方
    $rs=$result->fetch_row();//第二个容易出错的地方
    if ($rs!==null) {
    if ($pd != $rs[0]) {
    $arr = array('status' => 2, 'b' => '密码错误');
    echo json_encode($arr);
    }
    else {
    $arr = array('status' => 1, 'b' => 'success');
    echo json_encode($arr);
    }
    }
    else{
    $arr = array('status' => 0, 'b' => '没有此用户');
    echo json_encode($arr);
    }
    ?>



    register.php



    <?php
    $un = $_POST['username'];
    $pd = $_POST['password'];
    $pd2 = $_POST['password2'];
    $mysqli = new mysqli('localhost', 'root', '', 'java');
    $result = $mysqli->query("SELECT password FROM user WHERE username = "."'$un'");
    $rs=$result->fetch_row();
    if ($pd != $pd2) {
    $arr = array('status' => 2, 'b' => '两次输入密码不一致');
    echo json_encode($arr);
    }
    elseif($rs!=null){
    $arr = array('status' => 3, 'b' => '用户已存在');
    echo json_encode($arr);
    }
    else {
    $mysqli = new mysqli('localhost', 'root', '', 'java');
    $sql = "INSERT INTO user (username,password) VALUES ('$_POST[username]', '$_POST[password]')";
    $rs = $mysqli->query($sql);
    if (!$rs) {
    $arr = array('status' => 0, 'b' => 'falied');//插入失败
    echo json_encode($arr);
    }
    else {
    $arr = array('status' => 1, 'b' => 'success');//插入成功
    echo json_encode($arr);
    }
    }
    ?>

    第一处容易出错的地方 因为传入的un变量替换成字符串之后也是要加引号,所以应该加两个

    第二处 要熟悉连接数据库的面向对象的各种输出函数的用法,mysqli->query返回的是一个对象

    对于数据库处理这一部分 看的太不仔细了,一定要在看一遍,跟着敲一遍






  • 相关阅读:
    Pytest(2)使用和调用方法
    lnmp一键搭建环境 running
    cd / 、cd~、cd .和cd..区别 running
    php算法之冒泡排序 running
    linux系统安装 running
    webpack之urlloader running
    Unix系列shell程序编写(下)
    目标文件格式分析工具: ar,nm,objdump,objcopy,readelf
    Unix系列shell程序编写(上)
    在vmware下安装的linux系统上添加eth1
  • 原文地址:https://www.cnblogs.com/tobemaster/p/5339756.html
Copyright © 2011-2022 走看看