PHP如何通过AJAX方式实现登录功能
发布:smiling 来源: PHP粉丝网 添加日期:2021-06-27 13:06:46 浏览: 评论:0
PHP是一门很好的语言,可以很方便的开发web应用程序,下面介绍一下Ajax+PHP+MySQL登陆示例,感兴趣的小伙伴们可以参考一下,本文实例讲述了Ajax+PHP+MySQL登陆示例,分享给大家供大家参考,具体如下:
1 login.php
登录界面中,javascript脚本用ajax方式异步请求dologin.php,dologin.php负责用户信息验证(包括验证码,php生成验证码可以自行搜索).登录界面的代码如下:
- <?php session_start();?>
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
- <title>login</title>
- <link rel="stylesheet" type="text/css" href="CSS/login.css" />
- <script src="JS/ajaxhelper.js" type="text/javascript"></script>
- <script src="JS/jquery-1.3.2.min.js" type="text/javascript"></script>
- <script type="text/javascript">
- function chkForm() {
- if (m$('username').value == "") {
- alert('用户名不能为空.');
- m$('username').focus();
- return false;
- }
- if (m$('password').value == "") {
- alert('密码不能为空.');
- m$('password').focus();
- return false;
- }
- if (m$('password').value != "" && m$('username').value != "") {
- var xmlhttp = createRequest();
- if (xmlhttp) {
- m$('loading').innerHTML = "<font color='red'>loading...</font>";
- var username = m$('username').value;
- var pwd = m$('password').value;
- var code = m$('txtCode').value;
- var url = "dologin.php";
- xmlhttp.open("POST", url, true);
- xmlhttp.onreadystatechange = ValidateResult;
- xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
- xmlhttp.send("username=" + escape(username) + "&password=" + escape(pwd) + "&code=" + escape(code));
- } else {
- alert('xmlHttp创建失败.');
- }
- function ValidateResult() {
- if (xmlhttp.readyState == 4) {
- if (xmlhttp.status == 200) {
- if (xmlhttp.responseText != "") {
- //window.alert(xmlhttp.responseText);
- var obj = eval("(" + xmlhttp.responseText + ")");
- if (obj.result == true) {
- alert("提示:" + obj.info);
- window.location = 'index.php';
- } else {
- alert("错误:" + obj.info);
- }
- } else {
- window.alert("从服务器获取失败");
- window.location.reload();
- }
- m$('loading').innerHTML = "";
- }
- }
- }
- }
- }
- function m$(id) {
- return document.getElementById(id);
- }
- function changeCode() {
- var xmlhttp = createRequest();
- if (xmlhttp) {
- m$('loading').innerHTML = "<font color='red'>loading...</font>";
- var dt = new Date().getTime();
- // alert(dt);
- var url = "function/imagecode.php?dummay" + escape(dt);
- xmlhttp.open("GET", url, true);
- xmlhttp.onreadystatechange = ValidateResult;
- xmlhttp.send(null);
- } else {
- alert('xmlHttp创建失败.');
- }
- function ValidateResult() {
- if (xmlhttp.readyState == 4) {
- if (xmlhttp.status == 200) {
- var dt = new Date().getTime();
- var url = "function/imagecode.php?dummay" + escape(dt);
- m$('imgCode').src = "function/imagecode.php?dummay" + escape(dt);
- m$('loading').innerHTML = "";
- }
- }
- }
- }
- function showTool() {
- $('#divToolTip').css("display", "block");
- }
- function hideTool() {
- $('#divToolTip').css("display", "none");
- }
- window.onload = initPage;
- function initPage() {
- $('#divToolTip').css("display", "none");
- }
- </script>
- </head>
- <body>
- <div style="background-color:#2A3F55; height:80px;">
- </div>
- <div style="min-height:500px;">
- <div class="left">
- <div style="margin:120px auto auto auto; height:300px; text-align:left">
- <div style="font-size:26px;color:#2A3F55; text-align:center;">Ajax PHP Demo System
- <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;"/>
- </div>
- <br/>
- <hr style="border:dashed thin #2A3F55;width:70%; text-align:center;"/>
- <div style="font-size:13px;color:#999999; margin:20px auto 0 auto; padding-left:200px;">
- Author:<a href="#" onmousemove="showTool();" onmouseout="hideTool();">wangming</a>
- </div>
- <div style="font-size:13px;color:#999999;margin:20px auto auto auto; padding-left:200px;">DateTime:2009-9-1</div>
- <div style="font-size:13px;color:#999999;margin:20px auto auto auto; padding-left:200px;">Version:1.0.0</div>
- <div style="font-size:13px;color:#999999;margin:20px auto auto auto; padding-left:200px;">Email:wangmingemail@163.com </div>
- <div id="divToolTip">
- <img src="Images/ming.jpg" height="86px;"/>
- <span class="authordes">
- <br/>
- 姓名:wangming<br/>
- 电商06-2<br/>
- </span>
- </div>
- </div>
- </div>
- <div class="right">
- <form>
- <br/>
- <table class="flogin">
- <tr>
- <td>用户名:</td>
- <td><input type="text" name="username" id="username"/></td>
- <td></td>
- </tr>
- <tr>
- <td>密 码:</td>
- <td><input type="password" name="password" id="password" /></td>
- <td></td>
- </tr>
- <tr>
- <td>验证码:</td>
- <td>
- <input type="text" name="txtCode" id="txtCode" size="12" />
- <img src="function/imagecode.php" id="imgCode" alt="image code" height="22px;" style=" vertical-align:bottom;"/>
- </td>
- <td><input type="button" class="btnrefresh" onclick="changeCode();" /></td>
- </tr>
- <tr>
- <td></td>
- <td><input type="button" class="btnlogin" onclick="chkForm();" /></td>
- <td></td>
- </tr>
- <tr>
- <td></td>
- <td><span id="loading"></span></td>
- <td><span id="code"></span></td>
- </tr>
- </table>
- </form>
- </div>
- </div>
- <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;">
- ©Copyright 2015.
- </div>
- </body>
- </html>
2 ajaxhelper.js
- function createRequest() {
- try {
- request = new XMLHttpRequest();
- } catch (tryMS) {
- try {
- request = new ActiveXObject("Msxml2.XMLHTTP");
- } catch (otherMS) {
- try {
- request = new ActiveXObject("Microsoft.XMLHTTP");
- } catch (failed) {
- request = null;
- }
- }
- }
- return request;
- }
- function getActivatedObject(e) {
- var obj;
- if (!e) {
- // early version of IE
- obj = window.event.srcElement;
- } else if (e.srcElement) {
- // IE 7 or later
- obj = e.srcElement;
- } else {
- // DOM Level 2 browser
- obj = e.target;
- }
- return obj;
- }
- function addEventHandler(obj, eventName, handler) {
- if (document.attachEvent) {
- obj.attachEvent("on" + eventName, handler);
- } else if (document.addEventListener) {
- obj.addEventListener(eventName, handler, false);
- }
- }
3 dologin.php
- <?php
- session_start();
- header("Content-type:text/html;charset=gb2312");//防止返回的中文乱码
- $name=$_POST['username'];
- $pwd=$_POST['password'];
- $imagecode=$_POST['code'];
- if(strtoupper($imagecode)==$_SESSION["code"])
- {
- include("conn/conn.php");
- $sql="select studentName,studentPwd from tbstudent where studentId='".$name."'";
- $result=mysql_query($sql,$conn);
- if($row=mysql_fetch_assoc($result))
- {
- if($pwd==$row['studentPwd'])
- {
- $_SESSION['username']=$row['studentName'];
- //echo "{'result':true,'info':'登陆成功!','code':'".$_SESSION["code"]."'}";
- echo "{'result':true,'info':'登陆成功!'}";
- }
- else
- {
- echo "{'result':false,'info':'密码错误!'}";
- }
- }
- else
- {
- echo "{'result':false,'info':'该用户不存在!'}";
- }
- }
- else
- {
- echo "{'result':false,'info':'验证码错误!'}";
- }
- ?>
4 conn.php
- <?php
- $conn=$mysql_connect("localhost","root", "");
- mysql_select_db("bbs",$conn);
- mysql_query("SET NAMES GB2312");
- ?>
- 5
- <?php
- class Users {
- function Users() {
- }
- function checkLogin($username, $userpwd) {
- try {
- mysql_connect("localhost", "root", "123");
- mysql_select_db("studentdb");
- mysql_query("SET NAMES GB2312");
- $sql = "select userid from tbuser where username='$username' and userpwd='" . md5(trim($userpwd)) . "'";
- $result = mysql_query($sql);
- if ($result) {
- $arr = mysql_fetch_row($result);
- $uid = $arr[0];
- if ($uid != "") {
- return "true|$uid login ok.$sql";
- mysql_close();
- } else {
- return "false|login failed!$sql";
- mysql_close();
- }
- } else {
- return "false|$result link db failed!";
- mysql_close();
- }
- }
- catch(Exception $ex) {
- return "false|$ex";
- mysql_close();
- }
- }
- function AddUser($name, $pwd) {
- try {
- mysql_connect("localhost", "root", "123");
- mysql_select_db("studentdb");
- mysql_query("set names gb2312");
- $sql0 = mysql_query("select userid from tbuser where username='$name'");
- $info0 = mysql_fetch_array($sql0);
- $userid = $info0[0];
- if ($info0 != false) {
- return "false | $name is exisis.(id:$userid)";
- }
- $pwd = md5(trim($pwd));
- $query = mysql_query("insert into tbuser(username,userpwd)values('$name','$pwd')");
- $error = mysql_errno();
- if ($query) {
- return "true | add ok";
- } else {
- return "false | $error";
- }
- }
- catch(Exception $ex) {
- return "false | $ex";
- }
- }
- function DeleteUser($name) {
- mysql_connect("localhost", "root", "123");
- mysql_select_db("studentdb");
- mysql_query("set names gb2312");
- $name = trim($name);
- $sql0 = mysql_query("select userid from tbuser where username='$name'");
- $info0 = mysql_fetch_array($sql0);
- if ($info0 != false) {
- if (mysql_query("delete from tbuser where username='$name'")) {
- return "true | delete ok.(id:" . $info0[0] . ")";
- } else {
- return "false | 删除失败";
- }
- } else {
- return "false | 删除失败 $name 不存在";
- }
- }
- function UpdateUser($id, $name, $pwd) {
- if (is_numeric(intval(trim($id)))) {
- if ($id && $name && $pwd) {
- mysql_connect("localhost", "root", "123");
- mysql_select_db("studentdb");
- mysql_query("set names gb2312");
- $pwd = md5(trim($pwd));
- $isexists = mysql_query("select * from tbuser where userid='$id'");
- if (mysql_fetch_array($isexists)) {
- $sql0 = mysql_query("update tbuser set username='$name',userpwd='$pwd' where userid= $id");
- if ($sql0) {
- return "ture | update ok";
- } else {
- return "false | 更新失败";
- }
- } else {
- return "false | usrid=$id not exists.";
- }
- } else {
- return "false |id=$id name=$name and pwd=$pwd .At least one of them is null.";
- }
- } else {
- return "false | $id is not type of int.";
- }
- }
- }
- ?>
与登录无关,只为了记录一下PHP如何在数据库MYSQL上实现CURD操作,以上就是告诉了大家PHP如何通过AJAX方式实现登录功能,希望对大家的学习有所帮助。
Tags: AJAX登录功能
- 上一篇:php生成4位数字验证码的实现代码
- 下一篇:PHP可变变量学习小结
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)