• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Kurs PHP odcinek 3 - problem z wyświetlaniem informacji o błędnym haśle

Object Storage Arubacloud
+1 głos
170 wizyt
pytanie zadane 19 maja 2021 w PHP przez poprostumichal89 Nowicjusz (130 p.)
edycja 19 maja 2021 przez poprostumichal89

Cześć,

pytanie dotyczy błędnego wyświetlania informacji o błędnym haśle (walidacja długości hasła). Otóż po wpisaniu zbyt krótkiego hasła i przesłaniu, informacja o błędzie nie wyświetla się od razu. Najpierw muszę wpisać jakieś wartości w inne inputy i je przesłać, dopiero wtedy (z "opóźnieniem") wyświetla się info o błędnym haśle. 

Zaznaczę, że ustawiłem tylko jeden warunek - hasło musi być dłuższe niż 3 znaki. Przy dołożeniu drugiego warunku - hasło krótsze niż 20 znaków, informacja o błędzie wyświetla się prawidłowo. Oto kod:

 $haslo=$_POST['haslo'];
                 if(strlen($haslo<3)) 
                 {
                     $validation_success=false;
                     $_SESSION['e_pass']="Password must contain min. 3 charcters";
                 }
?php
                    if (isset($_SESSION['e_pass']))
                    {
                        echo '<div class="error">'.$_SESSION['e_pass'].'</div>';
                        unset($_SESSION['e_pass']);
                    }
                ?>

Co może być przyczyną 

I jeszcze jedno pytanie. Zauważyłem, że przesunięcie skryptu PHP poniżej sekcji HTML w której przesyłane są zmienne powoduje podobny problem z pozostałymi inputami i informacjami o błędzie - tzn. skrypt zaczyna trochę świrować i z opóźnieniem walidować, wyświetlać informacje. Czy ktoś byłby w stanie wyjaśnić dlaczego tak się dzieje i co ma na to wpływ?

Z góry dziękuję za odpowiedzi :) 

1 odpowiedź

+1 głos
odpowiedź 19 maja 2021 przez SzkolnyAdmin Szeryf (86,980 p.)
Daj cały kod, bo wygląda na to, że kasujesz zmienną sesyjną. przed wyświetleniem.
komentarz 19 maja 2021 przez poprostumichal89 Nowicjusz (130 p.)

Dzięki za odpowiedź. Sytuacja już się wyjaśniła - powodem było gapiostwo - przesłałem jako argument do funkcji strlen() zmienną z warunkiem mniejsze od. Źle ustawione naiasy. Ta linia była problemem:

if(strlen($haslo<3)) 

Po zdebugowaniu jest ok:

if((strlen($haslo)<3)) 

Pozostaje pytanie dlaczego popsuty kod działał w taki sposób a nie inny, bo raczej powinno się wszystko wysypać i wywalić błąd w składni... Ale jeszcze potestuje. :) 

Podobne pytania

0 głosów
2 odpowiedzi 496 wizyt
pytanie zadane 5 czerwca 2022 w PHP przez TlenekWodoru Użytkownik (520 p.)
0 głosów
2 odpowiedzi 2,564 wizyt
pytanie zadane 26 listopada 2016 w PHP przez gipsy222 Nowicjusz (120 p.)
0 głosów
0 odpowiedzi 214 wizyt

92,682 zapytań

141,585 odpowiedzi

320,071 komentarzy

62,042 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...