Witam,
wraca stary temat mojego kalkulatora na którego pomysł znalazłem ale teraz mam problemy. Otóż przy naciśnięciu znaku + lub - lub * / dzieli mi przez zero. Nie mam pojęcia dlaczego.
Zamieszczam kod.
<?php
function licz($tmp)
{
switch ($tmp)
{
case '1' : $_SESSION['wynik'] = (($_SESSION['wynik'])*10)+1; break;
case '2' : $_SESSION['wynik'] = (($_SESSION['wynik'])*10)+2; break;
case '3' : $_SESSION['wynik'] = (($_SESSION['wynik'])*10)+3; break;
case '4' : $_SESSION['wynik'] = (($_SESSION['wynik'])*10)+4; break;
case '5' : $_SESSION['wynik'] = (($_SESSION['wynik'])*10)+5; break;
case '6' : $_SESSION['wynik'] = (($_SESSION['wynik'])*10)+6; break;
case '7' : $_SESSION['wynik'] = (($_SESSION['wynik'])*10)+7; break;
case '8' : $_SESSION['wynik'] = (($_SESSION['wynik'])*10)+8; break;
case '9' : $_SESSION['wynik'] = (($_SESSION['wynik'])*10)+9; break;
case '0' : $_SESSION['wynik'] = (($_SESSION['wynik'])*10)+0; break;
}
return $tmp;
}
function liczy($tmp)
{
switch ($tmp)
{
case '1' : $_SESSION['liczba'] = (($_SESSION['liczba'])*10)+1; break;
case '2' : $_SESSION['liczba'] = (($_SESSION['liczba'])*10)+2; break;
case '3' : $_SESSION['liczba'] = (($_SESSION['liczba'])*10)+3; break;
case '4' : $_SESSION['liczba'] = (($_SESSION['liczba'])*10)+4; break;
case '5' : $_SESSION['liczba'] = (($_SESSION['liczba'])*10)+5; break;
case '6' : $_SESSION['liczba'] = (($_SESSION['liczba'])*10)+6; break;
case '7' : $_SESSION['liczba'] = (($_SESSION['liczba'])*10)+7; break;
case '8' : $_SESSION['liczba'] = (($_SESSION['liczba'])*10)+8; break;
case '9' : $_SESSION['liczba'] = (($_SESSION['liczba'])*10)+9; break;
case '0' : $_SESSION['liczba'] = (($_SESSION['liczba'])*10)+0; break;
}
return $tmp;
}
if(!isset($_SESSION['wynik'])) {
$_SESSION['wynik']='0';
}
if(!isset($_SESSION['liczba'])) {
$_SESSION['liczba']='1';
}
/*if(!isset($_SESSION['tmp']))
{
$_SESSION['tmp'] = '0';
}*/
if(isset($_POST['send'])) {
if($_POST['wynik']==0)
{
licz($_POST['send']);
}
else
{
liczy($_POST['send']);
}
}
if(isset($_POST['sign'])) {
switch($_POST['sign'])
{
case '+' :
$_SESSION['wynik']=$_SESSION['wynik']+$_SESSION['liczba'];
case '-' :
$_SESSION['wynik']=$_SESSION['wynik']-$_SESSION['liczba'];
case '*' :
$_SESSION['wynik']=$_SESSION['wynik']*$_SESSION['liczba'];
case '/' :
$_SESSION['wynik']=$_SESSION['wynik']/$_SESSION['liczba'];
//case '=' : $_SESSION['liczba']=0;
case 'RESET' :
$_SESSION['liczba']=0; $_SESSION['wynik']=0;
}
}
?>
<html>
<head>
</head>
<body>
<?php
echo $_SESSION['liczba']; ?>
<form action="index.php" method="post">
<fieldset style="width: 150px;">
<input type="temp" value="
<?php if($_POST['send'] == '=') { echo $_SESSION['wynik']; } else { echo $_SESSION['wynik']; } ?>" />
</fieldset>
<fieldset style="width: 150px;">
<button type="submit" name="send" value="1">1</button>
<button type="submit" name="send" value="2">2</button>
<button type="submit" name="send" value="3">3</button>
<button type="submit" name="sign" value="+">+</button><br/>
<button type="submit" name="send" value="4">4</button>
<button type="submit" name="send" value="5">5</button>
<button type="submit" name="send" value="6">6</button>
<button type="submit" name="sign" value="-">-</button><br/>
<button type="submit" name="send" value="7">7</button>
<button type="submit" name="send" value="8">8</button>
<button type="submit" name="send" value="9">9</button>
<button type="submit" name="sign" value="*">*</button><br/>
<button type="submit" name="send" value="0">0</button>
<button type="submit" name="sign" value="/">/</button>
<button type="submit" name="send" value="=">=</button>
<button type="submit" name="sign" value="RESET">AC</button>
</fieldset>
</form>
</body>
</html>