Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#14

Re: [PHP] Email senden

  Alt 7. Nov 2005, 14:31
Also, die Lösung von ripper löst schon mal das Problem mit den Zeilenumbrüchen. Nur das mit den "escapen" habe ich nochnicht hinbekommen:
Zitat von original:
Note that 'e-mail injection' exploits don't need a 'return' byte at all, so there's no use scanning for \n or \r. The safest way to prevent the exploit is to eregi() search all fields for 'MIME-Version: ' or something else found in e-mail headers, and intercept the spammer that way. Here's the simplest way I have:
Mit addslashes:
Zitat:
Note that \'e-mail injection\' exploits don\'t need a \'return\' byte at all, so there\'s no use scanning for \\n or \\r. The safest way to prevent the exploit is to eregi() search all fields for \'MIME-Version: \' or something else found in e-mail headers, and intercept the spammer that way. Here\'s the simplest way I have:
Mit stripslashes:
Zitat:
Note that 'e-mail injection' exploits don't need a 'return' byte at all, so there's no use scanning for \n or \r. The safest way to prevent the exploit is to eregi() search all fields for 'MIME-Version: ' or something else found in e-mail headers, and intercept the spammer that way. Here's the simplest way I have:
Ergo mit stripslashes geht es.

Besten dank.

So sieht es jetzt aus: http://www.luckie-online.de/impressum.php
Und das Script dazu:
Code:
<?php
  /*
  Copyright (c) 2005: Michael Puff
  Url: [url]http://www.luckie-online.de[/url]
  Mail: [email]mpuff@luckie-online.de[/email]
 
  Version: 1.0 - 2005-11-07
*/

  $to = 'mpuff@luckie-online.de';

  $headers = "MIME-Version: 1.0\r\n".
   "Content-Type: text/plain; charset=iso-8859-1\r\n".
   "From: \"Kontaktformular luckie-online.de\" <".$from.">\r\n".
   "To: ".$to." <".$to.">\r\n".
   "Date: ".date("r")."\r\n";

  $msg = 'Von: '."\n".$yourname.' <'.$from.'>'."\n\n".'Text:'."\n".$text;
  $msg = stripslashes($msg);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>Homepage von Michael Puff</title>
    <link rel="stylesheet" type="text/css" href="/css/dir.css">
  </head>
  <body>
  <h1>Homepage von Michael Puff</h1>
  <?php
    $dir = getcwd();
    $start = strpos(strtolower($dir), '/html/')+5;
    $s = substr($dir, 0, $start);
    include $s.'/includes/nav.shtml';
    include $s.'/includes/copyright.inc';
  ?>
  <h2>E-Mail senden</h2>
  [img]/pics/line.png[/img]
 



<?php
  if (empty($from) || empty($text))
  {
     echo "Bitte füllen Sie mindestens die Felder 'E-Mail Adresse' und 'Text' aus.";
  }
  else if (!mail($to, $subject, $msg, $headers))
  {
    echo '

Es ist ein Fehler beim Senden der E-Mail aufgetreten.</p>';
  }
  else
  {
    echo '

Die E-Mail wurde erfolgreich gesendet.</p>';
  }
?>




  [img]/pics/line.png[/img]
  <table class="tblfooter">
    <tr>
    <?php
      echo '<td class="total"></td>'.'<td class="copy">'.$cr.'</td>';
    ?>
    </tr>
  </table>
</body>
</html>
Ist der Header so wasserdicht oder kann da jemand das Formular missbrauchen? Es wäre nett, wenn ein, zwei mir mal eine Testmail darüber schicken und mir Rückmeldung geben würden.

[edit=Admin]Code-Tags korrigiert. Mfg, Daniel[/edit]
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat