ForumCa│a strona

Nawigacja

Aktualnie online

GoÂci online: 2

U┐ytkownikˇw online: 0

ú▒cznie u┐ytkownikˇw: 25,375
Najnowszy u┐ytkownik: martyna23

Logowanie

Nazwa u┐ytkownika

Has│o



Zarejestruj siŕ

Odzyskaj has│o

Shoutbox

Musisz zalogowaŠ siŕ, aby mˇc dodaŠ wiadomoŠ.

JazOOn
17.05.2023 21:20:44
Wasze zdrowie!

hoopak
06.05.2023 14:23:43
Pierwsze konto w 2005 roku, wi├¬c mi r├│wnie┬┐ wychodzi pe┬│noletno┬Â├Ž Grin

JazOOn
16.04.2023 22:02:01
krasnal i websrv u mnie ca┬│y czas na kompie :-) no i nie┬Âmiertelny paj┬▒czek

Szapko
16.04.2023 02:42:07
Kusi mnie troche wr├│ci├Ž do korzeni i stworzy├Ž jak┬▒┬ stron├¬ na PF Smile

JazOOn
28.03.2023 20:46:59
uuu, Szapko to najwy┬┐ej piwo mo┬┐esz :-)

Pobierz now± wersjê
Pobierz podrêcznik
Zobacz inne oficjalne Supporty
Statystyki supportu
PHP-Fuson PL na Facebooku

RSS

Nawigacja

jQuery i PF v7 w jednym stali domu... cz.2

Napisane przez Wooya dnia 15 pa╝dziernika 2009 17:58 · 0 komentarzy · 6658 czyta˝ · Drukuj · Facebook · Wykop

Streszczenie:

Czyli jak wymusi├Ž u┬┐ywanie przez u┬┐ytkownik├│w "trudnych" hase┬│ oraz sprawdzenie poprawno┬Âci adresu e-mail...

W poprzednim odcinku sprawdzili┬Âmy, czy d┬│ugo┬Â├Ž has┬│a jest prawid┬│owa. uzupe┬│nijmy poprzedni skrypt o sprawdzanie si┬│y has┬│a. W tym celu dodajemy funkcj├¬ getPasswordStrength() (znalezion┬▒ gdzie┬ w necie ;), kt├│ra zwraca warto┬Â├Ž int w zakresie 0-100. Dla silnego has┬│a zak┬│adamy, ┬┐e warto┬Â├Ž musi by├Ž >=70:

?>
<script type='text/javascript'>
	function getPasswordStrength(H){
		var D=(H.length);
		if (D<4) { D=0 }
		if(D>5){D=5}
		var F=H.replace(/[0-9]/g,"");
		var G=(H.length-F.length);
		if(G>3){G=3}
		var A=H.replace(/\W/g,"");
		var C=(H.length-A.length);
		if(C>3){C=3}
		var B=H.replace(/[A-Z]/g,"");
		var I=(H.length-B.length);
		if(I>3){I=3}
		var E=((D*10)-20)+(G*10)+(C*15)+(I*10);
		if(E<0){E=0}
		if(E>100){E=100}
		return E
	}
    var profile_errors = 0;
    $(function(){
        $("input[@type=password]").blur(function(){
           profile_errors = 0;
           $("#"+$(this).attr("name")+"_validate").remove();
           if ($(this).val().length>0) {
             if ($(this).val().length<6 || $(this).val().length>20) {
	      $(this).after("<div style='background:yellow;border:1px solid red;color:red;padding:2px' id='"+$(this).attr("name")+"_validate'>Has┬│o musi posiada├Ž minimum 6 i maksimum 20 znak├│w...</div>");
              profile_errors++;
             } else if (getPasswordStrength($(this).val())<70) {
	      $(this).after("<div style='background:yellow;border:1px solid red;color:red;padding:2px' id='"+$(this).attr("name")+"_validate'>Has┬│o musi by├Ž silne, czyli zawiera├Ž ma┬│e i du┬┐e litery, znaki specjalne oraz cyfry...</div>");
              profile_errors++;
             }
           }
        });
        $("input[@name=update_profile]").bind("click", function(){
            if (profile_errors>0) {
                alert("Niekt├│re pola zosta┬│y wype┬│nione nieprawid┬│owo!\nNie mo┬┐na zaktualizowa├Ž profilu!");
                return false;
            }
        });
    });
</script>
<?php

W powy┬┐szym przyk┬│adzie dla ka┬┐dego pola INPUT typu PASSWORD sprawdzimy d┬│ugo┬Â├Ž oraz si┬│├¬ has┬│a i nie pozwolimy na zapisanie profilu, je┬┐eli kt├│rykolwiek warunek nie zostanie spe┬│niony.

