Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Zast±pienie wyj±tków TRY na IF
Forum PHP.pl > Forum > Przedszkole
Gigante
Witam

Z php i mysqlem nie mam duzego doswiadczenia dlatego prosze po mnie zbyd ostro nie jechac winksmiley.jpg

mam funkcje ktora jesli sie dobrze wykona zwraca TRUE i wtedy dziala wyjatek TRY lub jesli zwraca FALSE to odnosi sie do CATCH (Exception $e)

W jaki sposob zastapic wyjatki aby po zwroceniu przez funkcje TRUE dzialalo mi to wszystko na IF i ELSE


ps. Ľródło: php i mysql - tworzenie stron www - vademecum profesjonalisty / np: listing 26.11
yaotzin
A zapodaj jakim¶ kodem czy có¶.... Bo jako¶ nie mam tej ksi±żki, a nie za bardzo rozumiem pytanie...
Gigante
  1. <?php
  2.  
  3. // utworzenie krótkich nazw zmiennych
  4. $email=$_POST['email'];
  5. $nazwa_uz=$_POST['nazwa_uz'];
  6. $haslo=$_POST['haslo'];
  7. $haslo2=$_POST['haslo2'];
  8.  
  9. // rozpoczęcie sesji, która może okazać się konieczna póĽniej
  10. // rozpoczęcie w tym miejscu, musi ona zostać przekazana przed nagłówkami
  11.  
  12.  // dołączenie plików funkcji tej aplikacji
  13.  require_once('funkcje_zakladki.php'); 
  14.  
  15.  try
  16.  {  
  17.  // sprawdzenia wypełnienia formularzy
  18.  if (!wypelniony($_POST))
  19.  {
  20. throw new Exception('Formularz wypełniony nieprawidłowo — proszę wrócić i spróbować ponownie.');
  21.  }
  22.  
  23.  // nieprawidłowy adres poczty elektronicznej
  24.  if (!prawidlowy_email($email))
  25.  {
  26. throw new Exception('Nieprawidłowy adres poczty elektronicznej — proszę wrócić i spróbować ponownie.');
  27.  } 
  28.  
  29.  // różne hasła
  30.  if ($haslo != $haslo2)
  31.  {
  32. throw new Exception('Niepasujące do siebie hasła — proszę wrócić i spróbować ponownie.');
  33.  }
  34.  
  35.  // sprawdzenie długo¶ci hasła
  36.  if (strlen($nazwa_uz)>16)
  37.  {
  38. throw new Exception('Nazwa uzytkownika nie może mieć więcej niż 16 znaków — proszę wrócić i spróbować ponownie.');
  39.  }
  40.  
  41.  // sprawdzenie długo¶ci nazwy użytkownika
  42.  if (strlen($haslo)<6)
  43.  {
  44. throw new Exception('Hasło musi mieć co najmniej 6 znaków — proszę wrócić i spróbować ponownie.');
  45.  }
  46.  
  47.  // próba zarejestrowania
  48.  rejestruj($nazwa_uz, $email, $haslo);
  49.  // rejestracja zmiennej sesji
  50.  $_SESSION['prawid_uzyt'] = $nazwa_uz;
  51.  
  52.  
  53.  // stworzenie łącza do strony członkowskiej
  54.  tworz_naglowek_html('Rejestracja pomy¶lna');
  55.  echo 'Rejestracja zakończyła się sukcesem. Proszę udać się na stronę '
  56.  .'członkowską aby skonfigurować swoje zakładki!';
  57.  tworz_HTML_URL('czlonek.php', 'Strona członkowska');
  58.  
  59.  // koniec strony
  60.  tworz_stopke_html();
  61.  }
  62.  catch (Exception $e)
  63.  {
  64.  tworz_naglowek_html('Problem:');
  65.  echo $e->getMessage();
  66.  tworz_stopke_html();
  67.  exit;
  68.  } 
  69. ?>


i do tego funkcja
  1. <?php
  2. require_once('funkcje_bazy.php');
  3.  
  4. function rejestruj($nazwa_uz, $email, $haslo)
  5. // zarejestrowanie nowej osoby w bazie danych
  6. // zwraca true lub komunikat o błędzie
  7. {
  8.  // połączenie z bazą danych
  9. $lacz = lacz_bd();
  10.  
  11. // sprawdzenie, czy nazwa użytkownika nie powtarza się
  12. $wynik = $lacz->query("select * from uzytkownik where nazwa_uz='$nazwa_uz'"); 
  13. if (!$wynik)
  14.  throw new Exception('Wykonanie zapytania nie powiodło się.');
  15. if ($lacz->num_rows>0) 
  16.  throw new Exception('Nazwa użytkownika zajęta — proszę wrócić i wybrać inną.');
  17.  
  18. // jeżeli wszystko w porządku, umieszczenie w bazie danych
  19. $wynik = $lacz->query("insert into uzytkownik values 
  20.  ('$nazwa_uz', sha1('$haslo'), '$email')");
  21. if (!$wynik)
  22. throw new Exception('Rejestracja w bazie danych niemożliwa — proszę spróbować póĽniej.');
  23.  
  24. return true;
  25. }
  26. ?>
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.