1

if not in the form I choose my category returns an error :

Notice: Undefined index: picCat in E:\xampp\htdocs\Evako\admin.php on line 313

Code: form

<form class="form" method="GET">
            <input type="text" id="nmPic" name="nmPic" placeholder="име на снимката" onfocus="this.placeholder = ''" onblur="this.placeholder = 'име на снимката'"></br>
                <input type="text" id="price" class="priceFrom" name="priceFrom" placeholder="цена от" onfocus="this.placeholder = ''" onblur="this.placeholder = 'цена от'">
                <input type="text" id="price" class="priceTo" name="priceTo" placeholder="цена до" onfocus="this.placeholder = ''" onblur="this.placeholder = 'цена до'"></br>
                <select name="picCat" id="picCat">
                    <option value="" selected disabled>Изберете категория</option>
                    <option>Детски</option>
                    <option>Сватби</option>
                    <option>Рожден ден</option>
                    <option>18+</option>
                    <option>Други</option>
                </select></br>
                <input type="text" id="numPic" name="numPic" placeholder="номер на снимката" onfocus="this.placeholder = ''" onblur="this.placeholder = 'номер на снимката'"></br>
                <input type="submit" name="showFilter" value="покажи" />
            </form>

And php:

if (isset($_GET["showFilter"])) 
            {
                $picName = $_GET['nmPic'];
                $priceFrom = $_GET['priceFrom'];
                $priceTo = $_GET['priceTo'];
                $picCat = $_GET['picCat'];
                $numPic = $_GET['numPic'];

                $filter = " SELECT * FROM images WHERE status = '1'";
                if ($numPic && !empty($numPic)) {
                    $filter .= " AND id='$numPic'";
                }
                if ($picName && !empty($picName)) {
                    $filter .= " AND img_content='$picName'";
                }
                if ($picCat && !empty($picCat)) {
                    $filter .= " AND category='$picCat'";
                }
                if ($priceTo && !empty($priceTo)) {
                    $filter .= " AND price < '$priceTo'+1";
                }
                $resFilter = $connect->query($filter);

                if ($resFilter->num_rows > 0) 
                {

                    while($row = mysqli_fetch_array($resFilter))
                    {

                        echo    "<div class='col-md-4 picture'>
                                    <img class='child-img' src='".$row["picture"]." '/></br>
                                        <div class='number'><span class='id'>№ ".$row['id']." | име: ".$row['img_content']." | категория: ".$row['category']." | цена: ".$row['price']."лв. | дата: ".$row['time']."ч.</span></div>

                                </div>";

                    }

                }

I can not understand where wrong to let me return this error. And if you choose a category everything works without a problem ...? line 313 is:

$picCat = $_GET['picCat'];

Thank you.

Paspartu
  • 97
  • 2
  • 11

1 Answers1

1

Your select box option need value tag it would be

<select name="picCat" id="picCat">
                    <option value="" selected disabled>Изберете категория</option>
                    <option value="Детски">Детски</option>
                    <option value="Сватби">Сватби</option>
                    <option value="Рожден ден">Рожден ден</option>
                    <option value="18+">18+</option>
                    <option value="Други">Други</option>
                </select>

Read html select tag

Youe script is open for sql injection read How can I prevent SQL injection in PHP? to prevent it

Community
  • 1
  • 1
Saty
  • 22,443
  • 7
  • 33
  • 51