Formular für Website weiterempfehlen

So hab ich es rausgeschickt:
sprich das packst Du in eine PHP-Datei (z.B.:empfehlen.php) und verlinkst auf diese
Dein Formist dann erstmal hinfällig
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Seite weiterempfehlen by Julian Brinke</title>
</head>
<body>
<?php
//Funktion Formulareingaben überprüfen
function check_injection($foobar) {
    if ( strpos($foobar,"\n") || strpos($foobar,"\r") || strpos($foobar,"cc:") || strpos($foobar,"bcc:") || strpos($foobar,"Content-Type:")) {
        return flase;
        } 
    else { return true; }                
    } 

//Funktion Email überprüfen
function check_email($foobar) {
    $nonascii        = "\x80-\xff";
    $nqtext            = "[^\\\\$nonascii\015\012\"]";
    $qchar            = "\\\\[^$nonascii]";                         
    $protocol        = '(?:mailto:)';
    $normuser        = '[a-zA-Z0-9][a-zA-Z0-9_.-]*';                
    $quotedstring    = "\"(?:$nqtext|$qchar)+\"";
    $user_part        = "(?:$normuser|$quotedstring)";
    $dom_mainpart    = '[a-zA-Z0-9][a-zA-Z0-9._-]*\\.';    
    $dom_subpart    = '(?:[a-zA-Z0-9][a-zA-Z0-9._-]*\\.)*';
    $dom_tldpart    = '[a-zA-Z]{2,4}';                            
    $domain_part    = "$dom_subpart$dom_mainpart$dom_tldpart";
    $regex            = "$protocol?$user_part\@$domain_part";
    return preg_match("/^$regex$/",$foobar);                    
    } 

//Funktion Domains blocken
function block_domain($foobar) {
    if ( strpos($foobar,"meine-domain.de") || strpos($foobar,"andere-domain.com")) {
        return false;
        } 
    else { return true; }                
    } 

// Standardvariablen definieren
$betreff = "Betreff";
$nachricht = "Nachricht";
$mysite = "www.google.de";

//Fehlermeldung für Email Injection
$stop_message = "<p>email injection detected! - ip: logged<br />Sie haben Daten in einer Form angegeben, die auf einen versuchten Missbrauch schlie&szlig;en lassen!</p><p>Die Ausdr&uuml;cke wie 'bbc:', 'cc:' oder 'Content-Type:' sind nicht in allen Feldern erlaubt.<br />Bitte überprüfen Sie Ihre Eingaben und versuchen Sie es erneut.</p>";

