【发布时间】:2014-09-29 23:24:54
【问题描述】:
在几个 Delphi XE2 项目中,我设置了 Eurekalog 以通过“HTTP 上传”发送错误报告,效果很好,因为我使用 PHP 脚本捕获错误报告,将其保存在目录中并通过以下方式发送给我电子邮件:
<?php
require 'PHPMailerAutoload.php';
foreach ($_FILES as $key => $value)
{
$uploaded_file = $_FILES[$key]['tmp_name'];
$server_dir = 'upload/';
$server_file = $server_dir . date("Y-m-d H-i-s ") . basename($_FILES[$key]['name']);
$ext = strtoupper(pathinfo($server_file, PATHINFO_EXTENSION));
if ($ext != 'EL')
{
continue;
}
if (move_uploaded_file($uploaded_file, $server_file))
{
echo '<html>';
echo '<head>';
echo '<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="TEXT/HTML; CHARSET=UTF-8">';
echo '<title>Bug submission</title>';
echo '</head>';
echo '<body>';
echo 'Thank you!<br />';
echo "<!--\n";
echo "<EurekaLogReply>Thank you for your feedback!</EurekaLogReply>\n";
echo "-->";
echo '</body>';
echo '</html>';
SendBugReportMessage('auserofmyprogram@usersofmyprogram.com',
'A User of my program',
'Eurekalog Bug Report',
'This is a bug report from Eurekalog.',
'eurekalog.bugreport@mysite.com',
$server_file,
basename($server_file)
);
}
}
function SendBugReportMessage($AFrom, $AFromName, $ASubject, $ABodyText, $ARecipient, $AFileToAttach, $ANameOfFile)
{
$email = new PHPMailer();
$email->From = $AFrom;
$email->FromName = $AFromName;
$email->Subject = $ASubject;
$email->Body = $ABodyText;
$email->AddAddress($ARecipient);
$file_to_attach = $AFileToAttach;
$email->AddAttachment($file_to_attach, $ANameOfFile);
return $email->Send();
}
?>
现在我有几个程序使用这个相同的 PHP 脚本来上传他们的错误报告。但是,发送到此 PHP 脚本的错误报告始终名称为“BugReport”。那么,在 PHP 脚本中如何获取发送错误报告的程序的名称,以便我可以通过附加程序名称来保存它并将程序名称包含在邮件主题中?或者是否可以通过在 Delphi 代码的一侧实现某些东西来解决?还是在 Eurekalog 中?
Eurekalog 版本为 7.1.0.0
【问题讨论】:
-
这个问题与Delphi无关,因为它只涉及PHP。我正在删除 Delphi 标签。请使用实际适用于您的问题的标签;外部应用程序是用一种语言编写的这一事实并不意味着该语言适用于您的 PHP 脚本。如果您想询问有关如何更改 Delphi 代码以将应用程序名称添加到 EurekaLog 异常报告的问题,请这样做。
-
来吧,这太不合理了!这个问题并不意味着可能的解决方案可能是 PHP 代码的补充,也不是假设可能的解决方案可以在 Delphi 代码中实现。如果我知道解决方案是来自 Delphi 还是 PHP 代码,我就不会在这里问这个问题。请理性思考!顺便说一句,谁否决了我的问题?这是一个完全合理的问题,它应该得到分数,因为在 Eurekalog 中使用“HTTP 上传”选项时这是一个常见问题。对这个问题的有效回答将帮助很多使用 Eurekalog 的人。
-
不,这不是要求仅使用 PHP 的解决方案,因为可能的解决方案也可以从 Delphi 实现中派生,并且可以使用 PHP 中的 PHP 对应物解决问题。这就是所谓的 INTEROPERABILITY,不幸的是,Delphi 低估了这个话题:当它们一起合作时,你不能在两种编程语言之间做出明显的区分,这就是 Eurekalog 操作的情况来自 Delphi 代码并与 PHP 代码交互。再说一遍:这是 Eurekalog 中“HTTP 上传”选项的一个真正问题。一个解决方案可以帮助很多用户。
-
一个描述 PHP、包含 PHP 代码并要求 PHP 解决方案的问题在这种情况下可能IMPLY一个 Delphi 解决方案,因为两者交互彼此。 “暗示”意味着可以包含外部主题而无需明确提及。 - 顺便说一句,我已经改写了这个问题,所以请删除反对票。
-
再一次,我在工作中看到了很多非理性......