hi,
hab mich heute Nacht endlich mal aufgerafft und mir ein Formmailer gebastelt, es gibt ja genug fertige Scripte aber alles irgendwie so ne sache für sich.
Naja, jetzt hab ich einen eigenen, nur kann ich nicht beurteilen, ob das ding sicher ist, könnte mal jemand drüber schauen ob es sicherheitslücken gibt?
Alles funktioniert, vorschau, absenden, Pflichtfelder, Affenformular.
Habs mal hochgeladen, http://start-navi.de/beispiele/form1.php
Und das Script sieht wie folgt aus, bissel viel, hoffe trotzdem das jemand mal drüberschaut.
<?php
error_reporting(E_ALL);
$strEmpfaenger = '***@***.de';
$strFrom = '"Formmailer" <***@***.de>';
$strSubject = 'Feedback';
$strDelimiter = ":\t";
$strReturnhtml = 'http://start-navi.de/beispiele/form1.php?mail=ok';
### Ende Konfiguration ###
if(isset($_GET['abschicken']))
{
$strMailtext = "";
while(list($strName,$value) = each($_GET))
{
if(is_array($value))
{
foreach($value as $value_array)
{
$strMailtext .= $strName.$strDelimiter.$value_array."\n";
}
}
else
{
$strMailtext .= $strName.$strDelimiter.$value."\n";
}
}
if(get_magic_quotes_gpc())
{
$strMailtext = stripslashes($strMailtext);
}
mail($strEmpfaenger, $strSubject, $strMailtext, "From: ".$strFrom)
or die("Die Mail konnte nicht versendet werden.");
header("Location: $strReturnhtml");
exit;
}
### Name #########
if ((isset($_GET['Name'])) AND (empty($_GET['Name']))) {
$err_Name = '<p style="color: #F00">Das Feld Name darf nicht Leer sein</p>';
}
else { $err_Name = ''; }
if (isset($_GET['Name'])) {
$name_value = htmlspecialchars($Name);
}
else { $name_value = ''; }
#########################
##### Nachname ###########
if (isset($_GET['Nachname'])) {
$nach_name_value = htmlspecialchars($Nachname);
}
else { $nach_name_value = ''; }
#########################
#### Textfeld #############
if ((isset($_GET['Nachricht'])) AND (empty($_GET['Nachricht']))) {
$err_Nachricht = '<p style="color: #F00">Das Feld Nachricht darf nicht Leer sein</p>';
}
else { $err_Nachricht = ''; }
if (isset($_GET['Nachricht'])) {
$text_value = htmlspecialchars($Nachricht);
}
else { $text_value = ''; }
########################
#### Select ##
if (isset($_GET['Browser'])) {
$array = array($_GET['Browser']);
foreach ($array as $wert) {
$mein_string = $wert;
}
} else { $mein_string = ''; }
#######################
echo '<p>** ist Pflichtfeld</p>';
echo $err_Name;
echo $err_Nachricht;
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="GET">
Ihr Name: **
<input type="text" name="Name" value="<?php echo $name_value; ?>" /> <br>
Ihr Nachname:
<input type="text" name="Nachname" value="<?php echo $nach_name_value; ?>" /> <br>
Sie mögen:
<select name="Browser">
<option value="Opera" <?php
if ($mein_string == 'Opera') {
echo 'selected';
} else { echo ''; }
?>>Opera</option>
<option value="Mozilla" <?php
if ($mein_string == 'Mozilla') {
echo 'selected';
} else { echo ''; }
?>>Mozilla</option>
</select>
<br>
Nachricht: **
<textarea name="Nachricht" rows="3" cols="20"><?php echo $text_value; ?></textarea>
<p><input type="submit" value="Vorschau" />
<?php
if ((isset($_GET['Name'])) AND (!empty($_GET['Name'])) AND (isset($_GET['Nachricht'])) AND (!empty($_GET['Nachricht']))) {
echo '<input type="submit" name="abschicken" value="abschicken" /></p>';
} else { }
?>
</form>
Es geht mir vor allem um Sicherheit, das das Script besser sein kann ist mir klar, besser kann ich´s leider nicht.
grüße