if (isset($_POST['submit'])) {
//falls register globals aus ist
    $verify1 = $_POST['verify1'];
    $verify2 = $_POST['verify2'];
    $firstname = htmlentities($_POST['firstname']);
    $lastname = htmlentities($_POST['lastname']);
    $email = $_POST['email'];
    $emp1 = $_POST['emp1'];
    $email1 = $_POST['email1'];
    $emp2 = $_POST['emp2'];
    $email2 = $_POST['email2'];
    $emp3 = $_POST['emp3'];
    $email3 = $_POST['email3'];
    $emp4 = $_POST['emp4'];
    $email4 = $_POST['email4'];
    $nachricht = htmlentities($_POST['nachricht']);
    
    $send = "yes";
//Daten überprüfen
    // Überprüfen ob das Formular zur Eingabe benutzt wurde
    if ($verify2 != md5(md5($verify1))) {
        echo $stop_message;
        $send = "no";
        }
    
    //IP und Datum ermitteln
    $remote = getenv("REMOTE_ADDR"); 
    if ($remote == "") { $ip = "<i> no ip </i>"; }
    else {
        $ip = getHostByAddr($remote); 
        $ip .= " // ";
        $ip .= $remote; 
    }
    if (!empty($HTTP_POST_VARS)) { extract($HTTP_POST_VARS); } 
    $date = date("m.d.Y H:i:s"); 

    //Daten überprüfen
    if ( empty ($firstname)) {  
        echo "Geben Sie bitte Ihren vollst&auml;ndigen Namen ein. Danke.<br />";
        $send = "no";
        }
    if (!empty ($lastname)) {
        if (!check_injection($lastname)) { 
            echo $stop_message;
            $send = "no";
            }
        }
    if (!empty ($firstname)) {
        if (!check_injection($firstname)) { 
            echo $stop_message;
            $send = "no";
            }
        }
    if (empty ($email)) {  
        echo "Geben Sie bitte Ihre Emailadresse ein. Danke.<br />";
        $send = "no";
        }
    if (!empty ($email)) {
        if (!check_injection($email)) { 
            echo $stop_message;
            $send = "no";
            }
        if (!check_email($email)) {
            echo "Geben Sie bitte eine g&uuml;ltige Emailadresse an. Danke.<br />";
            $send = "no";
            }
        if (!block_domain($email)) {
            echo "Geben Sie bitte eine g&uuml;ltige Emailadresse an. Danke.<br />";
            $send = "no";
            }
        }
    if (empty ($email1)) {  
        echo "Geben Sie bitte mindestens die Emailadresse eines Empfängers ein. Danke.<br />";
        $send = "no";
        }
    if (!empty ($email1)) {
        if (!check_injection($email1)) { 
            echo $stop_message;
            $send = "no";
            }
        if (!check_email($email1)) {
            echo "Geben Sie bitte eine g&uuml;ltige Emailadresse an. Danke.<br />";
            $send = "no";
            }
        if (!block_domain($email1)) {
            echo "Geben Sie bitte eine g&uuml;ltige Emailadresse an. Danke.<br />";
            $send = "no";
            }
        }
    if (!empty ($email2)) {
        if (!check_injection($email2)) { 
            echo $stop_message;
            $send = "no";
            }
        if (!check_email($email2)) {
            echo "Geben Sie bitte eine g&uuml;ltige Emailadresse an. Danke.<br />";
            $send = "no";
            }
        if (!block_domain($email2)) {
            echo "Geben Sie bitte eine g&uuml;ltige Emailadresse an. Danke.<br />";
            $send = "no";
            }
        }
    if (!empty ($email3)) {
        if (!check_injection($email3)) { 
            echo $stop_message;
            $send = "no";
            }
        if (!check_email($email3)) {
            echo "Geben Sie bitte eine g&uuml;ltige Emailadresse an. Danke.<br />";
            $send = "no";
            }
        if (block_domain($email3)) {
            echo "Geben Sie bitte eine g&uuml;ltige Emailadresse an. Danke.<br />";
            $send = "no";
            }
        }
    if (!empty ($email4)) {
        if (!check_injection($email4)) { 
            echo $stop_message;
            $send = "no";
            }
        if (!check_email($email4)) {
            echo "Geben Sie bitte eine g&uuml;ltige Emailadresse an. Danke.<br />";
            $send = "no";
            }
        if (!block_domain($email4)) {
            echo "Geben Sie bitte eine g&uuml;ltige Emailadresse an. Danke.<br />";
            $send = "no";
            }
        }
    if (empty ($nachricht)) {  
        echo "Geben Sie bitte eine Nachricht ein. Danke.<br />";
        $send = "no";
        }
    if (!empty ($nachricht)) {
        if (!check_injection($nachricht)) { 
            echo $stop_message;
            $send = "no";
            }
        }
//Daten senden
    if ($send == "yes") {
echo $send;
$headers = "From: $firstname $lastname <$email>\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-type: text/plain; charset=iso-8859-1\n"; 
mail("$email1", "$firstname $lastname empfiehlt Dir: $mysite","
Hallo $emp1,
$firstname $lastname empfiehlt Dir: $mysite

außerdem möchte er Dir noch Folgendes mitteilen:
---
$nachricht
---
Datum: $date
ip: $ip","$headers");

mail("$email2", "$firstname $lastname empfiehlt Dir: $mysite","
Hallo $emp2,
$firstname $lastname empfiehlt Dir: $mysite

außerdem möchte er Dir noch Folgendes mitteilen:
---
$nachricht
---
Datum: $date
ip: $ip","$headers");

mail("$email3", "$firstname $lastname empfiehlt Dir: $mysite","
Hallo $emp3,
$firstname $lastname empfiehlt Dir: $mysite

außerdem möchte er Dir noch Folgendes mitteilen:
---
$nachricht
---
Datum: $date
ip: $ip","$headers");

mail("$email4", "$firstname $lastname empfiehlt Dir: $mysite","
Hallo $emp4,
$firstname $lastname empfiehlt Dir: $mysite

außerdem möchte er Dir noch Folgendes mitteilen:
---
$nachricht
---
Datum: $date
ip: $ip","$headers");
}
echo "Senden abgeschlossen";
}
//Kontaktformular
?>
<form id="mailtoform" method="post" action="">
    <fieldset id="mailfrom">
        <legend>pers&ouml;nliche Daten</legend>
        <label for="firstname">Vorname : </label>
        <input name="firstname" id="firstname" type="text" value="<?php echo $firstname; ?>" />
        <br />
        <label for="lastname">Nachname : </label> 
        <input name="lastname" id="lastname" type="text" value="<?php echo $lastname; ?>" />
        <br />
        <label for="email">Email : </label> 
        <input name="email" id="email" type="text" value="<?php echo $email; ?>" />
    </fieldset>
    <fieldset id="mailto">
        <legend>Empfänger</legend>
        <label for="emp1">Empfänger 1 : </label>
        <input name="emp1" id="emp1" type="text" value="<?php echo $emp1; ?>" />
        <br />
        <label for="email1">Email : </label> 
        <input name="email1" id="email1" type="text" value="<?php echo $email1; ?>" />
        <br />
        <label for="emp2">Empfänger 2 : </label>
        <input name="emp2" id="emp2" type="text" value="<?php echo $emp2; ?>" />
        <br />
        <label for="email2">Email : </label> 
        <input name="email2" id="email2" type="text" value="<?php echo $email2; ?>" />
        <br />
        <label for="emp3">Empfänger 3 : </label>
        <input name="emp3" id="emp3" type="text" value="<?php echo $emp3; ?>" />
        <br />
        <label for="email3">Email : </label> 
        <input name="email3" id="email3" type="text" value="<?php echo $email3; ?>" />
        <br />
        <label for="emp1">Empfänger 4 : </label>
        <input name="emp4" id="emp4" type="text" value="<?php echo $emp4; ?>" />
        <br />
        <label for="email4">Email : </label> 
        <input name="email4" id="email4" type="text" value="<?php echo $email4; ?>" />
    </fieldset>
    <fieldset id="message">
        <legend>Nachricht</legend>
        <label for="nachricht">Nachricht : </label>
        <textarea name="nachricht" id="nachricht" cols="40" rows="10"><?php echo $nachricht; ?></textarea>
          </fieldset>
        <p>
        <input type="hidden" name="verify1" value="<?php echo time(); ?>" />
        <input type="hidden" name="verify2" value="<?php echo md5(md5(time())); ?>" />
        <input id="button1" type="submit" name="submit" value="absenden" />
        </p>
</form>
</body>
</html>
 
Zuletzt bearbeitet:
Die Felder:
Nachname
Email 2 bis 4
Empfänger 2 bis 4
sind freiwillig

HTML:
        <label for="betreff">Betreff : </label> 
        <input name="betreff" id="betreff" type="text" value="<?php echo $betreff; ?>" />
        <br />
kann gelöscht werden
 
Ja da kam wirklich nur die Hälfte per Mail rüber. :suspekt:

So ist es Tipptop. Das kann ich auch gut anpassen. :)

Vielen Dank. ;)

Wenn ich Dir was gutes tun kann / helfen, z.B. im Bereich Grafik/Design oder Musikproduktionen, lass es mich wissen. :)

Gruss Chris
 
Zunächst möchte ich erst einmal sagen, dass dieses Skript sehr praktisch ist.

Allerdings erzeugt das Skript einen HTTP-500-Fehler, wenn nicht alle 4 Empfänger definiert sind und stattdessen nur 3, 2 oder nur 1 Empfänger festgelegt wird.

Zwar werden die Mails gesendet, allerdings kommt der 500er-Fehler.

Nur so als Info von jemandem, der Das Skript mal getestet hat.
 

Neue Beiträge

Zurück