原生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返回的是一个对象

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






原文地址:https://www.cnblogs.com/tobemaster/p/5339756.html