Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Przerywanie skryptu kiedy if jest niespelniony
Forum PHP.pl > Forum > Przedszkole
DeReK_PL
Witam!
Napisałem skrypt wysyłający rekordy do bazy danych tylko mam jeden problem.
Co mam zrobić kiedy jakiś z warunków if jest niespełniony żeby dane nie zostały przesłane?

Przykład:
  1. <?php
  2. $haslo = $_POST['haslo'];
  3. $phaslo = $_POST['phaslo']
  4.  
  5. $query = (" insert into users values ($haslo)");
  6.  
  7. if ($haslo !== $phaslo){
  8. echo('popraw haslo');
  9. }
  10. ?>


wysyła mi tylko komunikat że hasło jest niepoprawne ale dane do sql i tak przesyła
Mustava
skoro wysyłasz gdy jest spełniony warunek to gdy nie będzie on spełniony to raczej nic nie wyślesz
najlepiej pokaż choćby kawałek skryptu tongue.gif
karolo_k
No nie wiem czy o to chodzi ale jak jakiś warunek bedzie nie spełniony to możesz zrobic tak:
  1.  
  2. if ($haslo !== $phaslo){
  3.  
  4. echo('popraw haslo');
  5. else
  6. die("Warunek nie spelniony")
DeReK_PL
Chodzi mi to to że jak warunki będą spełnione do dane mają się przesłać do sql a jeśli nie to ma się wyświetlić komunikat,a w moim przypadku wyświetla się error a dane są i tak wysyłane
bastard13
Najlepiej to pokaż kod do momentu, gdy wykonujesz query, bo z tego co tutaj pokazałeś, to nic nie wynika.
Zakładam, że query ma zostać wykonane w przypadku takich samych haseł, a nie wykonane w innym przypadku, tak?
  1. if ($haslo === $phaslo)
  2. {
  3. //hasła takie same, więc wykonujemy zapytanie
  4. }
  5. else
  6. {
  7. //hasła różne, więc możemy zapytać user'a wtf?
  8. }
Mustava
  1. <?php
  2. $haslo = $_POST['haslo'];
  3. $phaslo = $_POST['phaslo']
  4.  
  5.  
  6. if (($haslo !== $phaslo) || ($liczba_znakow_w_loginie>8) || ($mail_nie_tego)){
  7. echo('popraw haslo');
  8. }
  9. else {
  10. $query = " insert into users (haslo) values ('".$haslo."')";
  11. mysql_query($query);
  12. echo "OK, wstawione";
  13. }
  14.  
  15. ?>
DeReK_PL
Chodzi mi o to co napisał @Mustava.
Tylko co jak chcę mieć kilka warunków np:
-ograniczenia znaków w loginie
-wyrażenia regularne do e-maila
Mustava
looknij do góry - poprawiłem przykład
DeReK_PL
Ja raczej szukałem innego rozwiązania które zaobserwowałem w innych skryptach.
  1. <?php
  2. $haslo = $_POST['haslo'];
  3. $phaslo = $_POST['phaslo']
  4.  
  5. $query = (" insert into users values ($haslo)");
  6.  
  7. // 1 warunek
  8. if ($haslo !== $phaslo){
  9. echo('popraw haslo');
  10. }
  11. // 2 warunek
  12. if ($email !== $pemailo){
  13. echo('popraw email');
  14. }
  15. // 3 warunek
  16. if ($login !== $plogin){
  17. echo('popraw login');
  18. }
  19. ?>
  20.  

Mają zrobione to na tej zasadzie i jakimś cudem im się skrypt przerywa smile.gif
Dex19

If, jak jest niespełniony, to się nie wykonuje, więc jeśli sobie więcej warunków zagnieździsz to będziesz miał automatycznie przerywanie IF'ów na wypadek niespełnienia któregoś z warunków


  1. <?php
  2. $haslo = $_POST['haslo'];
  3. $phaslo = $_POST['phaslo']
  4.  
  5. $query = (" insert into users values ('".$haslo.")"); // tu w/g mnie lepiej dodać kilka znaków przy haśle
  6.  
  7. if ($haslo == $phaslo){ // sprawdzamy hasło, jeśli ok - sprawdzamy email
  8. if ($email == $pemailo){ // sprawdzamy email, jeśli ok - sprawdzamy login
  9. if ($login == $plogin){ // sprawdzamy login, jeśli ok - wykonujemy query
  10.  
  11. mysql_query($query); // wykonujemy nasze $query
  12.  
  13. }else{ //niepoprawny login
  14. echo('popraw login');
  15. }
  16.  
  17. }else{
  18. echo('popraw email');
  19. }
  20.  
  21. }else{ // jeśli hasło nie poprawne - pozostałe warunki oczywiście się nie wykonają
  22. echo('popraw haslo');
  23. }
  24.  
  25. ?>
DeReK_PL
Dokładnie o to mi chodziło!
Dzięki
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.