程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> 原生php登陸注冊

原生php登陸注冊

編輯: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返回的是一個對象

對於數據庫處理這一部分 看的太不仔細了,一定要在看一遍,跟著敲一遍






  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved