Promo #CODINGDIRUMAH DISKON 55%, Termurah Sepanjang Sejarah CODEPOLITAN. Klaim Promo

Saat Refresh Array Bertambah

Ditanyakan 4 hari yang lalu oleh Fauzi Ramdhani

Kak Mau tanya itu di video klo sy liat pas saat refresh di pilih no .. dan saya kepencet yes dan array selalu bertambah saat di refresh itu gmn ya??

berikut codenya

<?php
    $todos = []; ////total array yang disiapkan untuk disimpan

    //Pengecekan File todo.txt
    if(file_exists('todo.txt')){
    $file =  file_get_contents('todo.txt'); //membaca file todo.txt
    $todos = unserialize($file); //mengubah format serialize menjadi array
    }

    //Jika ditemukan todo yang dikirim melalui methode POST
    if(isset($_POST['todo']))
    {
        $data = $_POST['todo']; // mengabil data yang di input pada form
        //Jika todos tidak memakai [] maka data akan tertimpa terus 
        $todos[] = [
            'todo' => $data,
            'status' => 0
        ];
        file_put_contents('todo.txt', serialize($todos));
    }
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>My Todo App</title>
</head>
<body>
<!--TEMPLATE-->
<h3>To-Do Application</h3>
<form method="POST">
    <label>Apa Kegiatanmu Hari ini</label> <br>
    <input type="text" name="todo">
    <button type="submit">Submit</button>
</form>

<!--List Todo-->
<?php foreach ($todos as $key => $value): ?>
<ul>
    <li>
        <input type="checkbox" name="todo">
        <label><?php echo $value['todo']?></label>
        <a href="#">Delete</a>
    </li>
</ul>
<?php endforeach; ?>

</body>
</html>
BUAT KOMENTAR

1 JAWABAN / 0 KOMENTAR

User avatar
Ahmad Oriza menjawab 4 hari yang lalu

Hai kak,

Sepertinya kakak belum selesai mempelajari next lesson. Disitu kita harus inject script untuk redirect, sehingga POST tidak lagi terisi. Kenapa bisa setiap refresh terisi? karena POST nya masih ada isinya. Kita harus mengalihkan ke halaman lain dulu. Jadi seperti ini :

// Jika ditemukan todo yang dikirim melalui methode POST

if(isset($_POST['todo']))
{
    // Mengambil data yang di input pada form
    $data = $_POST['todo']; 
    // Jika todos tidak memakai [] maka data akan tertimpa terus 
    $todos[] = [
        'todo' => $data,
        'status' => 0
    ];
    file_put_contents('todo.txt', serialize($todos));
    header('location:index.php');
}
BUAT KOMENTAR