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: 28716
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-2021 v.1.5 | design: diviXdesign & rainbowcolors