Wykonuje kod omijając linie kodu.

0

Pierwszy if działa jak powinnien, ale kolejny (9 linia) za każdym razem się omija.

<?php
include_once('definicje.php');
if($_SESSION['id']<"" && $_SESSION['login']<"" && $_SESSION['haslo']<"")
{
header('Location: logout.php');
exit;
}
//formularz zrobiony
if(@$_GET['a']=="a" && @$_GET['przedszkolak'] <= 1 && @$_GET['zl'] <= 0 && $_GET['gr'] <=2)
{
    if($_GET['gr'] == 0)
    {
        $zl = $_GET['zl']*100;
    }
    elseif($_GET['gr'] < 0 && $_GET['gr'] > 100)
    {
        $zl = $_GET['zl']*100+$_GET['gr'];
    }
    else
    {
        echo 'ZŁA KWOTA';
        exit();
    }
     
     
 $sql = "INSERT INTO deklaracja (id_przedszkolaka, kwota, id_grupy) 
VALUES (:id, :kwota, :id_grupy)";
  
$stmt = $db->prepare($sql);
  
$stmt->bindParam(':imie', $_GET['imie'], PDO::PARAM_STR);       
$stmt->bindParam(':kwota', $zł, PDO::PARAM_STR);       
$stmt->bindParam(':id_grupy', $grupa, PDO::PARAM_STR);       
 
$stmt->execute(); 
$_SESSION['brak']='<font color="green"><center>Udało się dodać.</center></font>';
}
else
{
 
?>
<html>
<head>
<title>PANEL</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style type=text/css> 
a {     
text-decoration: none; 
color:Black;
} 
</style>
</head>
<body bgcolor="#CCFFFF">
<div align="center">
<?php
echo @$_SESSION['brak'];
$_SESSION['brak'] ="";
?>
<p style="font-size:40px">Dodaj Przedszkolaka</p>
<form action="" method="get">
<table border="0">
<tr>
<td colspan="2"><label style="font-size:20px"><input type="number" name="zl">ZŁ</label><label style="font-size:20px"><input type="number" name="gr">GR</label></td>
</tr>
<tr>
<td><p style="font-size:20px">Przedszkolak </td><td><select name="przedszkolak">
<?php
$stmt = $db->query('SELECT * FROM przedszkolak WHERE aktywny = 1 ORDER BY `przedszkolak`.`nazwisko` ASC');
    foreach($stmt as $row)
    {
        $a = $db->query('SELECT * FROM grupy WHERE id_grupy = '.$row['id_grupy']);
        foreach($a as $rw)
        {
            echo '<option value='.$row['id_przedszkolaka'].'>'.$row['nazwisko'].' '.$row['imie'].' - '.$rw['nazwa_grupy'].' ';
        }
        $a->closeCursor();       
         
        echo '</option>';
    }
    $stmt->closeCursor();
?>
</p></td>
</tr>
 
</table>
<input type="hidden" name="a" value="a" />
<input type="submit">
</body>
</html
<?php
}
?>

0

A czy Twój kod spełnia wszystkie warunki jednocześnie, znajdujące się w tym if'ie?

if(@$_GET['a']=="a" && @$_GET['przedszkolak'] <= 1 && @$_GET['zl'] <= 0 && $_GET['gr'] <=2)
0

Przy wysyłaniu formularza, tak

0

var_dump prze if'em i wyświetl sobie wszystkie GETy które sprawdzasz w warunku. var_dumpy w środku (bo może jednak wchodzi, tylko w środku coś nie działa jak się spodziewałeś). I pozbądź się tych @. Jak Ci sypie błędami to znaczy, że musisz poprawić kod np: poprzez isset. Wyłączanie błędów to żadne rozwiązanie!

1 użytkowników online, w tym zalogowanych: 0, gości: 1