php javascript實作使用者註冊模組(附原始碼)
一、功能介紹
使用語言: html + javascript ajax php
後端資料庫:MySQL
(* 這裡不涉及樣式)
成功註冊流程:
① 註冊頁面(register.html),該頁面提供一個form表單,收集使用者資訊。
② 提交後前往register.php頁面,利用php將註冊資訊加入資料庫。
二、實作程式碼
(1) 建立MySql資料庫中的使用者資訊表
需求:建立使用者資訊表:
程式碼:
CREATE TABLE xxx_user( uid INT PRIMARY KEY AUTO_INCREMENT, uname VARCHAR(32), upwd VARCHAR(32), email VARCHAR(64), phone VARCHAR(16), gender INT #性别 0-女 1-男 );
(2) HTML頁面佈局程式碼
需求:建立一個register.html(非ajax),提供以下控制項(表單)-
##●● 登入名稱-文字方塊● 登入密碼-密碼框● 確認密碼-密碼框● 使用者信箱-電子郵件##● 聯絡方式-文字方塊
● 使用者性別-下拉方塊
● 註冊按鈕
程式碼<form action="./data/users/register.php" method="post">
<!--
1.注册信息不用异步加载,直接提交表单;失去焦点时验证用户名密码是否正确,再用ajax异步加载数据;
2.form表单作用:收集用户信息并提交给服务器;
3.属性action作用:定义表单被提交时发生的动作,通常定义的是服务器上处理程序的地址(url),提交到注册的php文件,默认提交给本页;
4.属性method作用:指定表单数据的提交方式。
get(默认值)——明文提交,待提交的数据会显示在地址栏上;
post——隐式提交,提交的数据不会显示在地址栏上。
-->
<!--控件提交信息,嵌套在form标记里面-->
<!--登录名称-文本框-->
<p>
登录名称:<input type="text" id="uname" name="uname" onblur="check_name()">
<!--提示用户名是否一致的位置-->
<span id="uname-show"></span>
<!--提交数据时提交name属性的值,点击submit时,name属性通过表单form提交数据,同步提交数据-->
</p>
<!--登录密码-密码框-->
<p>
登录密码:<input type="password" id="upwd" name="upwd">
<!--name值与id值可以重复,name值用于提交给服务器,id值在前端用-->
</p>
<!--确认密码-密码框-->
<p>
确认密码:<input type="password" id="cpwd" name="cpwd" onblur="check_pwd()">
<!--onblur为失去焦点属性,调用判断密码是否一致的函数-->
<!--用于提示两次密码是否一致的位置-->
<span id="pwd-show"></span>
</p>
<!--用户邮箱-电子邮件-->
<p>
电子邮箱:<input type="email" name="email">
<!--type="email" 可做简单的格式验证-->
</p>
<!--联系方式-文本框-->
<p>
手机号码:<input type="text" name="phone">
</p>
<!--用户性别-下拉框-->
<p>
用户性别:
<select name="gender">
<option value="1">男</option>
<option value="0">女</option>
</select>
<!--下拉列表和选项,往数据库中插入的是value的值-->
</p>
<!--注册按钮-->
<p>
<input type="submit" value="注册">
<!--submit按钮的表单提交数据,是同步访问数据的方式-->
</p>
</form>
#需求:
① 在init.php中,封裝會重複使用到的連線資料庫
程式碼如下:<?php //data/init.php //创建到服务器的连接,连接数据库 $conn=mysqli_connect("127.0.0.1","root","","knewone",3306); $sql="SET NAMES UTF8"; mysqli_query($conn,$sql);
需求:
② 接收register.html提交過來的數據,並插入到資料庫,再給出提示
程式碼如下:<?php
//data/users/register.php
#1.获取请求提交的数据
$uname=$_REQUEST["uname"];
//uname值就是前端页面中name属性的值
$upwd=$_REQUEST["upwd"];
//确认密码不用获取,获取一个密码就行
$email=$_REQUEST["email"];
$phone=$_REQUEST["phone"];
$gender=$_REQUEST["gender"];
#2.连接到数据库
require("../init.php");
#3.拼sql语句并执行
$sql="insert into xxx_user(uname,upwd,email,phone,gender)values('$uname','$upwd','$email','$phone','$gender')";
//字段值 外面用双引号,里面用单引号
$result=mysqli_query($conn,$sql);
//执行sql语句
#4.根据执行结果给出响应
if($result==true){ //函数返回值
echo "注册成功";
}else{
echo "注册失败";
};
## (4) javascript程式碼
需求:
① 封裝能重複使用的函數程式碼如下:
<script> //1.封装函数,获取id值 function $(id){ return document.getElementById(id); } //2.创建xhr对象 function createXhr(){ var xhr=null; if(window.XMLHttpRequest){ xhr=new XMLHttpRequest(); //标准创建 }else{ //IE8以下的创建方式 xhr=new ActiveXObject("Microsoft.XMLHttp"); } return xhr; } </script>
需求:② 實作前端頁面中完成驗證使用者名稱的重複性和兩次密碼是否一致的功能
######程式碼如下:######<script src="./js/common.js"></script> <script> //1.完成用户名称的重复性验证(异步,检查数据库中是否已存在当前用户名) //异步请求数据,因为还要输入下面的数据,不能跳转到php页面去验证 function check_name(){ //1.创建XHR对象 创建异步对象 var xhr=createXhr(); //调用common.js中封装好的函数 //2.创建请求 var uname=$("uname").value; //获取输入框里的值,把用户名传到后端,再查询 var url="./data/users/check-name.php?uname="+uname; xhr.open("get",url,true); //查询用户名称,用get方法就行,去数据库查询,看用户名是否已经存在 //查询用get就行,向服务器提交数据时再用post //3.设置回调函数,监听状态 //参数true,异步 xhr.onreadystatechange=function(){ if(xhr.readyState==4 && xhr.status==200){ //判断状态,xhr请求状态为4,表示接收响应数据成功;当status的值是200的时候,表示服务器已经正确的处理请求以及给出响应 $("uname-show").innerHTML=xhr.responseText; //提示内容 }; }; //4.发送请求 xhr.send(null); //get请求,参数写null } //2.定义函数,判断两次密码是否一致 //当确认密码框失去焦点时,验证两次输入的密码是否一致,并给出提示(通过/密码不一致) //给upwd 和 cpwd 加id function check_pwd(){ //1.获取两个密码框的值 var upwd=$("upwd").value; //$("upwd") 获取id值,函数在common.js中封装 var cpwd=$("cpwd").value; if(upwd==cpwd && upwd!=""){ //判断是否相等,且密码不为空 $("pwd-show").innerHTML="通过"; //提示到span中,用innerHTML }else{ $("pwd-show").innerHTML="两次密码输入不一致"; }; }; </script>## ####(5) 驗證使用者名稱是否重複的php程式碼############功能:###接受前端傳來的uname值,查詢資料庫中是否有相同的名稱,並給予回傳提示#########程式碼如下:######
<?php //data/users/check-name.php #1.连接数据库 require("../init.php"); #2.接收前端传过来的uname $uname=$_REQUEST["uname"]; #3.拼接sql,并查询uname是否存在 $sql="SELECT * FROM xxx_user uname='$uname'"; $result=mysqli_query($conn,$sql); #4.根据查询的结果输出相应 $row=mysqli_fetch_row($result); //抓取一条数据,即当前uname对应的数据 if($row==null){ //如果$row为空,即数据库中没有相同的用户名存在 echo "通过"; }else{ echo "用户名称已存在"; };###感謝大家的閱讀,希望大家在查看程式碼以後可以有所效益。 ######本文轉自:https://blog.csdn.net/weixin_38840741/article/details/80030792#########推薦教學:《###PHP教學###》## #
以上是php+javascript實作使用者註冊模組(附源碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

PHP類型提示提升代碼質量和可讀性。 1)標量類型提示:自PHP7.0起,允許在函數參數中指定基本數據類型,如int、float等。 2)返回類型提示:確保函數返回值類型的一致性。 3)聯合類型提示:自PHP8.0起,允許在函數參數或返回值中指定多個類型。 4)可空類型提示:允許包含null值,處理可能返回空值的函數。

PHP中使用clone關鍵字創建對象副本,並通過\_\_clone魔法方法定制克隆行為。 1.使用clone關鍵字進行淺拷貝,克隆對象的屬性但不克隆對象屬性內的對象。 2.通過\_\_clone方法可以深拷貝嵌套對象,避免淺拷貝問題。 3.注意避免克隆中的循環引用和性能問題,優化克隆操作以提高效率。

PHP適用於Web開發和內容管理系統,Python適合數據科學、機器學習和自動化腳本。 1.PHP在構建快速、可擴展的網站和應用程序方面表現出色,常用於WordPress等CMS。 2.Python在數據科學和機器學習領域表現卓越,擁有豐富的庫如NumPy和TensorFlow。

HTTP緩存頭的關鍵玩家包括Cache-Control、ETag和Last-Modified。 1.Cache-Control用於控制緩存策略,示例:Cache-Control:max-age=3600,public。 2.ETag通過唯一標識符驗證資源變化,示例:ETag:"686897696a7c876b7e"。 3.Last-Modified指示資源最後修改時間,示例:Last-Modified:Wed,21Oct201507:28:00GMT。

在PHP中,應使用password_hash和password_verify函數實現安全的密碼哈希處理,不應使用MD5或SHA1。1)password_hash生成包含鹽值的哈希,增強安全性。 2)password_verify驗證密碼,通過比較哈希值確保安全。 3)MD5和SHA1易受攻擊且缺乏鹽值,不適合現代密碼安全。

PHP是一種服務器端腳本語言,用於動態網頁開發和服務器端應用程序。 1.PHP是一種解釋型語言,無需編譯,適合快速開發。 2.PHP代碼嵌入HTML中,易於網頁開發。 3.PHP處理服務器端邏輯,生成HTML輸出,支持用戶交互和數據處理。 4.PHP可與數據庫交互,處理表單提交,執行服務器端任務。

PHP在過去幾十年中塑造了網絡,並將繼續在Web開發中扮演重要角色。 1)PHP起源於1994年,因其易用性和與MySQL的無縫集成成為開發者首選。 2)其核心功能包括生成動態內容和與數據庫的集成,使得網站能夠實時更新和個性化展示。 3)PHP的廣泛應用和生態系統推動了其長期影響,但也面臨版本更新和安全性挑戰。 4)近年來的性能改進,如PHP7的發布,使其能與現代語言競爭。 5)未來,PHP需應對容器化、微服務等新挑戰,但其靈活性和活躍社區使其具備適應能力。

PHP的核心優勢包括易於學習、強大的web開發支持、豐富的庫和框架、高性能和可擴展性、跨平台兼容性以及成本效益高。 1)易於學習和使用,適合初學者;2)與web服務器集成好,支持多種數據庫;3)擁有如Laravel等強大框架;4)通過優化可實現高性能;5)支持多種操作系統;6)開源,降低開發成本。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Atom編輯器mac版下載
最受歡迎的的開源編輯器

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

禪工作室 13.0.1
強大的PHP整合開發環境

WebStorm Mac版
好用的JavaScript開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)