Loading:


    Sprawdzanie podczas rejestracji czy podany login jest wolny PHP i AJAX

    Skrypt sprawdza czy login podany podczas rejestracji nie jest już zajęty.

    Na początek podam SQL do utworzenia tabeli:

    CREATE TABLE `uzytkownicy` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , `login` VARCHAR( 100 ) NOT NULL , `haslo` VARCHAR( 255 ) NOT NULL , `mail` VARCHAR(150 ) NOT NULL , `act` INT NOT NULL ) ENGINE = MYISAM ;


    Teraz będzie nam potrzeba biblioteka do obsługi ajax, użyjemy prototype [ Pobierz ]


    Następnie przejdźmy do pliku HTML z polem do podania loginu

    //w tym miejscu zostanie wyświetlona informacja czy login jest dostępny czy zajęty
    <div id="errorResult"></div>
    <form method="post" action="javascript:checkLogin();">
    <input type="text" id="login" name="login" />
    input type="submit" name="Submit" id="checkButton" value="Sprawdź dostępość" />
    </form>


    W sekcji head musimy jeszcze pobrać 2 pliki js dodajmy więc ten kod pod <title></title>

    <script language="javascript" type="text/javascript" src="prototype.js"></script>
    <script language="javascript" type="text/javascript" src="check_login.js"></script>


    Czas na plik check_login.js

    function checkLogin(){
    var login = document.getElementById("login").value;
    var errorResult = document.getElementById("errorResult");
     if(login==''){
     errorResult.innerHTML = 'Błąd: Nie podano <b>Loginu</b>';
     }
     var myAjax = new Ajax.Request(
     'check_login.php',
      {
       method: 'post',
       parameters: "login="+login;
       onComplete: showResponse
       });
    }
    function showResponse(text){
    var errorResult = document.getElementById("errorResult");
    registerResult.innerHTML  = text.responseText;
    }



    Najwyższy czas na plik check_login.php

    <?php
    session_start();
    function lacz_bd()
    {  
      $db = new mysqli('localhost', 'uzytkownik', 'haslo', 'nazwa_bazy');    
        if (! $db)
          return false;
       $db->autocommit(TRUE);
       return $db;
    }
    $zapytanie = "select login from uzytkownicy WHERE login='$login'";
    $wynik = $db->query($zapytanie);
    $ile_znalezionych = $wynik->num_rows;
      if($ile_znalezionych>0){
      echo 'Login jest zajęty';
      exit();
      }else{
      echo 'Login jest wolny';
      exit();
      }
    ?>


    Odpalamy plik HTML i sprawdzamy jak działa, pamiętaj aby dodać jakieś przykładowe wpisy to tabeli uzytkownicy


    Napisz Artyku³

    Listing

    niema




    Dodano przez: igor
    Ranga: Administrator serwisu Punktów: 0
    Komentarze użytkowników
    W funkcji showResponse wydaje mi się, że jest błąd, gdyż zamiast: registerResult.innerHTML = text.responseText; powinno być: errorResult.innerHTML = text.responseText; Jeśli się tego nie zmieni, odpowiedź nie działa.
    autor: peter12 | 12567 | 2011-08-30 01:35:27


    Świetny skrypt właśnie tego szukałem. U mnie działa.
    autor: body31 | 12714 | 2012-01-18 12:39:00


      • Tre¶æ komentarza
        Kod do komentarza (opcjonalnie)
        PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
        Autor
        Token
        token

         

         








    funkcje.net
    Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-2025 v.1.5 | design: diviXdesign & rainbowcolors