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 :)