-
Notifications
You must be signed in to change notification settings - Fork 0
/
CalcController.php
61 lines (59 loc) · 1.47 KB
/
CalcController.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<?php
namespace App\Controller;
use Demolidor\Controller;
class CalcController extends Controller{
function index(){
$a=@$_GET['a'];
$b=@$_GET['b'];
$op=@$_GET['op'];//mul,add,sub,div
if($this->validInput($a,$b,$op) && $this->isAjax()){
switch ($op) {
case 'add':
$result=bcadd($a,$b);
break;
case 'div':
$result=bcdiv($a,$b);
break;
case 'mul':
$result=bcmul($a,$b);
break;
case 'sub':
$result=bcsub($a,$b);
break;
}
if(strlen($result)>8){
$this->json(['error'=>true]);
}else{
return $this->json([
'error'=>false,
'result'=>$result
]);
}
}else{
$this->json(['error'=>true]);
}
}
function validInput($a,$b,$op){
if(
is_numeric($a) AND
is_numeric($b) AND
strlen($a)<=8 AND
strlen($b)<=8
){
switch($op){
case 'mul':
case 'add':
case 'sub':
case 'div':
return true;
break;
default:
return false;
break;
}
}else{
false;
}
}
}
?>