basierend auf dem von mir geposteten Kontaktformular, siehe
http://forum.redaxo.de/viewtopic.php?t=595
hier ein Script "Unsere Seite weiterempfehlen".
Ich poste hier mal nur das Script: Features und Stylesheet-Angaben bitte obigem Link entnehmen.
neues Modul erzeugen, Code ins Ausgabefeld einfügen und in Artikel einbinden:
Code: Alles auswählen
<?php
// ============== Form config ==============
// Daten für die Ausgabe der Fehlermeldung,
// Überschrift, Legend, Beschreibung, Feldnamen, "Submit"-Button
$page_info = "Unsere Website gefällt Ihnen? Dann empfehlen Sie uns doch an Freunde, Bekannte oder Kollegen weiter. Die eingegebenen Adressen werden von uns nicht an Dritte weitergegeben.";
$hack_message = "Leider konnten wir Ihre Anfrage nicht bearbeiten, weil das Formular nicht korrekt ausgefüllt ist. Bitte überprüfen Sie folgendes Eingabefeld:";
//Formular
$form_header = "";
$form_legend = "";
$form_info = "";
$form_name = "Name";
$form_email = "E-Mail";
$form_fname = "Name des Empfängers";
$form_femail = "E-Mail des Empfängers";
$form_message = "Ihre Nachricht";
$submit_value = "Senden";
$submit_titel = "Zum Absenden bitte nur 1x klicken";
// Danke-Seite
$thanks_message = "Vielen Dank, dass Sie sich die Zeit genommen und einige Zeilen geschrieben haben. Ihre Nachricht wurde soeben erfolgreich versendet.";
// E-Mail
$email_titel="Informative Seite über xxx";
$mail_text="Ich habe diese Seite gefunden und möchte sie gerne weiterempfehlen.";
$website="www.xxx.com";
$email_from="Message von: ";
// ============== Ende Form config ==============
// Daten aus Form config konvertieren
function clean_text($value = "")
{
$value = htmlentities($value);
return $value;
}
$page_info = clean_text($page_info);
$hack_message = clean_text($hack_message);
$form_legend = clean_text($form_legend);
$form_name = clean_text($form_name);
$form_email = clean_text($form_email);
$form_fname = clean_text($form_fname);
$form_femail = clean_text($form_femail);
$form_message = clean_text($form_message);
$submit_value = clean_text($submit_value);
$submit_titel = clean_text($submit_titel);
$thanks_message = clean_text($thanks_message);
// ============== Formularüberprüfung ==============
function cleanup ($string) {
// falls magic quotes on
if (get_magic_quotes_gpc())
{
$string = stripslashes($string);
}
$string = addslashes($string);
$string = strip_tags($string);
// "--","#";";","`","/" Ausfiltern von SQL-Statements
$string = str_replace(array("--","- -","#",";","`","/","<",">","{","}","[","]"),array("","","","","","","","","","","",""),$string);
// - mit Leerzeichen dazwischen (SQL-Kommentare!)
$string = preg_replace('#-\s+-#i',"",$string);
return $string;
} // end function cleanup
function checkName ($string) {
// $name am Anfang Buchstabe; keine Zahlen und Nicht-Wortzeichen; dann
// beliebig viele Buchstaben, Bindestriche, Leerzeichen und Punkte
if (preg_match("/^[^\W\d_]([^\W\d_]|[\-\'\s\.\ä\ö\ü\Ä\Ö\Ü\ß])*$/", stripslashes($string)))
{
return true; // OK
}
else
{
return false; // falsche Eingabe
}
} // end function checkName
function checkNumeric ($string) {
// nur Zahlenr
if (preg_match("/^\d*$/", stripslashes($string)))
{
return true; // OK
}
else
{
return false; // falsche Eingabe
}
} // end function checkNumeric
function checkEmail ($string) {
// $email mindestens a@a.aa
if (ereg("^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@([_a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$", stripslashes($string)))
{
return true; // OK
}
else
{
return false; // falsche Eingabe
}
} // end function checkEmail
function checkMessage ($string) {
// $email mindestens a@a.aa
if (preg_match("/^[^\d_]([^\W]|[\-\'\s\"\.\!\?\;\,\:\€\%\(\)\+\=\@\*\ä\ö\ü\Ä\Ö\Ü\ß])*$/", stripslashes($string)))
{
return true; // OK
}
else
{
return false; // falsche Eingabe
}
} // end function checkMessage
$hack = false; // Bool'sche Variable zeigt an, ob
// ein Hackingversuch vorliegt
// Auslesen und Säubern der Daten aus $_POST
if (sizeof($_POST) == 0)
{
$yname = "";
$yemail = "";
$fname = "";
$femail = "";
$message = "";
$submit = "";
}
else
{
$yname = $_POST["yname"];
$yemail = $_POST["yemail"];
$fname = $_POST["fname"];
$femail = $_POST["femail"];
$message = $_POST["message"];
$submit = $_POST["submit"];
$yname = cleanup($yname);
$yemail = cleanup($yemail);
$fname = cleanup($fname);
$femail = cleanup($femail);
$message = cleanup($message);
$submit = cleanup($submit);
// Verifizieren der Daten
if (checkName($yname)!=1)
{
$hack = true; $feld = $form_name;
}
if (checkEmail($yemail)!=1)
{
$hack = true; $feld = $form_email;
}
if (checkName($fname)!=1)
{
$hack = true; $feld = $form_fname;
}
if (checkEmail($femail)!=1)
{
$hack = true; $feld = $form_femail;
}
if (checkMessage($message)!=1)
{
$hack = true; $feld = $form_message;
}
} // end else
// ============== Ende Formularüberprüfung ==============
?>
<?php
// beim ersten Aufruf oder unkorrekten Eingaben Formular ausgeben
if (($submit == "") OR (($submit == $submit_value) AND ($hack == true)))
{
// Bei inkorrekten Eingaben eine Fehlermeldung ausgeben:
if ($hack)
{
?>
<p><?php echo $hack_message; ?></p>
<ul>
<li><?php echo $feld; ?></li>
</ul>
<?php
} // end if ($hack)
else
{
if ($page_info != "")
{
echo "<p>" . $page_info . "</p>\n";
}
} // end else
?>
<div id="formwrap">
<div id="form">
<form id="weiterempfehlen" method="post" action="<?php echo $_SERVER['REQUEST_URI']; ?>">
<fieldset>
<?php
echo "<legend><strong>" . $form_legend . "</strong></legend>\n";
?>
<label for="yname"><strong><?php echo $form_name; ?></strong></label><br />
<input class="inpt" type="text" id="yname" name="yname" size="38" title="<?php echo $form_name; ?>" value="<?php echo stripslashes($yname); ?>" tabindex="1" /><br /><br />
<label for="yemail"><strong><span lang="en"><?php echo $form_email; ?></span></strong></label><br />
<input class="inpt" type="text" id="yemail" name="yemail" size="38" title="<?php echo $form_email; ?>" value="<?php echo stripslashes($yemail); ?>" tabindex="2" /><br /><br />
<label for="fname"><strong><?php echo $form_fname; ?></strong></label><br />
<input class="inpt" type="text" id="fname" name="fname" size="38" title="<?php echo $form_fname; ?>" value="<?php echo stripslashes($fname); ?>" tabindex="3" /><br /><br />
<label for="femail"><strong><?php echo $form_femail; ?></strong></label><br />
<input class="inpt" type="text" id="femail" name="femail" size="38" title="<?php echo $form_femail; ?>" value="<?php echo stripslashes($femail); ?>" tabindex="4" /><br /><br />
<label for="message"><strong><?php echo $form_message; ?></strong></label><br />
<textarea class="txt" name="message" id="message" title="<?php echo $form_message; ?>" cols="36" rows="8" tabindex="5"><?php echo stripslashes($message); ?></textarea><br /><br />
<input class="senden" type="submit" name="submit" value="<?php echo $submit_value; ?>" title="<?php echo $submit_titel; ?>" tabindex="6" />
</fieldset>
</form>
</div>
</div>
<?php
} // if (($submit == "") OR (($submit == $submit_value) AND ($hack == true)))
elseif (($submit == $submit_value) AND ($hack == false))
{
$recipient="$femail";
$subject="$email_titel";
$header="From: " . $yemail . "\n";
$mail_body.="$mail_text\n";
$mail_body.="$website\n\n";
$mail_body.= "$email_from$yname\n\n";
$mail_body.=$message . "\n\n";
mail($recipient,$subject,$mail_body,$header);
echo "<br /><br /><p class=\"center\"><strong>" . $thanks_message . "</strong></p>\n";
}
?>
Viel Spaß beim Testen

Gruß
Thorsten