Вот мой код отмены ссылки, чтобы удалить изображение из папки сервера, на которой он работает, но он удаляет изображение новостей в папке - PullRequest
0 голосов
/ 21 января 2020

вот мой код отмены ссылки для удаления изображения из папки сервера, на которой оно работает, но оно удаляет изображение новостей в папке, а не то, которое связано с image_id или image_path, так как я могу сказать, чтобы оно удалялось изображение для image_id или image_path?

<?php
    if (isset($_POST['submit'])) {
        $res = mysql_query("select * from record_images where image_id=image_id");
        while ($row = mysql_fetch_array($res)) {
            $image_name = $row["image_path"];
        }
        unlink($image_name);
    }
?>

Вот мой новый код, и он работает хорошо. К сожалению, я сделал ошибку, он удалит изображения, связанные с image_id, но он удаляет изображения в папке сервера слишком рано, когда я нажимаю на ссылку на странице редактирования, он отправляет меня на страницу удаления и удаляет изображение Я должен нажать кнопку «Удалить», чтобы удалить критерии для этого image_id в базе данных, и я не хочу, чтобы это произошло. Я не хочу, чтобы изображение в папке на сервере удалялось, пока я не нажму кнопку Удалить на странице удаления

<?php
if (isset($_GET['image_id']))
 {
   $res=mysql_query("SELECT * From record_images where image_id=".$_GET['image_id']);
   while($row=mysql_fetch_array($res))
{
    $image_name=$row["image_path"];
    $thnimage_name=$row["thumbnail_path"];
}
    unlink($image_name);
    unlink($thnimage_name);
}
?>

Так вот мой новый новый код. теперь он будет удалять изображения в папке на сервере, когда я нажму кнопку «Удалить» на странице «Удалить», а не раньше. и мне пришлось добавить этот image_id к остальным критериям для кнопки «Удалить»

<?php
    if ((isset($_POST['submit'])) && ($_POST['image_id'] != ""))
     {
       $res=mysql_query("SELECT * From record_images where image_id=".$_GET['image_id']);
       while($row=mysql_fetch_array($res))
    {
        $image_name=$row["image_path"];
        $thnimage_name=$row["thumbnail_path"];
    }
        unlink($image_name);
        unlink($thnimage_name);
    }
    ?>

, вот как выглядит мой код кнопки «Удалить» с добавленными критериями

<form id="form1" name="form1" method="post" action="/finditlogit/private/sites/logs/artifacts/records/photo_gallery/delete.php?
    site_id=<?php echo $row_rssites['site_id']; ?>
    &amp;block_id=<?php echo $row_rsarchitectural_blocks['block_id']; ?>
    &amp;log_id=<?php echo $row_rslogs['log_id']; ?>
    &amp;record_id=<?php echo $row_rsrecords['record_id']; ?>
    &amp;image_id=<?php echo $row_rsrecord_images['image_id']; ?>
    &amp;site_criteria=<?php echo htmlspecialchars ($site_criteria, ENT_QUOTES); ?>
    &amp;site_attributes=<?php echo htmlspecialchars ($site_attributes, ENT_QUOTES); ?>
    &amp;block_criteria=<?php echo htmlspecialchars ($block_criteria, ENT_QUOTES); ?>
    &amp;block_attributes=<?php echo htmlspecialchars ($block_attributes, ENT_QUOTES); ?>
    &amp;logs_criteria=<?php echo htmlspecialchars ($logs_criteria, ENT_QUOTES); ?>
    &amp;log_criteria=<?php echo htmlspecialchars ($log_criteria, ENT_QUOTES); ?>
    &amp;log_attributes=<?php echo htmlspecialchars ($log_attributes, ENT_QUOTES); ?>">
    <input type="submit" name="submit" value="Delete" />
    <input name="image_id" type="hidden" id="image_id" value="<?php echo $row_rsrecord_images['image_id']; ?>" />
    </form>

1 Ответ

2 голосов
/ 21 января 2020

Ваш запрос извлекает все записи, так как вы говорите where image_id = image_id. Если image_id будет переменной или чем-то еще?

Тогда $image_name = $row["image_path"]; будет значением последней записи в таблице, в результате чего это изображение будет удалено.

...