Ajax+PHP+MySQL 登陆示例

PHP是一门很好的语言,可以很方便的开发web应用程序,下面介绍一下PHP如何通过AJAX方式实现登录功能:

1 login.php

登录界面中,javascript脚本用ajax方式异步请求dologin.php,dologin.php负责用户信息验证(包括验证码,php生成验证码可以自行搜索).登录界面的代码如下:

  1 <?php session_start();?>
  2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3 <html xmlns="http://www.w3.org/1999/xhtml">
  4   <head>
  5     <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
  6     <title>login</title>
  7     <link rel="stylesheet" type="text/css" href="CSS/login.css" />
  8     <script src="JS/ajaxhelper.js" type="text/javascript"></script>
  9     <script src="JS/jquery-1.3.2.min.js" type="text/javascript"></script>
 10     <script type="text/javascript">
 11         function chkForm() {
 12             if (m$(‘username‘).value == "") {
 13
 14                 alert(‘用户名不能为空.‘);
 15                 m$(‘username‘).focus();
 16                 return false;
 17
 18             }
 19             if (m$(‘password‘).value == "") {
 20
 21                 alert(‘密码不能为空.‘);
 22                 m$(‘password‘).focus();
 23                 return false;
 24
 25             }
 26             if (m$(‘password‘).value != "" && m$(‘username‘).value != "") {
 27
 28                 var xmlhttp = createRequest();
 29                 if (xmlhttp) {
 30                     m$(‘loading‘).innerHTML = "<font color=‘red‘>loading...</font>";
 31                     var username = m$(‘username‘).value;
 32                     var pwd = m$(‘password‘).value;
 33                     var code = m$(‘txtCode‘).value;
 34                     var url = "dologin.php";
 35                     xmlhttp.open("POST", url, true);
 36                     xmlhttp.onreadystatechange = ValidateResult;
 37                     xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
 38                     xmlhttp.send("username=" + escape(username) + "&password=" + escape(pwd) + "&code=" + escape(code));
 39
 40                 } else {
 41                     alert(‘xmlHttp创建失败.‘);
 42
 43                 }
 44
 45                 function ValidateResult() {
 46                     if (xmlhttp.readyState == 4) {
 47                         if (xmlhttp.status == 200) {
 48                             if (xmlhttp.responseText != "") {
 49
 50                                 //window.alert(xmlhttp.responseText);
 51                                 var obj = eval("(" + xmlhttp.responseText + ")");
 52                                 if (obj.result == true) {
 53                                     alert("提示:" + obj.info);
 54                                     window.location = ‘index.php‘;
 55
 56                                 } else {
 57                                     alert("错误:" + obj.info);
 58
 59                                 }
 60                             } else {
 61                                 window.alert("从服务器获取失败");
 62
 63                                 window.location.reload();
 64                             }
 65                             m$(‘loading‘).innerHTML = "";
 66                         }
 67                     }
 68
 69                 }
 70
 71
 72             }
 73
 74         }
 75
 76         function m$(id) {
 77             return document.getElementById(id);
 78         }
 79
 80         function changeCode() {
 81             var xmlhttp = createRequest();
 82             if (xmlhttp) {
 83                 m$(‘loading‘).innerHTML = "<font color=‘red‘>loading...</font>";
 84                 var dt = new Date().getTime();
 85                 // alert(dt);
 86                 var url = "function/imagecode.php?dummay" + escape(dt);
 87                 xmlhttp.open("GET", url, true);
 88                 xmlhttp.onreadystatechange = ValidateResult;
 89                 xmlhttp.send(null);
 90
 91             } else {
 92                 alert(‘xmlHttp创建失败.‘);
 93
 94             }
 95
 96             function ValidateResult() {
 97                 if (xmlhttp.readyState == 4) {
 98                     if (xmlhttp.status == 200) {
 99                         var dt = new Date().getTime();
100                         var url = "function/imagecode.php?dummay" + escape(dt);
101                         m$(‘imgCode‘).src = "function/imagecode.php?dummay" + escape(dt);
102                         m$(‘loading‘).innerHTML = "";
103                     }
104                 }
105
106             }
107         }
108
109         function showTool() {
110             $(‘#divToolTip‘).css("display", "block");
111         }
112
113         function hideTool() {
114             $(‘#divToolTip‘).css("display", "none");
115         }
116         window.onload = initPage;
117
118         function initPage() {
119             $(‘#divToolTip‘).css("display", "none");
120         }
121     </script>
122   </head>
123   <body>
124     <div style="background-color:#2A3F55; height:80px;">
125
126     </div>
127     <div style="min-height:500px;">
128
129       <div class="left">
130
131         <div style="margin:120px auto auto auto; height:300px; text-align:left">
132           <div style="font-size:26px;color:#2A3F55; text-align:center;">Ajax PHP Demo System
133             <img src="Images/appstorm-icon.png" alt="appcation storm image" style="position:relative;top:-18px; left:-12px;                                    vertical-align:middle; text-align:center;font-size:10px; width:65px; height:46px;"/>
134           </div>
135           <br/>
136           <hr style="border:dashed thin #2A3F55;width:70%; text-align:center;"/>
137           <div style="font-size:13px;color:#999999; margin:20px auto 0 auto; padding-left:200px;">
138             Author:<a href="#" onmousemove="showTool();" onmouseout="hideTool();">wangming</a>
139           </div>
140           <div style="font-size:13px;color:#999999;margin:20px auto auto auto; padding-left:200px;">DateTime:2009-9-1</div>
141           <div style="font-size:13px;color:#999999;margin:20px auto auto auto; padding-left:200px;">Version:1.0.0</div>
142           <div style="font-size:13px;color:#999999;margin:20px auto auto auto; padding-left:200px;">Email:[email protected]                   </div>
143           <div id="divToolTip">
144             <img src="Images/ming.jpg" height="86px;"/>
145             <span class="authordes">
146               <br/>
147               姓名:wangming<br/>
148               电商06-2<br/>
149             </span>
150
151           </div>
152
153         </div>
154
155       </div>
156
157       <div class="right">
158
159         <form>
160           <br/>
161           <table class="flogin">
162             <tr>
163               <td>用户名:</td>
164               <td><input type="text" name="username" id="username"/></td>
165               <td></td>
166             </tr>
167             <tr>
168               <td>密&nbsp;&nbsp;&nbsp;码:</td>
169               <td><input type="password" name="password" id="password" /></td>
170               <td></td>
171             </tr>
172             <tr>
173               <td>验证码:</td>
174               <td>
175                 <input type="text" name="txtCode" id="txtCode" size="12" />&nbsp;
176                 <img src="function/imagecode.php" id="imgCode" alt="image code" height="22px;" style=" vertical-align:bottom;"/>
177               </td>
178               <td><input type="button"  class="btnrefresh" onclick="changeCode();" /></td>
179             </tr>
180             <tr>
181               <td></td>
182               <td><input type="button"  class="btnlogin" onclick="chkForm();" /></td>
183               <td></td>
184             </tr>
185             <tr>
186               <td></td>
187               <td><span id="loading"></span></td>
188               <td><span id="code"></span></td>
189             </tr>
190
191           </table>
192         </form>
193       </div>
194
195     </div>
196     <div style="background-color:#2A3F55; height:60px; margin:auto 0 0 0; clear:both; text-align:center; line-height:60px; color:#FFFFFF;font-size:12px;">
197       &copy;Copyright 2015.
198     </div>
199   </body>
200 </html>

2 ajaxhelper.js

 1 function createRequest() {
 2     try {
 3         request = new XMLHttpRequest();
 4     } catch (tryMS) {
 5         try {
 6             request = new ActiveXObject("Msxml2.XMLHTTP");
 7         } catch (otherMS) {
 8             try {
 9                 request = new ActiveXObject("Microsoft.XMLHTTP");
10             } catch (failed) {
11                 request = null;
12             }
13         }
14     }
15     return request;
16 }
17
18 function getActivatedObject(e) {
19     var obj;
20     if (!e) {
21         // early version of IE
22         obj = window.event.srcElement;
23     } else if (e.srcElement) {
24         // IE 7 or later
25         obj = e.srcElement;
26     } else {
27         // DOM Level 2 browser
28         obj = e.target;
29     }
30     return obj;
31 }
32
33 function addEventHandler(obj, eventName, handler) {
34     if (document.attachEvent) {
35         obj.attachEvent("on" + eventName, handler);
36     } else if (document.addEventListener) {
37         obj.addEventListener(eventName, handler, false);
38     }
39 }

3 dologin.php

 1 <?php
 2     session_start();
 3     header("Content-type:text/html;charset=gb2312");//防止返回的中文乱码
 4     $name=$_POST[‘username‘];
 5     $pwd=$_POST[‘password‘];
 6     $imagecode=$_POST[‘code‘];
 7     if(strtoupper($imagecode)==$_SESSION["code"])
 8     {
 9        include("conn/conn.php");
10        $sql="select studentName,studentPwd from tbstudent where studentId=‘".$name."‘";
11        $result=mysql_query($sql,$conn);
12        if($row=mysql_fetch_assoc($result))
13        {
14          if($pwd==$row[‘studentPwd‘])
15          {
16           $_SESSION[‘username‘]=$row[‘studentName‘];
17             //echo "{‘result‘:true,‘info‘:‘登陆成功!‘,‘code‘:‘".$_SESSION["code"]."‘}";
18             echo "{‘result‘:true,‘info‘:‘登陆成功!‘}";
19
20          }
21          else
22          {
23             echo "{‘result‘:false,‘info‘:‘密码错误!‘}";
24          }
25        }
26       else
27       {
28           echo "{‘result‘:false,‘info‘:‘该用户不存在!‘}";
29       }
30    }
31    else
32    {
33        echo "{‘result‘:false,‘info‘:‘验证码错误!‘}";
34    }
35 ?>

4 conn.php

1 <?php
2  $conn=$mysql_connect("localhost","root", "");
3  mysql_select_db("bbs",$conn);
4  mysql_query("SET NAMES GB2312");
5 ?>

5 user.php

 1 <?php
 2 class Users {
 3     function Users() {
 4     }
 5     function checkLogin($username, $userpwd) {
 6         try {
 7             mysql_connect("localhost", "root", "123");
 8             mysql_select_db("studentdb");
 9             mysql_query("SET NAMES GB2312");
10             $sql = "select userid from tbuser where username=‘$username‘ and userpwd=‘" . md5(trim($userpwd)) . "‘";
11             $result = mysql_query($sql);
12             if ($result) {
13                 $arr = mysql_fetch_row($result);
14                 $uid = $arr[0];
15                 if ($uid != "") {
16                     return "true|$uid login ok.$sql";
17                     mysql_close();
18                 } else {
19                     return "false|login failed!$sql";
20                     mysql_close();
21                 }
22             } else {
23                 return "false|$result link db failed!";
24                 mysql_close();
25             }
26         }
27         catch(Exception $ex) {
28             return "false|$ex";
29             mysql_close();
30         }
31     }
32     function AddUser($name, $pwd) {
33         try {
34             mysql_connect("localhost", "root", "123");
35             mysql_select_db("studentdb");
36             mysql_query("set names gb2312");
37             $sql0 = mysql_query("select userid from tbuser where username=‘$name‘");
38             $info0 = mysql_fetch_array($sql0);
39             $userid = $info0[0];
40             if ($info0 != false) {
41                 return "false | $name is exisis.(id:$userid)";
42             }
43             $pwd = md5(trim($pwd));
44             $query = mysql_query("insert into tbuser(username,userpwd)values(‘$name‘,‘$pwd‘)");
45             $error = mysql_errno();
46             if ($query) {
47                 return "true | add ok";
48             } else {
49                 return "false | $error";
50             }
51         }
52         catch(Exception $ex) {
53             return "false | $ex";
54         }
55     }
56     function DeleteUser($name) {
57         mysql_connect("localhost", "root", "123");
58         mysql_select_db("studentdb");
59         mysql_query("set names gb2312");
60         $name = trim($name);
61         $sql0 = mysql_query("select userid from tbuser where username=‘$name‘");
62         $info0 = mysql_fetch_array($sql0);
63         if ($info0 != false) {
64             if (mysql_query("delete from tbuser where username=‘$name‘")) {
65                 return "true | delete ok.(id:" . $info0[0] . ")";
66             } else {
67                 return "false | 删除失败";
68             }
69         } else {
70             return "false | 删除失败 $name 不存在";
71         }
72     }
73     function UpdateUser($id, $name, $pwd) {
74         if (is_numeric(intval(trim($id)))) {
75             if ($id && $name && $pwd) {
76                 mysql_connect("localhost", "root", "123");
77                 mysql_select_db("studentdb");
78                 mysql_query("set names gb2312");
79                 $pwd = md5(trim($pwd));
80                 $isexists = mysql_query("select * from tbuser where userid=‘$id‘");
81                 if (mysql_fetch_array($isexists)) {
82                     $sql0 = mysql_query("update tbuser set username=‘$name‘,userpwd=‘$pwd‘ where userid= $id");
83                     if ($sql0) {
84                         return "ture | update ok";
85                     } else {
86                         return "false | 更新失败";
87                     }
88                 } else {
89                     return "false | usrid=$id not exists.";
90                 }
91             } else {
92                 return "false |id=$id name=$name  and pwd=$pwd .At least one of them is null.";
93             }
94         } else {
95             return "false | $id is not type of int.";
96         }
97     }
98 }
99 ?>                

与登录无关,只为了记录一下PHP如何在数据库MYSQL上实现CURD操作.

6 效果图

时间: 2024-08-06 16:01:19

Ajax+PHP+MySQL 登陆示例的相关文章

Bluemix云端数据库服务ClearDB MySQL使用示例———Python开发投票程序

越来越多的服务走向云端,看不见摸不着,让没接触过的我感觉有些茫然,IBM的云平台Blumemix上提供了很多服务,我这里就把学习使用ClearDBMySQL Database服务的过程给大家分享一下.这是一个PHP的投票小程序,针对主题"你曾后悔进入 IT 行业吗?"展开投票功能,基于简单的Cookie操作判断用户有没有投过票,如果没有投过票,就显示投票选项和按钮,不显示投票结果:如果已经投票了,就直接显示投票结果,而不能再次投票. 构建一个类似的应用程序的前提条件 一个 Bluemi

使用Ajax的异步登陆

使用Ajax的异步登陆 1.其实大家也经常遇到这样的情况,进行注册时,当光标放到第二个输入框时,会出现已被注册或使用,或者是可以注册的字样.页面不用跳转,直接可以返回数据. 2.当点击免费发送短信的按钮,发送到手机上的验证码.页面也不用跳转. 以上两种功能,均可以用Ajax来完成 下面就用Ajax来实现这个功能 1.Ajax的原理: Ajax的原理就是:通过javascript的方式,将前台数据通过xmlhttp对象传递到后台, 后台在接收到请求后,将需要的结果,再传回到前台,这样就可以实现不需

MySQL登陆关闭、密码修改破解

################################################################################## 启动关闭和登陆 ################################################################################## 1单实例 mysqld_safe --user=mysql &  #启动服务 mysqladmin -uroot -pwsyht shutdown  #

PHP MYSQL登陆和模糊查询

PHP MYSQL登陆和模糊查询 PHP版本 5.5.12    MYSQL版本 5.6.17  Apache 2.4.9 用的wampserver 一.PHPMYSQL实现登陆:  一共含有两个文件:login.php和logincheck.php; 表单代码: <form action="logincheck.php"method="post"> Yonghu:<inputtype="text" name="use

Android客户端与服务端交互之登陆示例

今天了解了一下android客户端与服务端是怎样交互的,发现其实跟web有点类似吧,然后网上找了大神的登陆示例,是基于IntentService的 1.后台使用简单的servlet,支持GET或POST.这个servlet最终返回给前台一个字符串flag,值是true或false,表示登录是否成功. servlet使用之前需要配置,主义servlet的servlet-name要和servlet-mapping的servlet-name一致,否则找不到路径 我是在myEclipse上创建的一个we

mysql 存储过程 示例代码

drop procedure if exists P_SEQUENCE; /** 暂省略包 @AUTO LIANGRUI 2014/6/27 T_PRO_PRODUCT 表 排序 对整个表进行按序号排序 根据序号从新自然排序 重复序号的安创建日期分配序号 测试阶段 测试调用 set @merid='TEST66'; call P_SEQUENCE(@merid); **/ create procedure P_PRODUCT_SEQUENCE( in v_merchar_id VARCHAR(1

1~2_Mysql 的配置之密码重置& mysql 登陆

mysql 黙认mysql 是没有设置密码的,正常情况下还是应该设置一个密码. [[email protected] ~]# mysql -uroot 用quit  退出来 给mysql 设置密码 [[email protected] ~]# mysqladmin -uroot password 'zaq12wsx' 如果我们忘记了mysql 的密码,怎么解决呢? 初始化密码 [[email protected] ~]# vim /etc/my.cnf  #编辑my.cnf skip-grant

PHP、jQuery、AJAX和MySQL 数据库实例

index.html页面 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="utf-8"> 5 <title> 6 PHP.jQuery.AJAX和MySQL 数据库实例 7 </title> 8 </head> 9 <body> 10 <form> 11 Select a User:

mysql登陆提示ERROR 1045 (28000): Access denied for user &#39;root&#39;@&#39;localhost&#39; (using password: NO

今天安装zabbix,安装完成之后在最上面提示如下所示 检查日志如下显示 显示连接数据库失败,登录mysql给zabbix授权之后发现zabbix彻底起不来了 数据库也登陆不进去,提示ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) 数据库拒绝了root登录,于是先跳过受权表访问,命令如下:mysqld_safe --user=mysql --skip-grant-tables -