Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: PHP: Pieni vieraskirja

Santeri P. [02.04.2011 09:52:24]

#

Vieraskirjaan tarvitsee 3 tiedostoa.
Ensiksi luodaan tyhjä tiedosto viestit.txt
Sitten luodaan tiedosto laheta_viesti.php

<?php

  $nimi = $_POST['nimi'];
  $viesti  = $_POST['viesti'];

  # Jos nimi ja viesti ovat lomakkeeseen määritetyt
  # arvot niin ketään ei päästetä läpi
  if($nimi == "Nimi" || $viesti == "Viesti") { echo "Tietojasi pitää muuttaa"; exit(); }

  # Katsotaan onko nimi- tai viestikenttä tyhjänä
  if(empty($nimi)) { echo "Nimi puuttuu."; exit(); }
  if(empty($viesti))  { echo "Viesti puuttuu."; exit(); }

   # Poistetaan html tagit, paitsi <b>, <i> ja <u>
  $viesti  = strip_tags($msg,"<b>,<i>,<u>");
  $nimi = strip_tags($nick,"");

  # Lisätään tietoihin tyylitys
  $tyylitys = "<strong>$nimi</strong>:<br>$viesti<br><br>\n";

  # Korjataan " ja ' merkit
  $tyylitys = str_replace("\\\"","\"",$logit);
  $tyylitys = str_replace("\\'","'",$logit);

  $fp = fopen("viestit.txt", "a+");

  fwrite($fp, $tyylitys);

  fclose($fp);

  # Lähetetään käyttäjä takaisin viestit.php tiedostoon
  header("location: viestit.php");

?>

Kun tämä tiedosto on luotu,luodaan tiedosto viestit.php

<form method="post" action="laheta_viesti.php" name="laheta">
  <input name="nimi" value="Nimi" maxlength="15"><br>
  <input name="viesti" type="text" value="Viesti" maxlength="100">

  <input name="submit" type="submit" value="Lähetä viestisi!">

  <hr align="center" width="100%" size="1" color="blue" noshade>

  <?php

    $viesti   = file("viestit.txt");
    $maara  = count($viesti); //

    echo ($viesti[$maara-1] . "\n" .
          $viesti[$maara-2] . "\n" .
          $viesti[$maara-3] . "\n" .
          $viesti[$maara-4] . "\n" .
          $viesti[$maara-5] . "\n");

  ?>

Metabolix [07.04.2011 13:42:14]

#

Pari pientä ongelmaa: koodi ei toimi, koska olet mokannut muuttujien nimien kanssa monessakin paikassa (ks. $nick, $msg ja $logit), ja lisäksi koodi on huonosti tehty, nimittäin usean rivin mittainen viesti rikkoo järjestelmäsi, sivulle voi helposti lähettää omaa HTML- ja JS-koodia, lainausmerkkien "korjaus" on väärin ja esimerkiksi minun palvelimellani päinvastoin rikkoo viestin, ja kaiken kukkuraksi HTML-koodisi on viallista.

Vastaus

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

Tietoa sivustosta