学了js php就简单,学习笔记:JS + 简单的PHP实现用户注册及登录

news/2024/7/7 19:36:02

/*-----------------JS 代码------------------------*/

$(function(){

var username = $("#username");

username.blur(function(){

if(username.val()==‘‘){

alert("用户名不能为空");

}else{

checkUsername(username.val());

}

});

function checkUsername(name){

$.ajax({

type:"post",

url:"demo1.php",

async:true,

data:{"type":"checkusername","username":name},

success:function(data){

var flag = JSON.parse(data);

if(flag == true){

alert("用户名重复");

}else{

alert("用户名可用");

}

}

});

}

})

$("#regi").click(function(){

var name = $("#username").val();

var pwd = $("#pwd").val();

$.ajax({

type:"post",

url:"demo1.php",

async:true,

data:{"type":"register","username":name,"password":pwd},

success:function(data){

alert(data);

}

});

})

/*-----------------PHP 代码------------------------*/

$type = $_POST["type"];

if(isset($type)){//存在为true

//检查用户名是否存在;

if($type == "checkusername"){

$flag = "";

$username = $_POST["username"];

$json = file_get_contents("user1.json"); //获取user1.json里的数据 json格式

$arr_json = json_decode($json,true);//将json格式的数据转化为数组类型的数据

for($i=0;$i

if($arr_json[$i]["name"] == $username){

$flag = true;

}

}

echo json_encode($flag); //echo 返回前台的值  json_encode 将数组类型转换为json类型的数据

}

//用户注册;即向json文件写入新注册的用户名和密码

if($type == "register"){

$flag = true;

$username = $_POST["username"];

$password = $_POST["password"];

$array = array("name" => $username,"pwd" => $password);

$json = file_get_contents("user1.json");

$arr_json = json_decode($json,true);

array_push($arr_json,$array);

$json = json_encode($arr_json);

file_put_contents("user1.json",$json);

echo json_encode($json); //将更新过的json文件中所有的用户返回(仅用于测试)

}

//用户登录;在json文件检查是否存在输入的用户名以及密码是否正确;

if($type == "login"){

$name = $_POST["username"];

$pwd = $_POST["pwd"];

$flag = "";

$json = file_get_contents("user.json");

$arr_json = json_decode($json,true);

for($i=0;$i

if($arr_json[$i]["name"] == $name && $arr_json[$i]["pwd"] == $pwd){

$flag = true;

}

}

echo json_encode($flag);

}

}

?>

/*---------------------随便来一json文件-----------------------*/

[

{

"name": "admin",

"pwd": "1234"

}, {

"name": "aaa",

"pwd": "3333"

}, {

"name": "q",

"pwd": "1112"

}, {

"name": "111",

"pwd": "qqq"

}, {

"name": "1234567",

"pwd": "qqq"

}

]

源代码见附件

原文:http://12006687.blog.51cto.com/11996687/1860972


http://lihuaxi.xjx100.cn/news/271540.html

相关文章

T-SQL IN 谓词

T-SQL谓词之一 IN。检查指定(IN谓词前)的值,字段值或标量表达式是否包含在定义的一组元素(放在括弧内)中。这组元素可以有一或多个值,而不同值之间由逗点分开。 创建一个临时表,并插入一些值。 CREATETable#t( Fonts NVARCHAR(10))INSERTI…

peak num

class Solution {public: int findPeakElement(vector<int>& nums) { int i0; int nnums.size(); while(i<n){     if(i0){ //处理第一位        if(nums[1] < nums[0])        return 0;        else {         …

AI四巨头Google、DeepMind、Microsoft、Uber深度学习框架大比拼

编者按&#xff1a;Google、Uber、DeepMind和Microsoft这四大科技公司是当前将深度学习研究广泛应用于自身业务的典型代表&#xff0c;跻身全球深度学习研究水平最高的科技公司之列。GPipe、Horovod、TF Replicator和DeepSpeed分别是这四家公司开发应用的深度学习框架&#xff…

Redis单例、主从模式、sentinel以及集群的配置方式及优缺点对比

点击上方“方志朋”&#xff0c;选择“设为星标”回复”666“获取新整理的面试文章作者&#xff1a;爱宝贝丶my.oschina.net/zhangxufeng/blog/905611redis作为一种高效的缓存框架&#xff0c;使用是非常广泛的&#xff0c;在数据存储上&#xff0c;在运行时其将数据存储在内存…

java创建线程安全的集合

List: public static List<String> dataList Collections.synchronizedList(new ArrayList<String>()); Map: public static Map<String,String> dataMap new ConcurrentHashMap <String,String>(); 这里的线程安全仅仅指的是使用它自身提供的函数…

北京学python去哪里好_北京想学习Python应该去哪里好

统一 Executor 和 ParallelExecutor 接口&#xff0c;用户只需通过 CompiledProgram 将单卡模型转化多卡模型&#xff0c;并利用 Executor 进行训练或者预测。正式发布 AnalysisConfig 预测接口&#xff0c;支持计算图分析、算子融合等优化&#xff0c;并支持利用 Intel MKLDNN…

SQL Server 2008备份策略设计下(六)

上一篇博文探讨了各种恢复模式和备份类型&#xff0c;这一节继续来探讨如何设计备份策略。设计一个数据库的最佳备份策略&#xff0c;会面临如何选择使用哪种恢复模式的问题&#xff0c;因为恢复模式控制着备份和还原的行为。一般来讲&#xff0c;简单恢复模式一般适合用于测试…

matlab优化工具箱解线性规划,用matlab优化工具箱解线性规划

实验二&#xff1a;用m atlab 优化工具箱解线性规划学号&#xff1a;16 姓名&#xff1a;任亚伟 系别专业&#xff1a;12信计1班一、实验目的通过具体的题目实例&#xff0c;使学生理解数学建模的基本思想和方法&#xff0c;掌握数学建模分析和解决的基本过程。二、实验问题问题…