Loading:

Książka Zend Framework 3. Poradnik Programisty.

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


Ten wpis posiada swój wątek na forum

Wszystkie pytania prosimy kierować właśnie tam ponieważ komentarze to miejsce na poprawki do kodu lub alternatywne rozwiązania i pytania nie będą publikowane

http://forum.funkcje.net/forum/viewtopic.php?f=2&t=1979

Dane do logowania na forum są takie same jak na funkcje.net



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