Ok. Spraw├¬ hase┬│ mamy z g┬│owy :) Zajmijmy si├¬ walidacj┬▒ adresu email przed wys┬│aniem formularza profilu. W tym celu wykorzystamy funkcj├¬ isValidEmailAddress() (tak┬┐e znalezion┬▒ w necie ;). Zmieniamy tak┬┐e filozofi├¬ sprawdzania b┬│├¬d├│w, jako ┬┐e b├¬dziemy tak┬┐e sprawdza├Ž inne pola poza has┬│em. W tym celu zn├│w z pomoc┬▒ przyjd┬▒ nam selektory jQuery. Ka┬┐dy DIV z komunikatem b┬│├¬du b├¬dzie posiada┬│ klas├¬ profile_errors. Przed wys┬│aniem formularza sprawdzimy liczb├¬ selektor├│w z t┬▒ klas┬▒ i je┬Âli liczba b├¬dzie <> 0 wtedy wy┬Âwietlimy komunikat o b┬│├¬dzie:
?>
<script type='text/javascript'>
        function isValidEmailAddress(emailAddress) {
	  var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
	  return pattern.test(emailAddress);
        }
	function getPasswordStrength(H){
		var D=(H.length);
		if (D<4) { D=0 }
		if(D>5){D=5}
		var F=H.replace(/[0-9]/g,"");
		var G=(H.length-F.length);
		if(G>3){G=3}
		var A=H.replace(/\W/g,"");
		var C=(H.length-A.length);
		if(C>3){C=3}
		var B=H.replace(/[A-Z]/g,"");
		var I=(H.length-B.length);
		if(I>3){I=3}
		var E=((D*10)-20)+(G*10)+(C*15)+(I*10);
		if(E<0){E=0}
		if(E>100){E=100}
		return E
	}
    $(function(){
        $("input[@type=password]").blur(function(){
           $("#"+$(this).attr("name")+"_validate").remove();
           if ($(this).val().length>0) {
             if ($(this).val().length<6 || $(this).val().length>20) {
	      $(this).after("<div class='profile_errors' style='background:yellow;border:1px solid red;color:red;padding:2px' id='"+$(this).attr("name")+"_validate'>Has┬│o musi posiada├Ž minimum 6 i maksimum 20 znak├│w...</div>");
             } else if (getPasswordStrength($(this).val())<70) {
	      $(this).after("<div class='profile_errors' style='background:yellow;border:1px solid red;color:red;padding:2px' id='"+$(this).attr("name")+"_validate'>Has┬│o musi by├Ž silne, czyli zawiera├Ž ma┬│e i du┬┐e litery, znaki specjalne oraz cyfry...</div>");
             }       
           }
        });
        $("input[@name=user_email]").blur(function(){
            $("#"+$(this).attr("name")+"_validate").remove();
            if (!isValidEmailAddress($(this).val())) {
	      $(this).after("<div class='profile_errors' style='background:yellow;border:1px solid red;color:red;padding:2px' id='"+$(this).attr("name")+"_validate'>Podany adres email wygl┬▒da na nieprawid┬│owy...</div>");
            }
        });
        $("input[@name=update_profile]").bind("click", function(){
            if ($(".profile_errors").size()>0) {
                alert("Niekt├│re pola zosta┬│y wype┬│nione nieprawid┬│owo!\nNie mo┬┐na zaktualizowa├Ž profilu!");
                return false;
            }
        });
    });
</script>
<?php

W┬│a┬Ânie uzyskali┬Âmy walidator profilu u┬┐ytkownika, kt├│ry sprawdza najwa┬┐niejsze pola profilu PF v7. Oczywi┬Âcie walidowa├Ž mo┬┐na wszystkie pola, ale to zostawiam inwencji tw├│rczej czytaj┬▒cych ten artyku┬│ ;)

W nastêpnym odcinku... Nie wiem co, ale na pewno o jQuery i PF v7 ;)

Komentarze

Brak komentarzy. Mo┐e czas dodaŠ swˇj?

Dodaj komentarz

Zaloguj siŕ, aby mˇc dodaŠ komentarz.

Oceny

Tylko zarejestrowani u┐ytkownicy mog▒ oceniaŠ zawartoŠ strony
Zaloguj siŕ lub zarejestruj, ┐eby mˇc zag│osowaŠ.

Brak ocen. Mo┐e czas dodaŠ swoj▒?
Created by Arox Copyright (C) 2004
Copyright (C) 2004 - 2018 Ekipa PHP-Fusion.pl