Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sparwdzanie wpisanych danych!
Forum PHP.pl > Forum > PHP
mazur30
Mam kod php w którym wprowadzam ilość 4 produktów i chce się dowiedzieć jak zrobię ze foularz działa tylko jak wpiszemy liczby a nie litery.
  1. <?php
  2. //---require_once('wyjatki_plikowe.php');
  3. // utworzenie krótkich nazw zmiennych
  4. $iloscopon = $_POST['iloscopon'];
  5. $iloscoleju = $_POST['iloscoleju'];
  6. $iloscswiec = $_POST['iloscswiec'];
  7. $iloscszpachli = $_POST['iloscszpachli'];
  8. $adres = $_POST['adres'];
  9. $sposob_wysylki = $_POST['sposob_wysylki'];
  10. $sposob_platnosci = $_POST['sposob_platnosci'];
  11. $oferta_sklepu = $_POST['oferta_sklepu'];
  12. $promocje = $_POST['promocje'];
  13. $opinia = $_POST['opinia'];
  14. //---$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
  15. ?>
  16.  
  17. <html>
  18. <head>
  19. <meta http-equiv="Content-Type" content="text/html; charset=windows-1250" />
  20. <title>Części samochodowe — wyniki zamówienia</title>
  21. </head>
  22. <body>
  23. <h1>Części samochodowe</h1>
  24. <h2>wyniki zamówienia</h2>
  25. <?php
  26. $ilosc_calkowita=0;
  27. $ilosc_calkowita+=$iloscopon;
  28. $ilosc_calkowita+=$iloscoleju;
  29. $ilosc_calkowita+=$iloscswiec;
  30. $ilosc_calkowita+=$iloscszpachli;
  31.  
  32. $wartosc=0.00;
  33.  
  34. define('CENAOPON', 200);
  35. define('CENAOLEJU', 100);
  36. define('CENASWIEC', 20);
  37. define('CENASZPACHLI', 20);
  38.  
  39. $data=date('H:i, jS F');
  40.  
  41. echo '<p>Zamówienie przyjęte o ';
  42.  
  43. echo $data;
  44. echo '<br />';
  45. echo '<p>Zamówienie Państwa wygląda następująco:';
  46. echo '<br />';
  47.  
  48. if( $ilosc_calkowita == 0 )
  49. {
  50. echo 'Na poprzedniej stronie nie zostało złożone żadne zamówienie!<br />';
  51. }
  52. else
  53. {
  54. if ( $iloscopon>0 )
  55. echo $iloscopon.' opon<br />';
  56. if ( $iloscoleju>0 )
  57. echo $iloscoleju.' butelek oleju<br />';
  58. if ( $iloscswiec>0 )
  59. echo $iloscswiec.' świec zapłonowych<br />';
  60. if ( $iloscszpachli>0 )
  61. echo $iloscszpachli.' szpachla<br />';
  62. }
  63.  
  64. echo "Sposób wysyłki: $sposob_wysylki<br />";
  65. echo "Sposób płatności: $sposob_platnosci<br />";
  66. echo "Informacje na temat oferty sklepu: $oferta_sklepu<br />";
  67. echo "Informacje na temat promocji: $promocje<br />";
  68. echo "Twoja opinia na temat sklepu: $opinia<br />";
  69.  
  70. $wartosc =$iloscopon * CENAOPON + $iloscoleju * CENAOLEJU + $iloscswiec * CENASWIEC + $iloscszpachli * CENASZPACHLI;
  71. $wartosc=number_format($wartosc, 2, '.', ' ');
  72.  
  73. echo '<P>Wartość zamówienia wynosi '.$wartosc.'</P>';
  74.  
  75. echo '<P>Adres wysyłki to:
  76. '.$adres. '<br />';
  77.  
  78. $ciagwyjsciowy = $data."\t".$iloscopon." opon \t".$iloscoleju." butelek oleju\t"
  79. .$iloscswiec." swiec zaplonowych\t".$iloscszpachli." szpachli\t".$wartosc."PLN\t"."Adres: $adres\t".
  80. "Wysyłka: $sposob_wysylki"."\n";
  81.  
  82. // otwarcie pliku w celu dopisywania
  83. $fp = fopen('zamowienia.txt', 'a');
  84. fwrite($fp, $ciagwyjsciowy);
  85. fclose($fp);
  86. echo '<p>Zamówienie zapisane.</p>';
  87.  
  88. ?>
  89. </body>
  90. </html>
  91.  
  92.  
Pacio
Przelec po zmiennych funkcja is_numeric i zrob dalej co uwazasz za stosowne.
Brick
1. Może zacznij pisać po polsku

2. Uwaga! is_numeric() zwraca true w przypadku gdy wartość jest równa zero, mniejsza od zera, lub jest ułamkiem.
Dlatego trzeba sprawdzić wartości trochę dokładniej
  1. if ($zmienna>0 and is_numeric($zmienna))
  2. print "dobra wartość";
  3. else
  4. print "zła wartość";

Jeżeli nie dopuszczasz też ułamkow to trzeba i to sprawdzić.

3. "charset=windows-1250" - fuj
kiler129
is_numeric() przerabiałęm i działą to na serio kiepsko smile.gif
Dużo lepiej działa:

  1. if($foo>0&&$foo."" == (float)$foo) .....
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.