Кнопка изображения не работает, но работают нормальные кнопки: php - PullRequest
0 голосов
/ 27 сентября 2018

Я написал код, он похож на todolist, до того, как он работал, но сейчас нормальные кнопки работают, но кнопки типа изображения не работают.Что с ним не так?

Верхняя часть:

if (isset($_POST['remove_list'])){
    echo("xxx");
$todo_id = $_POST['remove_list'];   //get that submit value.
$sql="DELETE FROM todo WHERE todo_id='$todo_id'"; //that users book
mysqli_query($conn,$sql);
}

if (isset($_POST['add_list'])){
    echo("yyy");
    $todo_text=$_POST['text'];
    $sql = "insert into todo(todo_text) values('$todo_text')";
    mysqli_query($conn, $sql);

}

Нижняя часть формы:

<form form method="post" action="admin.php?id=anasayfa">
    <table>

    <?php 

    $todosql="SELECT * from todo";
    $resulttodo= mysqli_query($conn, $todosql);
    $i=1; 
    while ($todo=mysqli_fetch_assoc($resulttodo)){


    ?>
    <tr>
    <td>
    <?php if ($todo['todo_checked']==1){ ?>
        <input type="image" src="images/admin/checked.png" border="0" alt="Submit" name="not_check" height="20"  value="<?php echo($todo['todo_id']);?>">
    <?php
    }
    else { ?>
        <input type="image" src="images/admin/success.png" border="0" alt="Submit" name="check" height="20"  value="<?php echo($todo['todo_id']);?>">
    <?php
    }
    ?>         
    </td> 
    <td><?php echo($todo['todo_text']); ?></td><td><input type="image" src="images/admin/cancel.png" border="0" alt="Submit" name="remove_list" height="20" value="<?php echo($todo['todo_id']);?>"></td>
    </tr>


    <?php } ?>  

    </table>
    <input type="text" name="text" >
<input type="submit" name="add_list" value="Ekle">
</form>

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 28 сентября 2018

Во-первых, рассмотрите возможность защиты вашего кода загрузки:

  • $sql="DELETE FROM todo WHERE todo_id='$todo_id'"; небезопасно ...
  • См. http://php.net/manual/en/function.filter-input.php
  • Вы бы предпочлииспользуйте подготовленный оператор или другой метод экранирования MySQL.

Далее вы используете input type="image" вместе с input type="submit".Поскольку input type="image" также отправляет форму, используйте только одну кнопку отправки.

Также value="<?php echo($todo['todo_id']);?>" бесполезен, так как значения кнопок изображения не принимают атрибуты значения, см. https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/image

Иво-первых, имя кнопки отправки никогда не отправляется, поэтому if (isset($_POST['add_list'])) всегда будет возвращать false.См. Отправить значение кнопки отправки при публикации формы

...