Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: PHP: Vieraskija aloittelijoille

squid [20.05.2005 19:00:27]

#

Ensimmäinen koodivinkkini

Kirjoitin tälläisen vieraskirjan, jos vaikka joku aloittelija löytäisi jotain tarpeellista tästä.
Pitäisi olla kaikki suurimmat tietoturvariskit poistettu.

Tätä ei ole hirveästi testailtu, eikä sisällä sivutus toimintoa.

Saa levittää vapaasti!

-squid-(juusofin.@hotmail.com

show.php

<!-- Nämä voi poistaa jos haluaa. Nämä aloittavat HTML sivun -->
<html>
<head><title>Vieraskirja</title>
</head>
<body>


<?php
           // Vieraskirja //
     // Kirjoittanut: -squid- //
  // /juusofin@hotmail.com//
//////////////////////////////////////

$viestit = file("viestit.txt");  //viestit taulukkoon
$viestit = array_reverse($viestit);  //käännetään viestit toisinpäin, jotta uusin tulee ensiksi

$vmaara = count($viestit);  //laskee viestit.txt rivit, jolloin tulee viestien määrä

echo "<p><b> $vmaara</b> viestiä kirjoitettu.</p>";
echo "<p><a href=\"send.php\">Lähetä viesti</a></p><hr>";

for ($i = 0; $i < $vmaara; i++) {
    $info = explode("|", $viestit[i], 4);  //jaetaan viestit.txt:in tiedot, | erotettuna, $info taulukkoon

    /tiedot omiin kolosiin
    $nimi = $info[0];
    $email = $info[1];
    $aika = $info[2];
    $viesti = $info[3];

    //viesti
    echo "<p><b>Kirjoittaja</b>: <a href=\"mailto:$email\">$nimi</a><br>";  //kirjoittajan nimi, sekä email osoite
    echo "<b>Kirjoitus aika</b>: " . date("d.m.Y H:i", $aika) . "<br>"; //viestin aika
    echo "<br>$viesti<hr>"; //itse viesti
}
?>
<!-- Nämä voi poistaa jos ei tarvi, nämä päättävät HTML sivun -->


</body>
</html>

send.php

<?php
if (!isset($_POST['nimi'])) { //Ei saa poistaa
?>

<html>
 <head>
  <title>Vieraskirja :: Kirjoita uusi viesti</title>
 </head>
 <body>
  <h1>Kirjoita uusi viesti</h1>
<!-- Tämä pitää olla sivulla, jotta on mistä lähettää -->
  <form action="send.php" method="post">
  Nimi: <br> <input type="text" name="nimi"> <br>
  Sähköposti: <br> <input type="text" name="email"> <br>
  Viesti: <br> <textarea name="viesti" col="15" row="15"></textarea> <br> <br>
  <input type="submit" value="Lähetä">
  </form>

 </body>
</html>

<?php
} else {
    $filu = fopen("viestit.txt" , "a"); //avataan tiedosto append(a) tilassa, jottei vanhat tiedot häviä uusia kirjoittaessa
    $nimi = $_POST['nimi'];
    $email = $_POST['email'];
    $viesti = $_POST['viesti'];


    //poistetaan kaikki EI sallittu viestistä, nimestä ja emailista
    $viesti = nl2br($viesti):
    $viesti = str_replace("|", " ", $viesti);
    $viesti = stripslashes($viesti);
    $viesti = htmlspecialchars($viesti);
    $nimi = str_replace("|", " ", $nimi);
     $email = str_replace("|", " ", $email);

    //otetaan talteen aika, jolloin viesti lähetettiin
    $aika = time();

    //luodaan rivi viestit.txt tiedostoon
    $rivi = "$nimi|$email|$aika|$viesti\n";


    fwrite($filu, $rivi); //rivi täytyy myös lisätä viestit.txt tiedostoon


    fclose($filu); //suljetaan tiedosto

        //ohjataan takaisin viestien näyttösivulle
    header("Location: show.php");
}
?>

temu92 [21.05.2005 16:38:53]

#

Jotkut aloittelijat tällä jotain voikin tehdä.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta