Home > php教程 > php手册 > body text

Ajax+PHP+MySQL 登陆示例,

WBOY
Release: 2016-06-13 08:50:35
Original
1170 people have browsed it

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>logintitle>
  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 = "loading...";
 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 = "loading...";
 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();">wangminga>
139           div>
140           <div style="font-size:13px;color:#999999;margin:20px auto auto auto; padding-left:200px;">DateTime:2009-9-1div>
141           <div style="font-size:13px;color:#999999;margin:20px auto auto auto; padding-left:200px;">Version:1.0.0div>
142           <div style="font-size:13px;color:#999999;margin:20px auto auto auto; padding-left:200px;">Email:wangmingemail@163.com                   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>   码: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" /> 
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       ©Copyright 2015.
198     div>
199   body>
200 html>
Copy after login

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 }
Copy after login

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 ?>
Copy after login

4 conn.php

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

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 ?> View Code

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

6 效果图

 

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!