• 1404/06/29

عدم آپدیت پست ها (جلسه 89) :

با عرض سلام و خسته نباشین

بنده زمانی که عکس رو تغییر ندم عملیات آپدیت پست ها به درستی صورت می گیره؛ ولی زمانی که تصویر مربوط به پست رو هم تغییر میدم هیچ اتفاقی نمی افته و پست من اپدیت نمیشه.

ممنون میشم علتش رو بگین. دستورات رو دقیقا به مانند جلسه اموزش نوشتم.

<?php
require_once '../../functions/helpers.php';
require_once '../../functions/pdo_connection.php';

if (!isset($_GET['post_id'])) {
    redirect('panel/post/');
}

$query= "SELECT * FROM posts WHERE id= ?";
$state= $pdo -> prepare($query);
$state -> execute([$_GET['post_id']]);
$post= $state-> fetch();
if ($post === false) {
    redirect('panel/post/');
}

if (
        isset($_POST['title']) && $_POST['title'] !== ''
    &&  isset($_POST['cat_id']) && $_POST['cat_id'] !== ''
    &&  isset($_POST['body']) && $_POST['body'] !== ''
) {
    $query= "SELECT * FROM categories WHERE id= ?";
    $state= $pdo -> prepare($query);
    $state -> execute([$_POST['cat_id']]);
    $category= $state -> fetch();

    if (isset($_FILES['image']) && $_FILES['image']['name'] !== '') {
        $allowm= ['jpeg', 'png', 'jpg', 'gif'];
        $imagem= pathinfo($_FILES['image']['name'], PATHINFO_EXTENSION);
        if (!in_array($imagem, $allowm)) {
            redirect('panel/post');
        }
        $basepad= dirname(dirname(__DIR__));
        if (file_exists($basepad . $post -> image)) {
            unlink($basepad . $post -> image);
        }
        $image= '/assets/images/posts/' . date("y_m_d_H_i_s") . '.' . $imagem;
        $image_upload= move_uploaded_file($_FILES['image']['tmp_name'], $basepad . $image);
        if ($category !== false && $image_upload !== false) {
            $query= "UPDATE posts SET title= ?, cat_id= ?, body= ?, image= ?, updated_at= NOW() WHERE id= ?;";
            $state= $pdo-> prepare($query);
            $state-> execute([$_POST['title'], $_POST['cat_id'], $_POST['body'], $image, $_GET['post_id']]);
        }

    } else {
        if ($category !== false) {
            $query= "UPDATE posts SET title= ?, cat_id= ?, body= ?, updated_at= NOW() WHERE id= ?;";
            $state= $pdo-> prepare($query);
            $state-> execute([$_POST['title'], $_POST['cat_id'], $_POST['body'], $_GET['post_id']]);
        }
    }
        redirect('panel/post/');
}


?>

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>PHP panel</title>
    <link rel="stylesheet" href="<?= asset('assets/css/bootstrap.min.css') ?>" media="all" type="text/css">
    <link rel="stylesheet" href="<?= asset('assets/css/style.css') ?>" media="all" type="text/css">
</head>

<body>
<section id="app">
    <?php require_once '../layouts/top-nav.php'; ?>

    <section class="container-fluid">
        <section class="row">
            <section class="col-md-2 p-0">
                <?php require_once '../layouts/sidebar.php'; ?>
            </section>
            <section class="col-md-10 pt-3">

                <form action="<?= url('panel/post/edit.php?post_id=') . $_GET['post_id'] ?>" method="post" enctype="multipart/form-data">
                    <section class="form-group">
                        <label for="title">Title</label>
                        <input type="text" class="form-control" name="title" id="title" value="<?= $post-> title ?>">
                    </section>
                    <section class="form-group">
                        <label for="image">Image</label>
                        <input type="file" class="form-control" name="image" id="image">
                        <img src="<?= asset($post-> image) ?>" width="120" height="120" class="mt-2">
                    </section>
                    <section class="form-group">
                        <label for="cat_id">Category</label>
                        <select class="form-control" name="cat_id" id="cat_id">
                            <?php
                            global $pdo;
                            $query= "SELECT * FROM categories";
                            $state= $pdo-> prepare($query);
                            $state-> execute();
                            $categories= $state-> fetchAll();
                            foreach ($categories as $category) {
                                ?>
                                <option value="<?= $category -> id ?>" <?php if ($category-> id == $post-> cat_id)
                                    echo 'selected' ?>><?= $category -> name ?></option>
                            <?php } ?>
                        </select>
                    </section>
                    <section class="form-group">
                        <label for="body">Body</label>
                        <textarea class="form-control" name="body" id="body" rows="5"><?= $post-> body ?></textarea>
                    </section>
                    <section class="form-group">
                        <button type="submit" class="btn btn-primary">Update</button>
                    </section>
                </form>

            </section>
        </section>
    </section>

</section>

<script src="<?= asset('assets/js/jquery.min.js') ?>"></script>
<script src="<?= asset('assets/js/bootstrap.min.js') ?>"></script>
</body>

</html>
logo-enamadlogo-samandehi