Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Weryfikaja nr ISBN, Taka mała weryfikacja
cojack
post
Post #1





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


  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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Max Damage
post
Post #2





Grupa: Zarejestrowani
Postów: 246
Pomógł: 19
Dołączył: 14.06.2007

Ostrzeżenie: (0%)
-----


Myślę, że sprawdzenie sumy kontrolnej to jednak ważna sprawa. Możesz to sobie sam napisać, tu jest przedstawione jak to zrobić: LINK
Go to the top of the page
+Quote Post
cojack
post
Post #3





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


  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?

Ten post edytował cojack 8.07.2008, 13:04:47
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.09.2025 - 22:06