⚈ Kuopassa.net

Lisää kertomuksia netistä. 摆烂

Palautelomake PHP:lla

Lataa tästä ja vaihda tiedostopääte .txt esimerkiksi muotoon .php. Lomakkeessa on kolme asetusta, jotka pitää vaihtaa: 1) sähköpostin vastaanottajan osoite, 2) se osoite, jossa tuo palautelomake sijaitsee, ja 3) viestin otsikko. Tällä lomakkeella kävijä voi lähettää haluttuun sähköpostiosoitteeseen haluamansa viestin ja nimensä tai nimimerkkinsä. Lomakkeessa on muutamia spämmisuojauksia, joiden pitäisi hillitä roskapostin määrää. Alapuolella on lomakkeen lähdekoodi ilman sisennyksiä ym. hienosteluja.

<?php
# PALAUTELOMAKE PHP-TUELLA VARUSTETTUA SIVUSTOA VARTEN.
# MAHDOLLISTAA SAHKOPOSTIN LAHETTAMISEN ENNALTA ILMOITETTUUN MAILIOSOITTEESEEN
# LISATIEDOT: http://kuopassa.net/
# TAI: petri.ikonen@kuopassa.com

error_reporting(0);
$lahetettiin = FALSE;

if (defined('LOMAKKEEN_OSOITE')) {
die;
}
else {
define('LOMAKKEEN_OSOITE','http://localhost/palautelomake/palautelomake.php');
}

if (defined('VASTAANOTTAJA')) {
die;
}
else {
define('VASTAANOTTAJA','oma.sahkopostiosoite@kuopassa.com');
}

if (defined('OTSIKKO')) {
die;
}
else {
define('OTSIKKO','Viesti palautelomakkeesta | Kuopassa.com');
}

if ((isset($_POST['laheta'])) && (isset($_POST['email'])) && (empty($_POST['email']))) {
if (empty($_POST['laheta'])) {
unset($_POST['laheta']);
$ilmoitukset = array();

if ((isset($_POST['viesti'])) && (!empty($_POST['viesti'])) && (strlen($_POST['viesti']) >= '5') && (strlen($_POST['viesti']) <= '10000')) {
$viesti = filter_var($_POST['viesti'],FILTER_SANITIZE_STRING);
}
else {
$viesti = NULL;
array_push($ilmoitukset,'Muista kirjoittaa viesti. Sen on oltava v&auml;hint&auml;&auml;n viisi (5) ja enint&auml;&auml;n 10 000 merkki&auml; pitk&auml;.');
sleep(1);
}

if ((isset($_POST['lahettaja'])) && (!empty($_POST['lahettaja'])) && (strlen($_POST['lahettaja']) >= '2') && (strlen($_POST['lahettaja']) <= '50') && (!is_numeric($_POST['lahettaja']))) {
$lahettaja = filter_var($_POST['lahettaja'],FILTER_SANITIZE_STRING);
}
else {
$lahettaja = NULL;
array_push($ilmoitukset,'Muista kirjoittaa nimesi tai nimimerkkisi. Sen on oltava v&auml;hint&auml;&auml;n kaksi (2) ja enint&auml;&auml;n 50 merkki&auml; pitk&auml;.');
sleep(1);
}

if (empty($ilmoitukset)) {
$lahetettava = 'Palautetta: '.$viesti.'. ('.$lahettaja.')';

if (mail(VASTAANOTTAJA,OTSIKKO,$lahetettava,'From:'.$lahettaja)) {
array_push($ilmoitukset,'Kiitos! Viestisi l&auml;hetettiin.');
$lahetettiin = TRUE;
unset($viesti);
unset($lahetettava);
unset($lahettaja);
}
else {
array_push($ilmoitukset,'Oho! Onpa ep&auml;tavallista, sill&auml; viesti&auml;si ei kyetty l&auml;hett&auml;m&auml;&auml;n. Jos viitsit, voit l&auml;hett&auml;&auml; viestisi suoraan s&auml;hk&ouml;postiosoitteeseen <strong>'.VASTAANOTTAJA.'</strong>. Viestisi kuuluu:<br /><em>&quot;'.$viesti.'</em>&quot;');
sleep(1);
}
}
}
else {
die;
}
}
else {
$viesti = NULL;
$lahettaja = NULL;
$ilmoitukset = NULL;

# HUNAJAPURKKI ROSKAPOSTITTAJILLE
if (!empty($_POST['email'])) {
die;
}

}

if ($ilmoitukset != NULL) {
echo '<ul id="ilmoitukset">';
foreach($ilmoitukset as $ilmoitus) {
echo '<li>'.$ilmoitus.'</li>';
}
echo '</ul>';
}

if ($lahetettiin != TRUE) {
?>
<form action="<?php echo LOMAKKEEN_OSOITE; ?>" method="post">
<input type="hidden" name="email" value="" />
<fieldset>
<legend>Ota yhteytt&auml;</legend>
<ul>
<li><label for="viesti">Viesti:</label><textarea id="viesti" name="viesti" cols="30" rows="10"><?php echo $viesti; ?></textarea></li>
<li><label for="lahettaja">Nimi tai nimimerkki:</label><input id="lahettaja" name="lahettaja" size="20" maxlength="50" value="<?php echo $lahettaja; ?>" /></li>
<li><button type="submit" name="laheta">L&auml;het&auml; viesti</button></li>
</ul>
</fielset>
</form>
<?php } ?>

Tietoa kirjoittajasta