Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: PHP: Palautelomake lisäosilla

Codeprofile [14.01.2007 21:16:15]

#

Jes! Ensimmäinen koodivinkkini!

Tämä on palautelomake pienillä lisämausteilla. Palautelomake käyttää myöskin evästeitä. Evästeet eivät floodintaa täysin kylläkään estä, mutta vaikkuttavat ne jotain(?). Palautelomake sisältää myös kenties "odotetuimmat" lisäosat;
1) Viestin pituus rajoitettu
1.1) Ei alle 10-merkkisiä viestejä
1.2) Ei yli 1000-merkkisiä viestejä
2) Evästeet floodinnan varalta
3) Lisävaihtoehtoja
3.1) "Haluatko vastauksen"-vaihtoehdon
3.2) "Mielipide sivuistani"-vaihtoehdon
4) Viestien hienostajan (Palautteen osat selkeäsi allekkain)
4.1) Hosti viestissä

Yritin kovasti väsätä myös sellaista järjestelmää, missä hosti tallennettaisiin teidostoon, ja myöhemmin se tarkistettaisiin sieltä, mutta muutamankymmenen mokan jälkeen unohdin koko systeemin, ja päätin tyytyä evästeisiin.

Tarvitset myös kiitos.php ja virhe.php nimiset tiedostot.

Koodia saa muokata ja käyttää sivuillaan vapaasti, mutta tekijän nimi täytyy säilyttää.

Koodeista on saatavana myös tekstiversiot: http://koti.mbnet.fi/cpf/nayta_lahdekoodi.php

laheta.php

<?php
// Tekijä: Emil Tuomi <http://koti.mbnet.fi/cpf>
// Säilytä tekijän nimi!

// Tarkistetaan ettei mikään "suojausmenetelmä" petä
if (isset($plomake)) { echo "Odota vähintään 2-minuuttia viestien lähetysten välillä."; exit; }
if (strlen($viesti) > 1000) { echo "Kirjoitteleppas vähän lyhempää viestiä. 1000-merkkiä on suurin mahdollinen pituus."; exit; }
if (strlen($viesti) < 10) { echo "Kirjoitteleppas vähän pitempää viestiä. 10-merkkiä on pienin mahdollinen pituus."; exit; }

// Luodaan evästettä typerien floodaus-viestien takia
setcookie("plomake", "Palautelomakkeen aikajakso", time() + 60 * 2);

// Selvitetään käyttäjän hosti
$host = gethostbyaddr($_SERVER['REMOTE_ADDR']);

// Muotoillaan viestiä hienommaksi
$palaute = "$viesti\n\n\nHost: $host\nMielipide sivustosta: $mielipide\nVastaus: $vastaus\nSähköposti: $email";

// Lähetetään palaute alla määritettyyn osoitteeseen
$laheta = mail("sinun@osoitteesi.org", "$aihe", "$palaute");

// Ohjataan käyttäjä kiitos-sivulle.
if ($laheta) {
header("Location: kiitos.php");
} else {
header("Location: virhe.php");
}
?>
<html>
<title>Palautelomake</title>
<body>

<font face="Verdana" size=2>
Tämän palautelomakkeen avulla voit lähettää palautetta sivujen omistajalle.

<form method="post" action="laheta.php">
Nimesi: <input type="text" name="nimi"><br>
Sähköpostisi: <input type="text" name="email"><p>
Haluatko vastauksen?<br>
<input type="radio" name="vastaus" value="Kyllä"> Kyllä<br>
<input type="radio" name="vastaus" value="En"> En<p>
Mitä mieltä olet sivuistani?<br>
<input type="radio" name="mielipide" value="Hyvä leiska"> Hyvä leiska<br>
<input type="radio" name="mielipide" value="Kohtuullinen leiska"> Kohtuullinen leiska<br>
<input type="radio" name="mielipide" value="En osaa sanoa"> En osaa sanoa<br>
<input type="radio" name="mielipide" value="Huono leiska"> Huono leiska
<br><p>Aihe: <input type="text" name="aihe"><p>
Viesti:<br>
<textarea name="viesti" rows="15" cols="75"></textarea><p>
<input type="submit" value="Lähetä">
</form>

</font>

</body>
</html>

Vastaus

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

Tietoa sivustosta