zoukankan      html  css  js  c++  java
  • ajax异步登录

    以下是ajax代码示例:

      HTML

    <!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=utf-8" />
    <title>Untitled Document</title>
    <script type="text/javascript">
    function validation()
    {
    	var name = document.getElementById("username").value;
    	var pwd = document.getElementById("password").value;
        var postStr = "username="+name+"&password="+pwd;
    	ajax("connect.php",postStr,function(result){
    		document.getElementById("info").innerHTML=result;
    		});
    }
    
    function ajax(url,postStr,onsuccess)
    {
        var xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP'); //创建XMLHTTP对象,考虑兼容性。XHR
        xmlhttp.open("POST", url, true); //“准备”向服务器的GetDate1.ashx发出Post请求(GET可能会有缓存问题)。这里还没有发出请求
    
        //AJAX是异步的,并不是等到服务器端返回才继续执行
        xmlhttp.onreadystatechange = function ()
        {
            if (xmlhttp.readyState == 4) //readyState == 4 表示服务器返回完成数据了。之前可能会经历2(请求已发送,正在处理中)、3(响应中已有部分数据可用了,但是服务器还没有完成响应的生成)
            {
                if (xmlhttp.status == 200) //如果Http状态码为200则是成功
                {
                    onsuccess(xmlhttp.responseText);
                }
                else
                {
                    alert("AJAX服务器返回错误!");
                }
            }
        }
    	xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
        //不要以为if (xmlhttp.readyState == 4) {在send之前执行!!!!
        xmlhttp.send(postStr); //这时才开始发送请求。并不等于服务器端返回。请求发出去了,我不等!去监听onreadystatechange吧!
    }
    </script>
    </head>
    
    <body>
    
    用户名:<input id="username" name="username" type="text"  />
    <BR />
    密码:<input id="password" name="password" type="password" />
    <BR />
    <input type="button" name="button" value="提交" onclick="validation();" />
    <div id="info"></div>
    
    </body>
    </html>
    

      php

    <?php
    $con = mysql_connect('localhost','root','root');
    if(!$con)
    {
    	die('error:'.mysql_error());
    }
    mysql_select_db("ajax-login",$con);
    $result = mysql_query("select * from user where username='$_POST[username]'");
    
    while($row = mysql_fetch_array($result))
    {
    	if($row['password'] == md5($_POST['password']))
    	{
    		header("Location:success.php"); 
    	}
    	else
    	{
    		echo 'error';
    	}
    }
    //echo "<br/>";
    //print_r($_POST['password']);exit();
    ?>
    

      mysql

    /*
    Navicat MySQL Data Transfer
    
    Source Server         : localhost
    Source Server Version : 50553
    Source Host           : localhost:3306
    Source Database       : ajax-login
    
    Target Server Type    : MYSQL
    Target Server Version : 50553
    File Encoding         : 65001
    
    Date: 2017-12-05 14:32:16
    */
    
    SET FOREIGN_KEY_CHECKS=0;
    
    -- ----------------------------
    -- Table structure for user
    -- ----------------------------
    DROP TABLE IF EXISTS `user`;
    CREATE TABLE `user` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `username` varchar(30) NOT NULL COMMENT '用户名',
      `password` varchar(32) NOT NULL COMMENT '密码',
      `login_time` int(10) DEFAULT NULL COMMENT '登录时间',
      `login_ip` varchar(32) DEFAULT NULL COMMENT '登录IP',
      `login_counts` int(10) NOT NULL DEFAULT '0' COMMENT '登录次数',
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
    
    -- ----------------------------
    -- Records of user
    -- ----------------------------
    INSERT INTO `user` VALUES ('1', 'demo', 'fe01ce2a7fbac8fafaed7c982a04e229', '0', '', '0');
    INSERT INTO `user` VALUES ('2', 'admin', 'admin', '0', '', '0');
    

      

  • 相关阅读:
    Qt之QFileSystemWatcher
    office2007-安装程序找不到office.zh-cn*.文件
    Maven父子项目配置-多模块(multi-modules)结构
    Maven项目打包,Jar包不更新的问题
    开发Spring Shell应用程序
    Spring Shell参考文档
    Spring Shell介绍
    maven项目打包时生成dependency-reduced-pom.xml
    使用VBA批量转换Excel格式,由.xls转换成.xlsx
    修改MyEclipse取消默认工作空间
  • 原文地址:https://www.cnblogs.com/qinglin/p/7986826.html
Copyright © 2011-2022 走看看