Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Kalkulator
Forum PHP.pl > Forum > Przedszkole
Lukasz3nko
Witam, muszę napisać kalkulator w PHP. Mam problem. Chcę zrobić porównywanie (funkcja spr) zmiennej po to, jeśli np. w 1 okienku wpisze się 'ASAS', to wyskoczy, że błąd, to nie jest liczba. Błąd polega na tym, że jak wpisze liczbę np. '121' to pokazuje mi tym string. (Powinno być integer ?). Jak narazie wygląda tak:

  1. <?php
  2. function formularz (){
  3. <form action="#" method="post">
  4. PODAJ LICZBĘ :
  5. <input type="text" name="zm1" >
  6. <br>
  7. PODAJ LICZBĘ :
  8. <input type="text" name="zm2" >
  9. <br>
  10. PODAJ znak :
  11. <input type="text" name="znak" >
  12.  
  13. <br>
  14. <input type="submit" name="wykonaj" value=" = " >
  15. </form>
  16. ';
  17. }
  18.  
  19.  
  20. function oblicz($a,$b,$z){
  21.  
  22. $s='BRAK WYNIKU ';
  23. switch($z){
  24. case '+' :
  25. $s=$a+$b;
  26. break;
  27. case '-' :
  28. $s=$a-$b;
  29. break;
  30. case '*' :
  31. $s=$a*$b;
  32. break;
  33. case '/' :
  34. $s=$a/$b;
  35. break;
  36. default : echo 'ZŁY ZNAK ZMIENNEJ<br>';
  37. }
  38. return $s;
  39.  
  40. }
  41.  
  42. function sprawdzaj($a,$b,$c){
  43.  
  44. $a=$a+0;
  45. $b=$b+0;
  46.  
  47. $aaa=gettype($a);
  48. $bbb=gettype($b);
  49. $c=$znak;
  50.  
  51. if( ($aaa=='string') or ($aaa=='double') )
  52. { $spr=1; return $spr;} else { $spr=0; return $spr;echo 'zmienna nie jest zroumiala';}
  53.  
  54. if( ($bbb=='string') or ($bbb=='double') )
  55. { $spr=1; return $spr;} else { $spr=0; return $spr;echo 'zmienna nie jest zroumiala';}
  56.  
  57. if ($znak=='+')
  58. { $spr=1; return $spr;} else { $spr=0; return $spr;echo 'zmienna nie jest zroumiala';}
  59.  
  60. }
  61.  
  62. if (!isset($_POST['wykonaj'])){ formularz(); } else {
  63. $spr=sprawdzaj($_POST['zm1'],$_POST['zm2'],$_POST['znak']);
  64.  
  65. if ($spr==0){
  66.  
  67. $c=oblicz($_POST['zm1'],$_POST['zm2'],$_POST['znak']);
  68. echo 'WYNIK TO : '.round($c,2).'<br>';
  69. echo 'DZIAŁANIE : '.$zm1.$znak.$zm2.'<br/><br/>';
  70. echo 'TYPY ZMIENNYCH<br/>';
  71. echo '1 liczba: '.$zm1.' '.gettype($zm1).'<br>';
  72. echo '2 liczba: '.$zm2.' '.gettype($zm2).'<br>';
  73. echo 'wynik: '.$c.' '.gettype($c).'<br>';
  74. echo 'znak: '.$znak.' '.gettype($znak).'<br>';
  75. echo 'spr: '.$spr;
  76.  
  77. } else { echo 'BLAD'.'<br>';
  78.  
  79. echo 'DZIAŁANIE : '.$zm1.$znak.$zm2.'<br/><br/>';
  80. echo 'TYPY ZMIENNYCH<br/>';
  81. echo '1 liczba: '.$zm1.' '.gettype($zm1).'<br>';
  82. echo '2 liczba: '.$zm2.' '.gettype($zm2).'<br>';
  83. echo 'wynik: '.$c.' '.gettype($c).'<br>';
  84. echo 'znak: '.$znak.' '.gettype($znak).'<br>';
  85. echo 'spr: '.$spr;
  86.  
  87. }
  88. }
  89.  
  90. ?>


cycofiasz
Wszystkie zmienne w tym formularzu ($_POST) są typu string więc musisz zastosować rzutowanie typów, sprawdzanie składni
Gość
A mógłbyś pokazać jak to zastosować tutaj ?
Mephistofeles
Owszem
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.