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
Najwyższy czas na plik check_login.php
<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;
}
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
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
Listing
niema
Dodano przez: igor
Ranga: Administrator serwisu Punktów: 0
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
:: Losowe artykuły
:: Wymiana linków
Modowe inspiracje |
Android Gry i Aplikacje |
ZaplanujTransport.pl: Przeprowadzki, transport, aukcje |
Logo dla firmy |
Change Tires - Car Weather Forecast Reminder |
Laminas: MVC Framework for PHP |
IT Books Reviews and Programming: JS, JAVA, PHP, ANDROID, CSS |
Katalog roślin |
Programming articles: JAVA, PHP, C++, Python, JavaScript |
Kancelaria Adwokacka Łukasz Huszno