Odświeżanie formularza php

0

Witam
Jestem początkujący w tym środowisku i chciałbym prosić o pomoc, otóż stworzyłem formularz, który ma za zadanie wyświetlić powyżej jakieś treści wrzucone do bazy. Skrypt działa, lecz po każdym odświeżeniu strony sam wpisuje puste dane pola do bazy stąd moje pytanie jak zmodyfikować kod, aby nie wysyłał pustych pól po odświeżeniu.

<body>
    <?php
        require("polaczenie.php");

            $name = $_POST['imie'];
            $posty = $_POST['wpisy'];

                    $sql = "INSERT INTO danepostu(Imie, Dane) VALUES ('$name','$posty')";
                    $sql2 = "SELECT Imie, Dane from danepostu";
                    $result = $conn->query($sql);
                    $result2 = $conn->query($sql2);
                
                    if($result2->num_rows>0) 
                    {
                        while ($row = $result2->fetch_assoc())
                        {
                            echo "<table><tr style=height:10%;><td style=width:10%;>Imię:</td>"."<td>{$row['Imie']}</td></tr>"."<td>Treść:</td>"."<td>{$row['Dane']}</td></tr></table>";
                        }
                    }
                    else    
                    {
                        echo "Brak wpisów!";
                    }
        ?>
    <div class="backg">    
        <form action="forum_baza.php" method="post">
            Wpisz imie <br><input type="text" name="imie" palceholder="Twoje imie" style= margin-left:10%;></input><br>
            Wpisz post <br><textarea name="wpisy" palceholder="Miejsce na post" style= "width:80%; margin-left:10%;"></textarea></br><br>
            <button type ="submite" style="margin-left:10%">Dodaj wpis</button>
        </form>
        </div>
    <?php
    die();
    ?>
</body>
0

Co jeżeli spróbujesz tego:
https://www.php.net/manual/en/function.isset.php

0

A co jeżeli poniższe:

$sql = "INSERT INTO danepostu(Imie, Dane) VALUES ('$name','$posty')";
$result = $conn->query($sql);

zabezpieczysz Ifem z isset?

Inaczej przy odświeżaniu to będzie wykonywało się razem z Select.

3

Najprostsze zabezpieczenie: po zapisie do bazy robisz redirect do strony z formularzem. I najlepiej rozbić to na 2 strony: jedna z formularzem, a druga z zapisem.

1

Po pierwsze dodaj pole ukryte do foirmularza typu:

<input type="hidden" name="form_sent" value="1" />

Następnie w kodzie PHP sprawdzasz czy formularz został w ogóle wysłany:

// Formularz wysłany?
if (isset($_POST['form_sent']) && $_POST['form_sent'] == '1') {

// I teraz sprawdzasz czy wypełniony wymagane pola w taki sposób jaki sobie zyczysz: czyli np. nie puste (funkcja empty), czy nie za długie etc - czyli walidacja
// Walidacja powiodła się = dodajesz do bazy i redirect albo do formularza albo do storny z potwierdzeniem ze dodalo
// Walidacja nie udana - bez redirectu pokazanie formularza z polami wypełnionymi tym co dotychczas wstawił użytkownik w formularz

}

1 użytkowników online, w tym zalogowanych: 0, gości: 1