Webmaster общности: Predpriemach.com | SearchEngines.bg

    Ajax проверка за потребителско име

    Безплатни AJAX уроци

    Автор: federer_11

    <?php
    function validate($name) {
    if($name == '') {
    return '';
    }
    
    if(strlen($name) < 3) {
    return "<span id=\"warn\">Потребителското име е прекалено кратко!</span>\n";
    }
    
    switch($name) {
    case 'bob':
    case 'jim':
    case 'joe':
    case 'carol':
    return "<span id=\"warn\">Потребителското име съществува!</span>\n";
    }
    
    return "<span id=\"notice\">Потребителското име е OK!</span>\n";
    }
    
    echo validate(trim($_GET['name']));
    ?>

    Какво направихме в този файл: имаме една custom функция validate, правим проверка със strlen() за дължината на потребителското име. Ако то вече съществува ще ни изведе съобщение за грешка. С trim се премахват всички празни полета преди и след текста. Запаметяваме файла като validate.php

    Повече за конструкцията switch

    <script type="text/javascript">
    var http = false;
    
    if(navigator.appName == "Microsoft Internet Explorer") {
    http = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else
    {
    http = new XMLHttpRequest();
    }
    
    function validate(user) {
    http.abort();
    http.open("GET", "validate.php?name=" + user, true);
    http.onreadystatechange=function() {
    if(http.readyState == 4) {
    document.getElementById('foo').innerHTML = http.responseText;
    }
    }
    http.send(null);
    }
    </script>
    
    <h1>Избери име:</h1>
    
    
    <form>
    <input type="text" onkeyup="validate(this.value)" />
    <div id="foo"></div>
    </form>

    Оригинален източник:
    http://daniel.lorch.cc/docs/ajax_simple/

    Втория код
    проверява в базата данни дали потребителското име съществува .
    Видео ДЕМОТО ползва базата данни на уеб турист :

    Файловете са 2:
    user_check

    <html>
    <head>
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
    
    <script language="javascript">
    var xmlhttp
    
    function showHint(str)
    {
    if (str.length==0)
    {
    document.getElementById("txtHint").innerHTML="";
    return;
    }
    xmlhttp=GetXmlHttpObject();
    if (xmlhttp==null)
    {
    alert ("Your browser does not support XMLHTTP!");
    return;
    }
    var url="gethint.php";
    url=url+"?q="+str;
    url=url+"&sid="+Math.random();
    xmlhttp.onreadystatechange=stateChanged;
    xmlhttp.open("GET",url,true);
    xmlhttp.send(null);
    }
    
    function stateChanged()
    {
    if (xmlhttp.readyState==4)
    {
    document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
    }
    }
    
    function GetXmlHttpObject()
    {
    if (window.XMLHttpRequest)
    {
    // code for IE7+, Firefox, Chrome, Opera, Safari
    return new XMLHttpRequest();
    }
    if (window.ActiveXObject)
    {
    // code for IE6, IE5
    return new ActiveXObject("Microsoft.XMLHTTP");
    }
    return null;
    }
    </script>
    </head>
    <body>
    
    <form>
    Username: <input type="text" id="txt1" onkeyup="showHint(this.value)" />
    </form>
    <p><span id="txtHint"></span></p>
    
    
    
    
    </body>
    </html>

    gethint.php

    <?php
    $db_name = '';
    $db_user = '';
    $db_pass = '';
    mysql_connect(localhost,$db_user,$db_pass);
    mysql_select_db($db_name) or die( "Unable to select database");
    
    $q=htmlspecialchars($_GET["q"]);
    
    $query="SELECT username from phpbb_users where username like '$q'";
    $result=mysql_query($query);
    
    $num=mysql_num_rows($result);
    
    
    
    if ($num == 0)
    {
    $response="свободен";
    }
    else
    {
    $response="акаунта ".$q." е зает";
    }
    
    
    echo $response;
    ?>
    

    Източника на втория код е:
    http://www.w3schools.com/php/php_ajax_suggest.asp
    само, че е преработен да работи с база данни (в случая с база данни на phpbb2 форум).

    Оставете коментар