waktu tersisa untuk klaim DISKON 40% dalam program Full Stack Membership. Klaim Promo!

Saat Refresh Array Bertambah

Ditanyakan pada tanggal 25 March 2020 oleh Fauzi Ramdhani Edit  Hapus  Tandai Selesai  Tandai 

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 pada tanggal 25 March 2020 Jadikan Jawaban Terbaik  Edit  Hapus  Ubah ke Komentar 

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