174 lines
6.1 KiB
PHP
174 lines
6.1 KiB
PHP
<?php
|
|
/*
|
|
* sendreport.php
|
|
* GeckoReporter
|
|
*
|
|
* Created by Mr. Gecko on 12/28/09.
|
|
* Copyright 2010 by Mr. Gecko's Media (James Coleman). All rights reserved. http://mrgeckosmedia.com/
|
|
*
|
|
*/
|
|
|
|
//Debug
|
|
//print_r($_FILES);
|
|
//print_r($_POST);
|
|
|
|
function buildBody($FILES, $BOUNDARY) {
|
|
$BODY = "\n\r\n";
|
|
$KEYS = array_keys($FILES);
|
|
for ($i=0; $i<count($KEYS); $i++) {
|
|
$KEY = $KEYS[$i];
|
|
$FILE = $_FILES[$KEY]['tmp_name'];
|
|
$FILENAME = $_FILES[$KEY]['name'];
|
|
$FILETYPE = $_FILES[$KEY]['type'];
|
|
$FILESIZE = $_FILES[$KEY]['size'];
|
|
$BODY .= "--$BOUNDARY\r\n";
|
|
$BODY .= "Content-Disposition: attachment; filename=\"{$FILENAME}\"\r\n";
|
|
$BODY .= "Content-Type: {$FILETYPE}; name=\"{$FILENAME}\"\r\n";
|
|
$BODY .= "Content-Transfer-Encoding: binary\r\n\r\n";
|
|
$FILEPIPE = fopen($FILE, "r");
|
|
$BODY .= fread($FILEPIPE, $FILESIZE);
|
|
fclose($FILEPIPE);
|
|
$BODY .= "\r\n";
|
|
}
|
|
$BODY .= "--{$BOUNDARY}--";
|
|
return $BODY;
|
|
}
|
|
|
|
//Word of warning, IP is for debugging, do not include the IP of your user without the knowledge that your user may not use your application.
|
|
//$_POST['IP'] = $_SERVER['HTTP_PC_REMOTE_ADDR']!="" ? $_SERVER['HTTP_PC_REMOTE_ADDR'] : $_SERVER['REMOTE_ADDR'];
|
|
|
|
$_POST['User_Agent'] = urldecode($_SERVER['HTTP_USER_AGENT']);
|
|
if ($_POST['GRType']=="crash") {
|
|
unset($_POST['GRType']);
|
|
$email = $_POST['GREmail'];
|
|
unset($_POST['GREmail']);
|
|
$subject = $_POST['GRSubject'];
|
|
unset($_POST['GRSubject']);
|
|
$userReport = isset($_POST['GRUserReport']) ? trim($_POST['GRUserReport']) : "";
|
|
unset($_POST['GRUserReport']);
|
|
$boundary = "--Boundary+".rand(0, 100000);
|
|
|
|
if ($_POST['GRReportAttached']=="NO") {
|
|
if (isset($_FILES['reportFile'])) {
|
|
$filePipe = fopen($_FILES['reportFile']['tmp_name'], "r");
|
|
$reportFileContents = fread($filePipe, $_FILES['reportFile']['size']);
|
|
fclose($filePipe);
|
|
unset($_FILES['reportFile']);
|
|
$_POST['Report'] = "\n\n".$reportFileContents;
|
|
}
|
|
}
|
|
unset($_POST['GRReportAttached']);
|
|
if (preg_match("/([\w\.\-]+)(\@[\w\.\-]+)(\.[a-z]{2,4})+/i", $_POST['User_Email_Address'])) {
|
|
$fromEmail = "{$_POST['User_Email_Address']}";
|
|
} else {
|
|
$fromEmail = "\"Mr. Gecko's Media\" <webmaster@mrgeckosmedia.com>";
|
|
}
|
|
|
|
$headers = "From: {$fromEmail}\r\n";
|
|
$headers .= "X-Mailer: GeckoReporter/{$_POST['GRVersion']}\r\n";
|
|
unset($_POST['GRVersion']);
|
|
$headers .= "MIME-Version: 1.0\r\n";
|
|
$headers .= "Content-Type: multipart/mixed; boundary={$boundary}\r\n\r\n";
|
|
|
|
$headers .= "--$boundary\r\n";
|
|
$headers .= "Content-Type: text/plain; charset=utf-8\r\n";
|
|
$headers .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
|
|
$KEYS = array_keys($_POST);
|
|
sort($KEYS);
|
|
for ($i=0; $i<count($KEYS); $i++) {
|
|
$KEY = $KEYS[$i];
|
|
$NAME = str_replace("_", " ", $KEY);
|
|
$headers .= "{$NAME}: {$_POST[$KEY]}\n";
|
|
}
|
|
if ($userReport!="")
|
|
$headers .= "\nThe user was\n$userReport\n";
|
|
|
|
$headers .= buildBody($_FILES, $boundary);
|
|
|
|
$sent = mail($email, $subject, "This is a multipart message, your email client needs to support mime 1.0 in order to read this message.", $headers);
|
|
|
|
echo ($sent ? "Crash Report Was Sent" : "Crash Report Was Not Sent");
|
|
} else if ($_POST['GRType']=="bug") {
|
|
unset($_POST['GRType']);
|
|
$email = $_POST['GREmail'];
|
|
unset($_POST['GREmail']);
|
|
$subject = $_POST['GRSubject'];
|
|
unset($_POST['GRSubject']);
|
|
$bug = isset($_POST['GRBug']) ? trim($_POST['GRBug']) : "";
|
|
unset($_POST['GRBug']);
|
|
$reproduce = isset($_POST['GRReproduce']) ? trim($_POST['GRReproduce']) : "";
|
|
unset($_POST['GRReproduce']);
|
|
$boundary = "--Boundary+".rand(0, 100000);
|
|
if (preg_match("/([\w\.\-]+)(\@[\w\.\-]+)(\.[a-z]{2,4})+/i", $_POST['User_Email_Address'])) {
|
|
$fromEmail = "{$_POST['User_Email_Address']}";
|
|
} else {
|
|
$fromEmail = "\"Mr. Gecko's Media\" <webmaster@mrgeckosmedia.com>";
|
|
}
|
|
|
|
$headers = "From: {$fromEmail}\r\n";
|
|
$headers .= "X-Mailer: GeckoReporter/{$_POST['GRVersion']}\r\n";
|
|
unset($_POST['GRVersion']);
|
|
$headers .= "MIME-Version: 1.0\r\n";
|
|
$headers .= "Content-Type: multipart/mixed; boundary={$boundary}\r\n\r\n";
|
|
|
|
$headers .= "--$boundary\r\n";
|
|
$headers .= "Content-Type: text/plain; charset=utf-8\r\n";
|
|
$headers .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
|
|
$KEYS = array_keys($_POST);
|
|
sort($KEYS);
|
|
for ($i=0; $i<count($KEYS); $i++) {
|
|
$KEY = $KEYS[$i];
|
|
$NAME = str_replace("_", " ", $KEY);
|
|
$headers .= "{$NAME}: {$_POST[$KEY]}\n";
|
|
}
|
|
if ($bug!="")
|
|
$headers .= "\nThe Bug\n$bug\n";
|
|
if ($reproduce!="")
|
|
$headers .= "\nHow you can reproduce it\n$reproduce\n";
|
|
|
|
$headers .= buildBody($_FILES, $boundary);
|
|
|
|
$sent = mail($email, $subject, "This is a multipart message, your email client needs to support mime 1.0 in order to read this message.", $headers);
|
|
|
|
echo ($sent ? "Bug Report Was Sent" : "Bug Report Was Not Sent");
|
|
} else if ($_POST['GRType']=="contact") {
|
|
unset($_POST['GRType']);
|
|
$email = $_POST['GREmail'];
|
|
unset($_POST['GREmail']);
|
|
$subject = $_POST['GRSubject'];
|
|
unset($_POST['GRSubject']);
|
|
$message = isset($_POST['GRMessage']) ? trim($_POST['GRMessage']) : "";
|
|
unset($_POST['GRMessage']);
|
|
$boundary = "--Boundary+".rand(0, 100000);
|
|
if (preg_match("/([\w\.\-]+)(\@[\w\.\-]+)(\.[a-z]{2,4})+/i", $_POST['User_Email_Address'])) {
|
|
$fromEmail = "\"{$_POST['User_Name']}\" <{$_POST['User_Email_Address']}>";
|
|
} else {
|
|
$fromEmail = "\"Mr. Gecko's Media\" <webmaster@mrgeckosmedia.com>";
|
|
}
|
|
|
|
$headers = "From: {$fromEmail}\r\n";
|
|
$headers .= "X-Mailer: GeckoReporter/{$_POST['GRVersion']}\r\n";
|
|
unset($_POST['GRVersion']);
|
|
$headers .= "MIME-Version: 1.0\r\n";
|
|
$headers .= "Content-Type: multipart/mixed; boundary={$boundary}\r\n\r\n";
|
|
|
|
$headers .= "--$boundary\r\n";
|
|
$headers .= "Content-Type: text/plain; charset=utf-8\r\n";
|
|
$headers .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
|
|
$KEYS = array_keys($_POST);
|
|
sort($KEYS);
|
|
for ($i=0; $i<count($KEYS); $i++) {
|
|
$KEY = $KEYS[$i];
|
|
$NAME = str_replace("_", " ", $KEY);
|
|
$headers .= "{$NAME}: {$_POST[$KEY]}\n";
|
|
}
|
|
if ($message!="")
|
|
$headers .= "\nThe message\n$message\n";
|
|
|
|
$headers .= buildBody($_FILES, $boundary);
|
|
|
|
$sent = mail($email, $subject, "This is a multipart message, your email client needs to support mime 1.0 in order to read this message.", $headers);
|
|
|
|
echo ($sent ? "Message Was Sent" : "Message Was Not Sent");
|
|
}
|
|
?>
|