| Neuer Benutzer
Registriert seit: 14.09.2009
Beiträge: 2
PHP-Kenntnisse: Anfänger
| Scriptsuche/Formmailer mit Betreff zum Auswählen Hallo, ich habe mal eine Frage und konnte bisher dazu nichts finden. Ich möchte gerne ein Formular für meine HP erstellen und dann das so machen dass die Besucher den Betreff also der der dann auch in der Email steht selber auswählen, schreiben können.
Am liebsten wäre mir das mit so einem Auswahl Feld, kann mir da jemand weiter helfen?
ob in php oder nur html ist egal aber nur html wäre mir lieber.
Hier mal das Formular in PHP PHP-Code: <?php //Globale Einstellungen $max_attach_size = 2097152; //maximale Dateigroesse in Bytes
//Session session_start(); if (!isset($_SESSION['captcha'])) { $_SESSION['captcha'] = rand(1000,9999); }
//Captcha Aufruf if (isset($_GET["action"]) && ($_GET["action"] == "captcha")) { Captcha(); }
$errCaptcha = "";
$lstq_0 = ""; $lstq_1 = ""; $lstq_2 = ""; $lstq_3 = ""; if (isset($_POST["q"])) { if ($_POST["q"] == "1") $lstq_0 = "selected"; if ($_POST["q"] == "2") $lstq_1 = "selected"; if ($_POST["q"] == "3") $lstq_2 = "selected"; if ($_POST["q"] == "4") $lstq_3 = "selected"; }
if (isset($_POST["Name"])) $varName = $_POST["Name"]; else $varName = "";
if (isset($_POST["email"])) $varemail = $_POST["email"]; else $varemail = "";
if (isset($_POST["Homepage"])) $varHomepage = $_POST["Homepage"]; else $varHomepage = "";
//E-Mailversand if (isset($_GET["action"]) && ($_GET["action"] == "send")) { $bFormOK = true;
if ($bFormOK == true) sendMail(); }
//Funktionsteil function CryptString($str) { for ($i=0;$i<=strlen($str)-1;$i++) { $str[$i] = chr(23 ^ ord($str[$i])); }
return $str; }
function Captcha() { $c_captcha_breite = 80; //größe Captcha Bild $c_captcha_hoehe = 25; $c_captcha_groesse = 15; //Schriftgröße Captcha
Header("Content-Disposition: filename=\"captcha.png\"\r\n"); Header("Content-type: image/png");
//Bild erzeugen $im = imagecreate($c_captcha_breite,$c_captcha_hoehe);
//Farbe und Schriftart $captcha_color = imagecolorallocate($im,44,44,44); $captcha_bg_color = imagecolorallocate($im,150,150,150); $captcha_stoer_color = imagecolorallocate($im,100,100,100);
imagefill($im,0,0,$captcha_bg_color);
srand ((double)microtime()*1000000);
//Störmuster einbringen for ($x = 0;$x<=$c_captcha_breite;$x++) for ($y = 0;$y<=$c_captcha_hoehe;$y++) { $curRand = rand(0,3); if ($curRand == 1) imagesetpixel($im,$x,$y,$captcha_stoer_color); }
imagestring($im,5,15,5,$_SESSION["captcha"],$captcha_color);
ImagePng($im); }
function CleanXML($str) { $str = str_replace("&","&",$str); $str = str_replace("<","<",$str); $str = str_replace(">",">",$str); $str = stripslashes($str);
return $str; }
function sendMail() { //Textmail-Template $messageText='*Formular-Weiterleitungs-Service* -----------------------------------------------------------------';
//HTML-Template $messageHTML = ' <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Formular</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <style type="text/css"> <!-- p,li { font-family: Verdana, sans-serif; font-size: 10pt }
body { font-family:Verdana, sans-serif; font-size: 10pt;
background-color:#FFFFFF;
scrollbar-shadow-color: #000000; scrollbar-face-color: #CCCCCC;
scrollbar-highlight-color: #000000; scrollbar-3dlight-color: #FFFFFF;
scrollbar-darkshadow-color: #ffffff; scrollbar-track-color: #EEEEEE;
scrollbar-arrow-color: #000000 }
TD { font-family:Verdana, sans-serif; font-size: 10pt }
H1 { font-family:Verdana, sans-serif; font-size: 16pt; font-weight: bold; font-style: italic; }
H2 { font-family:Verdana, sans-serif; font-size: 14pt; font-weight: bold; font-style: italic;}
H3 { font-family:Verdana, sans-serif; font-size: 12pt; font-style: italic; font-weight: bold }
A { font-family:Verdana, sans-serif; color: #000080; font-size: 9pt; font-weight: normal; text-decoration: none }
A:hover { color: #FF0400; text-decoration: underline }
--> </style>
</head>
<body> <div align="center"> <table width="65%" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="5%" rowspan="3" bgcolor="#999999"> </td> <td width="95%"><div align="center"> <h2>#SUBJECT#</h2> </div></td> </tr> <tr> <td><hr size="1"> <div align="center"> <table width="90%" border="0" align="center" cellpadding="0" cellspacing="5"> <tr> <td colspan="2" valign="top"> <div align="left">#EINLEITTEXT#</div></td> </tr> </table> <p><strong>Inhalt:</strong><br> #PLACEHOLDER#</p> </div> <hr size="1"> <div align="center"><strong><br> Weitere Informationen:</strong> </div> <table width="90%" border="0" align="center" cellpadding="0" cellspacing="5"> <tr> <td width="25%" height="18" valign="top"> <div align="right"><strong>Datum:</strong></div></td> <td width="75%">#DATE#</td> </tr> <tr> <td height="18" valign="top"> <div align="right"><strong>IP-Adresse:</strong></div></td> <td>#IP#</td> </tr> <tr> <td height="18" valign="top"> <div align="right"><strong>User-Agent:</strong></div></td> <td>#UA#</td> </tr> </table> <hr size="1"> </td> </tr> <tr> <td><div align="center"></div></td> </tr> </table> </div> </body> </html>';
$sender = $_POST["email"]; $subj = $_POST["subject"]; $type = $_POST["typemail"]; $strEinleitText = CryptString(base64_decode($_POST["einleittext"])); $strFormID = $_POST["formid"]; $strSettings = CryptString(base64_decode($_POST["settings"])); $returnSender = $_POST["ReturnToSender"]; $redir = $_POST["redirect"];
//E-Mail-Adressen auslesen if ($_POST["crypt"] == "1") { $rec1 = CryptString(base64_decode(stripslashes($_POST["admin"]))); $rec2 = CryptString(base64_decode(stripslashes($_POST["admin1"]))); $rec3 = CryptString(base64_decode(stripslashes($_POST["admin2"]))); } else { $rec1 = $_POST["admin"]; $rec2 = $_POST["admin1"]; $rec3 = $_POST["admin2"]; }
$textmail = true;
if ($type == "plain" || $type == "") { $fmtTrail= implode("",file("trail.htt")); $message= implode("", file("mail.htt")); $message.= "\n\n";
$fields = "";
foreach($_POST as $name=> $value) { $str = stripslashes($value);
if (($name != "redirect") AND ($name != "einleittext") AND ($name != "probe") AND ($name != "crypt") AND ($name != "ReturnToSender") AND ($name
!= "next") AND ($name != "typemail") AND ($name != "admin") AND ($name != "admin1") AND ($name != "admin2") AND ($name != "subject") AND ($name
!= "captcha_input") AND ($name != "formid") AND ($name != "settings")) { //in Mail eintragen $fields.= "$name: $str\n\n";
//Einleitungstextersetzung durchführen $strEinleitText = str_replace('{#' . $name . '#}', $str, $strEinleitText); } }
$message.= str_replace("#br#", "\n", $strEinleitText); $message.= "\n\n"; $message.= $fields;
//Anhängen der IP, Browser und Datum $message.= $fmtTrail; $message.= "-----------------------------\n"; $message.= date("l dS of F Y h:i:s A") . "\n"; $message.= $_SERVER['REMOTE_ADDR'] . "\n"; $message.= $_SERVER['HTTP_USER_AGENT'];
//Replace Operationen $message = str_replace("#SUBJECT#", $subj, $message);
$textmail = true; }
if ($type == "html") { $inHtml= "<table width=\"95%\">";
$message= $messageHTML; foreach($_POST as $name=> $value) { $str = stripslashes($value); $str = str_replace("\n","<br>",$str);
if (($name != "redirect") AND ($name != "einleittext") AND ($name != "probe") AND ($name != "crypt") AND ($name != "ReturnToSender") AND ($name
!= "next") AND ($name != "typemail") AND ($name != "admin") AND ($name != "admin1") AND ($name != "admin2") AND ($name != "subject") AND ($name
!= "captcha_input") AND ($name != "formid") AND ($name != "settings") AND ($name != "PHPSESSID")) { //Daten eintragen $inHtml.= "<tr>\n"; $inHtml.= "<td width=\"33%\" valign=\"top\"><div align=\"right\"><strong>" . $name . ":</strong></div></td>\n"; $inHtml.= "<td width=\"67%\" valign=\"top\">" . $str . "</td></tr>\n";
//Ersetzung in Einleitungstext $strEinleitText = str_replace('{#' . $name . '#}', $str, $strEinleitText); } }
$inHtml.= "</table>";
//Anhängen der IP, Browser und Datum
$datum = date("l dS of F Y h:i:s A") . "\n";
$ip = $_SERVER['REMOTE_ADDR'] . "\n"; $ua = $_SERVER['HTTP_USER_AGENT'];
//replace Operationen $message = str_replace("#EINLEITTEXT#", str_replace("#br#", "<br>", $strEinleitText), $message); $message = str_replace("#PLACEHOLDER#", $inHtml, $message); $message = str_replace("#DATE#", $datum, $message); $message = str_replace("#IP#", $ip, $message); $message = str_replace("#UA#", $ua, $message); $message = str_replace("#SUBJECT#", $subj, $message);
$textmail = false; }
if ($type == "xml") { $message = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" standalone=\"yes\"?>\n\n"; $message .= "<dataroot>\n"; $message .= " <xml>\n";
foreach($_POST as $name=> $value) { $str = CleanXML($value);
if (($name != "redirect") AND ($name != "einleittext") AND ($name != "probe") AND ($name != "crypt") AND ($name != "ReturnToSender") AND ($name
!= "next") AND ($name != "typemail") AND ($name != "admin") AND ($name != "admin1") AND ($name != "admin2") AND ($name != "subject") AND ($name
!= "captcha_input") AND ($name != "formid") AND ($name != "settings") AND ($name != "PHPSESSID")) { $message .= " <" . $name . ">" . $str . "</" . $name .">\n"; } }
//Anhängen der IP, Browser und Datum $message .= " <date>" . date("l dS of F Y h:i:s A") . "</date>\n"; $message .= " <ip>" . $_SERVER['REMOTE_ADDR'] . "</ip>\n"; $message .= " <ua>" . $_SERVER['HTTP_USER_AGENT'] . "</ua>\n";
$message .= " </xml>\n"; $message .= "</dataroot>";
$textmail = true; }
//Anhang
//Anhang
$anhang = false;
//Über alle Felder gehen foreach ($_FILES as $value) { if (!$value['error'] and ($value['name'] != '.htaccess')) { move_uploaded_file($value['tmp_name'], "filetemp/" . $value['name']); $anhang = true; } }
$mail = new sendmail(); $mail->from($sender); $mail->to($rec1); $mail->subject($subj); $mail->text($message,$textmail,$anhang);
if ($anhang == true) { foreach ($_FILES as $value) { $mail->attachment("filetemp/" . $value['name']); } }
$mail->send();
if ($rec2 != "") { $mail2 = new sendmail(); $mail2->from($sender); $mail2->to($rec2); $mail2->subject($subj); $mail2->text($message,$textmail,$anhang);
if ($anhang == true) { foreach ($_FILES as $value) { $mail->attachment("filetemp/" . $value['name']); } }
$mail2->send(); }
if ($rec3 != "") { $mail3 = new sendmail(); $mail3->from($sender); $mail3->to($rec3); $mail3->subject($subj); $mail3->text($message,$textmail,$anhang);
if ($anhang == true) { foreach ($_FILES as $value) { $mail->attachment("filetemp/" . $value['name']); } }
$mail3->send(); }
//Kopie an Absender if ($returnSender == "-1") { $mail4 = new sendmail(); $mail4->from($rec1); $mail4->to($sender); $mail4->subject($subj . " - Kopie"); $mail4->text($message,$textmail,$anhang); $mail4->send(); }
//Dateien löschen if ($anhang == true) { foreach ($_FILES as $value) { @unlink("filetemp/" . $value['name']); }
}
header("Location:" . $redir); }
class sendmail { // Variable deklarieren var $emailheader = ""; var $emailheader2 = ""; var $textheader = ""; var $textboundary = ""; var $emailboundary = ""; var $betreff = ""; var $empfaenger = ""; var $attachment = array();
function sendmail() { $this->textboundary = uniqid(time()); $this->emailboundary = uniqid(time()); }
// Von wem die Email kommt in den Header setzen function from($name) { $this->emailheader .= "From: $name\n"; $this->emailheader .= "MIME-Version: 1.0\n"; }
// Funktion um den Adressaten anzugeben function to($to) { $this->empfaenger = $to; } // Funktionn für den Betreff anzugeben function subject($subject) { $this->betreff = $subject; }
// Textdaten in Email Header packen function text($text,$textmail,$anhang) { if ($textmail == false) { $this->emailheader2 .= "Content-Type: multipart/alternative; boundary=\"$this->textboundary\"\n"; $this->textheader .= "--$this->textboundary\n"; $this->textheader .= "Content-Type: text/plain; charset=\"ISO-8859-1\"\n"; $this->textheader .= "Content-Transfer-Enconding: quoted-printable\n\n"; $this->textheader .= strip_tags($text)."\n\n"; $this->textheader .= "--$this->textboundary\n"; $this->textheader .= "Content-Type: text/html; charset=\"ISO-8859-1\"\n"; $this->textheader .= "Content-Transfer-Enconding: quoted-printable\n\n"; $this->textheader .= "<html><body>$text</body></html>\n\n"; $this->textheader .= "--$this->textboundary--\n\n"; } else { if ($anhang == true) { $this->emailheader2 .= "Content-Type: multipart/alternative; boundary=\"$this->textboundary\"\n"; $this->textheader .= "--$this->textboundary\n"; $this->textheader .= "Content-Type: text/plain; charset=\"ISO-8859-1\"\n"; $this->textheader .= "Content-Transfer-Enconding: quoted-printable\n\n"; } $this->textheader .= $text . "\n\n";
if ($anhang == true) { $this->textheader .= "--$this->textboundary--\n\n"; } } }
// Funktion zum anhängen für Attachments in der Email function attachment($datei) { // Überprüfen ob File Existiert if(is_file($datei)) { // Header für Attachment erzeugen $filename = str_replace("filetemp/", "", $datei); $attachment_header = "--".$this->emailboundary."\n" ; $attachment_header .= "Content-Type: application/octet-stream;\n name=\"$datei\"\n"; $attachment_header .= "Content-Transfer-Encoding: base64\n"; $attachment_header .= "Content-Disposition: attachment;\n filename=\"$filename\"\n\n";
// Daten der Datei einlesen, in das BASE64 Format formatieren und auf max 72 Zeichen pro Zeile // aufteilen $file['inhalt'] = fread(fopen($datei,"rb"),filesize($datei)); $file['inhalt'] = base64_encode($file['inhalt']); $file['inhalt'] = chunk_split($file['inhalt'],72);
// Attachment mit Header in der Klassenvariable speichern $this->attachment[] = $attachment_header.$file['inhalt']."\n"; } }
// Funktion zum erstellen des Kompletten Headers der Email // Senden der Email function send() { $header = $this->emailheader; $body = "";
// Überprüfen ob Attachments angehängt wurden if(count($this->attachment)>0) { $header .= "Content-Type: multipart/mixed; boundary=\"$this->emailboundary\"\n"; $body .= "--$this->emailboundary\n"; $body .= $this->emailheader2 . "\n"; $body .= $this->textheader;
for($i=0;$i<count($this->attachment);$i++) { $body .= $this->attachment[$i]; }
$body .= "--$this->emailboundary--"; } else { $header .= $this->emailheader2; $body .= $this->textheader; }
// Versenden der Mail mail("$this->empfaenger",$this->betreff,$body,$header); } }
?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title> Kontaktformular </title> <meta name="generator" content="DA-Formmaker"> <style type="text/css"> <!-- body { background-color:#FFFFFF; } h1 { color:#000000; font-family:Arial,Helvetica,Geneva; font-size:12pt; } p,li { color:#000080; font-family:Arial,Helvetica,Geneva; font-size:10pt; } TD { color:#000080; font-family:Arial,Helvetica,Geneva; font-size:10pt; } td.my { background-color:#C0C0C0} --> </style>
<!-- JSCRIPT -->
</head> <body> <form action="<?php print $_SERVER["PHP_SELF"]?>?action=send&PHPSESSID=<?php echo session_id();?>" method="POST" name="DAFORM"
enctype="multipart/form-data" target="_self"> <input type="hidden" name="formid" value="8424578"> <input type="hidden" name="settings" value="cXZ7ZHI="> <input type="hidden" name="redirect" value="http://www.ekiwi.de/form/danke.htm"> <input type="hidden" name="subject" value=" "> <input type="hidden" name="admin" value="das.lenatie@hotmail.de"> <input type="hidden" name="admin1" value=""> <input type="hidden" name="admin2" value=""> <input type="hidden" name="typemail" value="html"> <input type="hidden" name="crypt" value="0"> <input type="hidden" name="einleittext" value=""> <!-- FIELDEMAIL --> <input type="hidden" name="ReturnToSender" value="0">
<table width="500px" align="center" border="0" cellpadding="3" cellspacing="2"> <tr> <td colspan="2"><h1>Kontaktformular<br> </h1></td> </tr> <tr> <td colspan="2"><p>Mit diesem Formular können Sie mit uns Kontakt aufnehmen. <br> </p></td> </tr> <tr><td align="right" valign="top" class="my" nowrap></td> <td class="my"> <select name="q" size="1"><option <?php echo $lstq_0;?>>1</option> <option <?php echo $lstq_1;?>>2</option> <option <?php echo $lstq_2;?>>3</option> <option <?php echo $lstq_3;?>>4</option> </select> </td></tr>
<tr><td align="right" valign="top" class="my" nowrap>Name</td> <td class="my"> <input type="text" name="Name" value="<?php echo $varName;?>" size="25" maxlength="200"> </td></tr>
<tr><td align="right" valign="top" class="my" nowrap>E-Mail</td> <td class="my"> <input type="text" name="email" value="<?php echo $varemail;?>" size="25" maxlength="200"> </td></tr>
<tr><td align="right" valign="top" class="my" nowrap>Homepage</td> <td class="my"> <input type="text" name="Homepage" value="<?php echo $varHomepage;?>" size="25" maxlength="200"> </td></tr>
<!-- CAPTCHA --> <tr> <td colspan="2"><p class="my"><br> </p></td> </tr> <tr> <td colspan="2"> <input type="submit" name="next" value="Absenden" > <input type="reset" name="next" value="Zurücksetzen" >
<!-- PRINTBUTTON --> </td> </tr> </table> </form> </body> </html> lg Acavi
Geändert von Chriz (14.09.2009 um 20:40 Uhr).
Grund: BBCode eingefügt, bitte in Zukunft drauf achten
|