PHP如何通過AJAX方式實現登入功能_php執行個體

來源:互聯網
上載者:User

本文執行個體講述了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 <?phpclass 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方式實現登入功能,希望對大家的學習有所協助。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.