...
Ensimmäiseksi käsittelemme tapauksen, jossa käyttäjä haluaa lisätä uuden viestin tietokantaan. Viestin erikoismerkit muunnetaan HTML-muotoon htmlspecialchars-funktiolla, jotta käyttäjän ei olisi mahdollista liittää omaa koodia sivuille viestien välityksellä.
PHP:n DBO-kirjaston prepare-metodi huolehtii siitä, ettei käyttäjän ole mahdollista syöttää palveluun omia SQL-komentoja.
Käsiteltyämme tiedot varmistamme, että käyttäjä ei voi lähettää tietoja uudestaan käyttämällä selaimen edellinen-toimintoa: header( 'Location: index.php')
. Koska muokkaamme suoraan sivun headeria, tulee tämä tehdä ennen kuin yhtään HTML-koodia on tulostettu tiedostoon.
Code Block |
---|
// Choose the correct action based on the value of the $_POST['action'] if ($_POST['action'] == 'new_message') { // Add a message to the database // prepare query // save it with htmlspecialchars in order to stop clever javascripting and HTML-tags ;) $query = $mysql_conn->prepare("INSERT INTO peukku_viestit (message) VALUES ('" . htmlspecialchars($_POST['message']) . "')"); // run query $query->execute(); //remove post data by redirecting to ourselves header( 'Location: index.php' ) ; } |
...