Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] nie działa warunek
Forum PHP.pl > Forum > Przedszkole
sauron9
mam problem ze skryptem zmieniajacym hasło dostepu do strony. nie do końca działa mi tu if. hasło jest zmieniane, nawet jeżeli pozostawię puste inputy nowego hasła i potwierdzenia. sama zmiana nastepuje prawidłowo, ale hasło nie powinno być zmieniane, jeżeli któryś z input'ów jest pusty. formularz wymaga podania starego hasła, nowego oraz potwierdzenia nowego hasła.
oto skrypt zmiany tegoż hasła:
  1. <?php
  2. if((isset($_POST['haslo'])) && (isset($_POST['newHaslo'])) && (isset($_POST['newHaslo2'])) && (md5($_POST['haslo'])==$passwd) && (($_POST['newHaslo'])==($_POST['newHaslo2'])))
  3. {
  4. $new=md5($_POST['new_haslo']);
  5. $plik=fopen('password', 'w');
  6. fputs($plik, $new, 32);
  7. fclose($plik);
  8. $_GET['noError']='noError';
  9. $_GET['action']='login';
  10. include('index.php');  
  11. }
  12. ?>
nospor
do sprawdzania pustosci nie sluzy isset() tylko empty()
uli
isset sprawdza tylko czy dana zmienna ISTNIEJE (może być pusta).

W formularzu, w którym zmieniasz hasło powinieneś umieścić taki skrypt (na początku):

<script LANGUAGE = "JavaScript">
function checkForm(form) {

if (form.newHaslo.value == "" || form.newHaslo2.value == "")
{
alert ("Nie podałeś hasła")
return false;
}

if (form.newHaslo.value != form.newHaslo2.value)
{
alert ("Nowe hasło i jego potwierdzenie nie pasują do siebie!")
return false;
}

</SCRIPT>

Natomiast w samym formularzu:

  1. <FORM <tu argumenty action i method> onsubmit="return checkForm(this)>


Przy próbie wysłania pustego nowego hasła wyskoczy alert i nie przejdzie do następnej strony. To samo nastąpi gdy nowe hasło i jego potwierdzenie nie pasują do siebie (2-gi if).

Pozdrawiam
sauron9
dziękuję.

Nie chcę używać JS, nie każdy ma włączone - dlatego walidacja ma być w php.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.