Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Blokada pewnych znaków w haśle
Asig
post
Post #1





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 26.10.2013

Ostrzeżenie: (0%)
-----


Witam!

Mam problem z zablokowaniem niedozwolonych znaków w haśle.
Chcę aby użytkownik ustawiał bezpieczne hasło, tzn. z małych liter, dużych liter, cyfr, znaków specjalnych.
I żeby zablokować niedozwolone znaki, typu polskie znaki, ( ) ' " - itd.

Pierwszą połowę bez problemu zrobiłem, lecz z drugą połową (blokada niedozwolonych znaków) nie mogę sobie poradzić, ponieważ nie wiem jakie dokładnie znaki muszę blokować (przecież jest ich setki w różnych językach) i nie wiem za bardzo jak to napisać.

Skrypt wygląda tak:
  1. <?php
  2. $password = "sa%sds3";
  3.  
  4. if(preg_match('/[a-z]/', $password) AND preg_match('/[A-Z]/', $password) AND preg_match('/[0-9]/', $password) AND preg_match('/[\!\@\#\$\%\^\&\*]/', $password)) {
  5. echo'Twoje hasło zawiera małe litery, duże litery, cyfry i znaki specjalne.';
  6. } else {
  7. echo'Błąd!';
  8. }
  9. ?>


Proszę o pomoc.
Pozdrawiam!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
pitu
post
Post #2





Grupa: Zarejestrowani
Postów: 476
Pomógł: 96
Dołączył: 10.04.2008
Skąd: Koszalin

Ostrzeżenie: (0%)
-----


Offtop:
Dlaczego chcesz zabronić znaków specjalnych w haśle?

Ten post edytował pitu 18.10.2014, 17:20:58
Go to the top of the page
+Quote Post
Asig
post
Post #3





Grupa: Zarejestrowani
Postów: 37
Pomógł: 0
Dołączył: 26.10.2013

Ostrzeżenie: (0%)
-----


Cytat(pitu @ 18.10.2014, 18:20:40 ) *
Offtop:
Dlaczego chcesz zabronić znaków specjalnych w haśle?


Sam nie wiem...
Chcę aby dozwolone były znaki takie jak w większych serwisach typu gogle, Microsoft.
Tam przy rejestracji jak wpisze się niewłaściwy znak (np. ą, ż) wyskakuje:
Kod
Hasło może zawierać następujące znaki: a-z, A-Z, 0-9 oraz typowe znaki interpunkcyjne.


Ten sposób (viking) działa ok:
  1. $password = "sasds3-#@@!#$%&(){}*+,-./:;<>=?[]^_|~$@$%&^%%^";
  2.  
  3. if(!strlen(preg_replace('/[a-zA-Z0-9-_\@\!\#\$\%\&\(\)\{\}\*\+\,\-\.\/\:\;\<\>\=\?\[\]\^\_\|\~]/', '', $password)) > 0) {
  4. echo'ok';
  5. } else {
  6. echo'blad';
  7. }


Jest wszystko cacy.

Dziękuję wszystkim za pomoc (IMG:style_emoticons/default/smile.gif)

Ten post edytował Asig 18.10.2014, 18:19:12
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 11:55