Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Weryfikaja nr ISBN
Forum PHP.pl > Forum > Przedszkole
cojack
  1. <?php
  2. /** WERYFIKACJA NUMERU ISBN*/
  3. if(!isset($products_isbn))
  4. {
  5. $error_form["products_isbn"] = "Nr ISBN nie może być pusty. Proszę wprowadzić nr isbn";
  6. }
  7. else
  8. {
  9. $products_isbn = trim($products_isbn);
  10. $checkdigit = preg_replace("/[^0-9-]/","",strtoupper($products_isbn)); // strip to the basic ISBN
  11. if (strlen($checkdigit) != 13)
  12. {
  13. $error_form["products_isbn"] = "Podany ISBN-13 nie jest 13 cyfrowy (" . $products_isbn . ")";
  14. }
  15. }
  16. /* KONIEC WERYFIKACJI NUMERU ISBN*/
  17. ?>


Co o Tym myślicie? czy może zrobić jeszcze sprawdzanie sumy ISBN? Jest fajna klasa która to robi, ale jest pod php5 a na serwerze mamy php4 i nia da się jej zastosować...

Jakieś pomysły na rozszerzenie tej weryfikacji?
Max Damage
Myślę, że sprawdzenie sumy kontrolnej to jednak ważna sprawa. Możesz to sobie sam napisać, tu jest przedstawione jak to zrobić: LINK
cojack
  1. <?php
  2. function isbn_werify($products_isbn) {
  3. /* WERYFIKACJA NUMERU ISBN*/
  4.  
  5. $products_isbn = trim($products_isbn); //usuwam białe znaki
  6.  
  7. if(isset($products_isbn)) { //sprawdzam czy ISBN został nadany
  8.  
  9. $checkdigit = preg_replace("/-/","",$products_isbn); // usuwam -
  10.  
  11. if (is_numeric($checkdigit)) { //sprawdzam czy to są naprawdę cyfry
  12.  
  13. if (strlen($checkdigit) == 13) { //sprawdzam czy nr ma rzeczywiście 13 cyfr
  14.  
  15. $zapytanie = "SELECT products_isbn FROM products WHERE products_isbn = ".$products_isbn.""; //pobieranie z mysql nr ISBN
  16. $wynik = tep_db_query($zapytanie); // debilna funkcja oscommerce... ktora pobiera wynik
  17. $czy_znalazlo = mysql_num_rows($wynik); // sprawdzam czy cos zostalo pobrane, obiektowo mozna tozroibc tak: $czy_znalazlo 
    = $wynik->num_rows;
  18.  
  19. if (!$czy_znalazlo) { //warunek jeżeli znalazło to jedziemy dalej z testem na sume ISBN
  20.  
  21. $isbn_test = 10 - ( ( 1 * substr($checkdigit,0,1) + 3 * substr($checkdigit,1,1) + 1 * substr($checkdigit,2,1) + 3 * substr($checkdigit,3,1) + 1 * substr($checkdigit,4,1) + 3 * substr($checkdigit,5,1) + 1 * substr($checkdigit,6,1) + 3 * substr($checkdigit,7,1) + 1 * substr($checkdigit,8,1) + 3 * substr($checkdigit,9,1) + 1 * substr($checkdigit,10,1) + 3 * substr($checkdigit,11,1) ) % 10 ); //suma kontrolna nr ISBN
  22.  
  23. if (substr($checkdigit,12,1) === $isbn_test) { //sprawdzam czy suma ISBN zgadza się z 13 cyfrą w nr ISBN
  24.  
  25. return $res_prod["products_isbn"] = $products_isbn;
  26.  
  27. }
  28.  
  29. else {
  30. return $error_form["products_isbn"] = "To nie jest nr ISBN, suma kontrolna sie nie zgadza";
  31. }
  32.  
  33. }
  34.  
  35. else {
  36. return $error_form["products_isbn"] = "Podany nr ISBN już występuje w bazie danych";
  37. }
  38.  
  39. }
  40.  
  41. else {
  42. return $error_form["products_isbn"] = "Podany ISBN-13 nie jest 13 cyfrowy (" . $isbn . ")";
  43. }
  44. }
  45.  
  46. else {
  47. return $error_form["products_isbn"] = 'Podałeś nie prawidłowy nr <b>ISBN</b>';
  48. }
  49.  
  50. }
  51.  
  52. else {
  53. return $error_form["products_isbn"] = "Nr ISBN nie może być pusty. Proszę wprowadzić nr isbn";
  54. }
  55. /* KONIEC WERYFIKACJI NUMERU ISBN*/
  56.  }
  57. ?>


jak Wam się to widzi?
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.