• AJAX验证用户是否存在


    <html>
    <head>
    <title>
    ajax验证
    </title>
    </head>
    <body>
    <input type="text" name="username" id="username"/>
    <input type="button" name="button" value="检测" onclick="validation();" />
    <div id="info"></div>
    <script>
    function validation(){
        var name=document.getElementById('username').value;
    
        var data="username="+name+"&password="+pwd;
        ajax("verify.php",data,function(result){
            document.getElementById("info").innerHTML=result;
            });
    }
    
    function ajax(url,data,onsuccess){
        var xmlhttp=new XMLHttpRequest;
        xmlhttp.open("POST",url,true);
        xmlhttp.onreadystatechange = function(){
            if(xmlhttp.readyState==4){
                if(xmlhttp.status==200){
                    onsuccess(xmlhttp.responseText);
                }else{
                    alert("ajax错误");
                }
            }
        }
        xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        xmlhttp.send(data);
    }
    
    </script>
    </body>
    </html>

    下面是服务端代码

    <?php
    $con=@mysql_connect('localhost','root','');
    $user=$_POST['username'];
    mysql_query('use ms');
    $sql = "select `username` from `user` where `username` = '$user'";
    $res=mysql_query($sql);
    $test=mysql_fetch_array($res);
    if($test){
      echo "存在用户".$user;
    }else{
      echo "不存在此用户".$user;
    }
    
    ?>

    数据库用的是见了一个叫ms的数据库,然后一个标user

    其中有几个地方新手需要注意

    1.设置请求头
    xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); //这个设置不对的话会导致后台接收不到数据

    2.sql语句里面的`号和'区分开来
    正确语法
    $sql = "select `username` from `user` where `username` = '$user'";

    3.mysql_query请求返回的资源需要用mysql_fetch_array检测才能用if语句判断
    $res=mysql_query($sql);
    $test=mysql_fetch_array($res);
    if($test){。。。。}

    4.检查错误时,可以先print_r($_POST)看是不是客户端ajax未获取到数据

    自学php一个月了,越发觉得自己需要多敲代码练习

  • 相关阅读:
    window10 禁止更新
    安装node.msi 格式的文件失败
    url参数的转码和解码
    Linux12-内存管理
    C++四种cast
    Linux内核5-系统调用
    Linux内核3-进程管理
    UNIX12-线程(下)线程控制
    UNIX11-线程(上)
    Linux内核8-中断下半部和推后执行的工作(下半部)
  • 原文地址:https://www.cnblogs.com/txxt/p/5634741.html
Copyright © 2020-2023  润新知