mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 29.03.2024 01:41 Benutzername: Passwort: Auto-Login

Thema: Newsletter-Option einbauen, Haken machen vom 09.10.2007


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> Newsletter-Option einbauen, Haken machen
Autor Nachricht
Leone
Threadersteller

Dabei seit: 14.09.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Di 09.10.2007 15:40
Titel

Newsletter-Option einbauen, Haken machen

Antworten mit Zitat Zum Seitenanfang

Hallo ich habe für eine Webseite ein Kontakt-formular-Script gefunden:
PHP-Code:

Code:
<?php
// Your e-mail adress:
$mailto = "name@domain.tld";

# Maximum size of attachment in bytes:
$max_attach_size = 500000;

?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Formmailer</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<style type="text/css">
<!--
body                { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 13px; color: #000000; background: #ffff3; margin: 20px; padding: 0px; border: 0px; }
.caution            { color: red; font-weight: bold; }
-->
</style>
</head>
<body><?php
/*if (empty($_POST['form_submitted']))
 {
  ?><p>Please fill out the form:</p><?php
 }
*/
 if (isset($_POST["form_submitted"]))
 {
  $name = trim(preg_replace("/\r/", "", $_POST['name']));
  $name = preg_replace("/\n/", "", $name);
  $name = stripslashes($name);
  $email = trim(preg_replace("/\r/", "", $_POST['email']));
  $email = preg_replace("/\n/", "", $email);
  $subject = trim(stripslashes($_POST['subject']));
  $text = trim(stripslashes($_POST['text']));

  unset($errors);
  if($email == "") $errors[] = "no e-mail address entered";
  elseif($email != "" and !preg_match("/^[^@]+@.+\.\D{2,5}$/", $email)) $errors[] = "e-mail address seems to be invalid";
  if($text == "") $errors[] = "no message entered";
  if($_FILES['probe']['size'] > $max_attach_size) $errors[] = "attachment too large (".number_format($_FILES['probe']['size']/1000,0,",","")." KB) - maximum size: ".number_format($max_attach_size/1000,0,",","")." KB";

  if (empty($errors))
   {
    #if ($name != "") $mail_name=$name; else $mail_name="Unknown";
    if ($subject != "") $mail_subject = $subject; else $mail_subject = "No subject";
    #if ($email != "") $mail_email = $email; else $mail_email = "email@unknown.xyz";
    $ip = $_SERVER["REMOTE_ADDR"];

    // if attachment, MIME-Mail:
    if (isset($_FILES['probe']['name']) && trim($_FILES['probe']['name']) != "")
     {
      // read and encode file:
      $datei_content = fread(fopen($_FILES['probe']['tmp_name'],"r"),filesize($_FILES['probe']['tmp_name']));
      $datei_content = chunk_split(base64_encode($datei_content),76,"\n");
      // Boundary:
      $boundary = md5(uniqid(rand()));
      // Mail-Header:
      $mail_header = "From: ".$name." <".$email.">\n";
      $mail_header .= "X-Sender-IP: ".$ip."\n";
      $mail_header .= "MIME-Version: 1.0\n";
      $mail_header .= "Content-Type: multipart/mixed; boundary=\"".$boundary."\"\n";
      $mail_header .= "This is a multi-part message in MIME format.\n";
      // Mail-Text:
      $mail_header .= "--".$boundary;
      $mail_header .= "\nContent-Type: text/plain";
      $mail_header .= "\nContent-Transfer-Encoding: 8bit";
      $mail_header .= "\n\n".$text;
      // Attachment:
      $mail_header .= "\n--".$boundary;
      $mail_header .= "\nContent-Type: ".$_FILES['probe']['type']."; name=\"".$_FILES['probe']['name']."\"";
      $mail_header .= "\nContent-Transfer-Encoding: base64";
      $mail_header .= "\nContent-Disposition: attachment; filename=\"".$_FILES['probe']['name']."\"";
      $mail_header .= "\n\n".$datei_content;
      // End:
      $mail_header .= "\n--".$boundary."--";
      // Sende E-Mail und gebe Fehler bzw. Bestaetigung aus
      if (@mail($mailto,$mail_subject,"",$mail_header)) $sent = true; else $errors[] = "no connection to the mailserver - please try again later";
     }
    // no attachment, normal E-mail:
    else
     {
      $mail_header = "From: ".$name." <".$email.">\n";
      $mail_header .= "X-Sender-IP: $ip\n";
      $mail_header .= "Content-Type: text/plain";
      if (@mail($mailto,$mail_subject,$text,$mail_header)) $sent = true; else $errors[] = "no connection to the mailserver - please try again later";
     }

    // copy to sender:
    if (isset($sent))
     {
      $copy_subject = strip_tags($mail_subject);
      $copy_subject = str_replace('http://','',$copy_subject);
      $copy_subject = str_replace('www.','www. ',$copy_subject);
      $copy_text = strip_tags($text);
      $copy_text = str_replace('http://','',$copy_text);
      $copy_text = str_replace('www.','www. ',$copy_text);
      if (isset($_FILES['probe']['name']) && trim($_FILES['probe']['name']) != "") $copy_text = "Subject: ".$copy_subject."\n\n".$copy_text."\n\nAttachment: ".$_FILES['probe']['name']; else $copy_mail_text = "Subject: ".$mail_subject."\n\n".$copy_text;
      $header= "From: ".$mailto."\n";
      $header .= "X-Sender-IP: ".$ip."\n";
      $header .= "Content-Type: text/plain";
      @mail($email, "Copy of sent e-mail", $copy_text, $header);
     }
   }
 }

if (empty($sent))
 {
  if(isset($errors))
   {
    ?><p class="caution">Error:</p><ul><?php foreach($errors as $f) { ?><li><?php echo $f; ?></li><?php } ?></ul><br /><?php
   }

  ?><form method="post" action="<?php echo basename($_SERVER["PHP_SELF"]); ?>" enctype="multipart/form-data"><div>
  <p><b>Name:</b><br /><input type="text" name="name" value="<?php if (isset($name)) echo htmlentities(stripslashes($name)); else echo ""; ?>" size="35" /></p>
  <p><b>E-mail:</b><br /><input type="text" name="email" value="<?php if (isset($email)) echo htmlentities(stripslashes($email)); else echo ""; ?>" size="35" /></p>
  <p><b>Subject:</b><br /><input type="text" name="subject" value="<?php if (isset($subject)) echo htmlentities(stripslashes($subject)); else echo ""; ?>" size="35" /></p>
  <p><b>Message:</b><br /><textarea name="text" cols="55" rows="12"><?php if (isset($text)) echo htmlentities(stripslashes($text)); else echo ""; ?></textarea></p>
  <b>Attachment:</b><br /><input type="file" name="probe" value="<?php if (isset($_POST['probe'])) echo htmlentities(stripslashes($_POST['probe'])); else echo ""; ?>" size="20"/></p>
  <br /><br />
  <p><input type="submit" name="form_submitted" value="OK - Submit" /></p>
  </div></form><?php
 }
else
 {
  if (empty($email)) { ?><p><b>Thank you!</b><br />The message has been sent successfully but you didn't specify your e-mail address so I can't reply.</p><?php }
  else { ?><p><b>Thank you!</b><br />The message has been sent successfully.</p><?php }
 }

// If you want to remove the Link please donate some Euros:
// http://www.mylittlehomepage.net/donation.html

?><p style="margin-top: 25px; font-size: 11px;">Script by <a class="sln" href="http://www.mylittlehomepage.net/">Alex</a></p>
</body>
</html>


Dieses Script habe ich in eine andere Seite Namens "kontakt.html" included.

Jetzt hätte ich gerne, dass man zusätzlich noch einen Haken machen kann, ob man einen Newsletter haben will oder nicht.
Soweit ich weiß, baue ich das so ein:

<input checked name="Newsletter" type="checkbox" value="ja">

Nur habe ich keinen blassen Schimmer, was ich da jetzt noch in dem PHP-Script ändern muss, damit in der versendeten Mail drin steht, Newsletter wurde aboniert oder eben nicht.

Könnt ihr mir bitte helfen?
  View user's profile Private Nachricht senden
Leone
Threadersteller

Dabei seit: 14.09.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Do 11.10.2007 10:42
Titel

Antworten mit Zitat Zum Seitenanfang

kann mir wirklich keiner helfen? Ich verstehe nichts von PHP.
  View user's profile Private Nachricht senden
Anzeige
Anzeige
Smooth-Graphics

Dabei seit: 22.05.2006
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Do 11.10.2007 13:53
Titel

Antworten mit Zitat Zum Seitenanfang

Leone hat geschrieben:
kann mir wirklich keiner helfen? Ich verstehe nichts von PHP.


Das ist ja gut! *ha ha* Und wir sollen dir hier dann jetzt eine fertige Lösung hinschreiben, oder wie?

http://www.mediengestalter.info/forum/20/heute-alles-fuer-umsonst-89197-1.html

Im Prinzip musst du nur mit einer if() Abfrage die Daten auswerten und dann eben den Handler (Newsletterversand) eintragen.

also so:
Code:

<input type="checkbox" checked value="newsletteraktiv" /> Newsletterversand aktivieren?

<?php
if($_POST['formularname']=='newsletteraktiv') {
    // hier die eMail in die Newslettermailadressen Datenbank eintragen
}
?>


ungetestet und nur schnell hingeschrieben (keine fertige Lösung!)


Zuletzt bearbeitet von Smooth-Graphics am Do 11.10.2007 13:58, insgesamt 2-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
 
Ähnliche Themen Fotos für Newsletter durch öffnen des Newsletter downloaden
Kleiner Newsletter Client - Newsletter an 200 Adressen?
Creative Suite 3.3 Student Version - wo ist der Haken?
HTML/ Newsletter <--> Flash Newsletter?
PNG Option (PS.5)
option-tag einfärben?
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.