Merge remote-tracking branch 'origin/github/pr/45'
[grml.org.git] / php-mailer / mail_report.php
1 <?
2 $date_full = date("d M Y, H:i:s");
3 $date = date("d.m.y");
4 $ip = getenv('REMOTE_ADDR');
5 $ip_proxy = getenv('HTTP_X_FORWARDED_FOR');
6 $host = gethostbyaddr($ip);
7
8 $name=$_POST['name'];
9 $email=$_POST['email'];
10 $package=$_POST['package'];
11 $comments = ($_POST['comments']) ? stripslashes($_POST['comments']) : '';
12 $nopreview= (int)$_POST['nopreview'];
13
14 $to="mika@grml.org";
15 $subject="grml - package report: $package";
16
17 function checkname($name) {
18         $filter  = "/^([a-zA-ZöäüÖÄÜß0-9_\.\-\+\ ])+$/";
19         return preg_match($filter,$name);
20 }
21
22 function checkmail($email) {
23         $filter  = "/^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9])+$/";
24         return preg_match($filter,$email);
25 }
26
27 function badwords($text) {
28         $spamfilter = array('viagra','sex ', 'phentermine','free time', 'you may find', 'interesting', 'good site', 'keep alive', 'webmaster', 'web-master', 'great web', 'casino', 'isurance', 'buy', 'porn', 'loan', 'pharmacy', 'closeup', 'goodlife', 'multipart', 'zion', 'jude', 'ausländer', 'content-type', 'url=');
29
30         $text = strtolower($text);
31         foreach($spamfilter as $word) {
32                 $pos = strpos($text, $word);
33                 if ($pos !== false) {
34                         return true;
35                 }
36         }
37         return false;
38 }
39
40
41 // validation
42
43 $error = null;
44
45 if(!checkname($name)){
46   $error =  "Sorry, this does not seem to be a valid name.";
47 }
48
49 if(empty($email)){
50         $error = "Sorry, without your email address we won't be able to contact you. ;-)";
51 }
52
53 if (!checkmail($email)) {
54         $error = "Sorry, no valid email address found.";
55 }
56
57 if(empty($package)){
58         $error = "Please provide a package name.";
59 }
60
61 if(badwords($comments)){
62         $error = "We don't accept spam messages.";
63 }
64
65 if ($error) $nopreview = 1;
66
67 // send mail
68
69 if (($nopreview == 1) && !$error) {
70
71         // mailheader
72
73         $xtra    = "From: ($name) $email\r\n";
74         $xtra   .= "Content-Type: text/plain; charset=ISO-8859-15\nContent-Transfer-Encoding: 8bit\r\n";
75         $xtra   .= "X-Mailer: PHP ". phpversion();
76
77         // mailbody
78
79         $message="Message:\n\n$comments\n\n\nLoggin-Information:\n-------------------\nName:   $name\nE-Mail: $email\nDate:   $date_full\nIP:     $ip\nIP-Proxy:  $ip_proxy\nHost:   $host\n";
80
81         if(mail($to,$subject,$message,$xtra)) {
82                 $mailsent = "Sending the message was <b>successful</b>. Thanks for your message.";
83         } else {
84                 $error = "An error occured while sending mail. Sorry :-(";
85         }
86 }
87 ?>