git.shiar.nl
/
minimedit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
issue/activity: only concatenate messages after images
[minimedit.git]
/
widget
/
contact.php
diff --git
a/widget/contact.php
b/widget/contact.php
index 6e04005226abade032281e95fb36f750dfe8f521..8fdc948f21a76af8b02f0038e51af47c8cb88dc8 100644
(file)
--- a/
widget/contact.php
+++ b/
widget/contact.php
@@
-1,25
+1,28
@@
<?php
<?php
+if (!$_POST) {
+ return;
+}
+
$error = NULL;
$error = NULL;
-if ($_POST) {
- global $User;
- if ($User) {
- $_REQUEST['login'] = $User->login;
- $_REQUEST['email'] = $_REQUEST['email'] ?: $User->email;
- }
- else {
- unset($_REQUEST['login']);
- }
- $error = mailform($_REQUEST);
- if (!empty($error)) {
- print "<p class=warn>$error</p>\n\n";
- }
+global $User;
+if ($User->login) {
+ $_REQUEST['login'] = $User->login;
+ $_REQUEST['email'] = $_REQUEST['email'] ?: $User->email;
+}
+else {
+ unset($_REQUEST['login']);
+}
+$error = mailform($_REQUEST, $Page->place);
+if (!empty($error)) {
+ print "<p class=warn>$error</p>\n\n";
}
}
-function mailform($input = [])
+function mailform($input = []
, $config = []
)
{
{
- $source = empty($input['subject']) ? 'reactie' : $input['subject'];
+ $source = $config['subject'] ??
+ (empty($input['subject']) ? 'reactie' : $input['subject']);
$domain = preg_replace('/^www\./', '', $_SERVER['HTTP_HOST']);
$domain = preg_replace('/^www\./', '', $_SERVER['HTTP_HOST']);
- $rcpt = "info@$domain";
+ $rcpt =
$config['rcpt'] ??
"info@$domain";
$subject = "Formulier {$_SERVER['HTTP_HOST']}: $source";
if (!$input) {
$subject = "Formulier {$_SERVER['HTTP_HOST']}: $source";
if (!$input) {
@@
-39,7
+42,6
@@
switch ($source) {
if (empty($input['naam']) or empty($input['huis'])) {
return 'De bedoeling is juist dat je opgeeft wie er komt.';
}
if (empty($input['naam']) or empty($input['huis'])) {
return 'De bedoeling is juist dat je opgeeft wie er komt.';
}
- $rcpt .= ', Heleen <heleen.terlouw.2910@gmail.com>';
break;
default:
if (empty($input['email']) or !preg_match('/.+@.+\..+/', $input['email'])) {
break;
default:
if (empty($input['email']) or !preg_match('/.+@.+\..+/', $input['email'])) {
@@
-52,26
+54,37
@@
switch ($source) {
$reply = preg_match('/\A[^\s\'@]{1,64}@[.a-zA-Z0-9-]{4,63}\z/', @$input['email'])
? $input['email'] : "noreply@$domain";
$reply = preg_match('/\A[^\s\'@]{1,64}@[.a-zA-Z0-9-]{4,63}\z/', @$input['email'])
? $input['email'] : "noreply@$domain";
+ if ($displayname = @$input['naam']) {
+ $reply = sprintf('"%s" <%s>', addcslashes($displayname, "\\\"\0..\37"), $reply);
+ }
$header = "From: $reply";
$header = "From: $reply";
+ if ($origin = @$_SERVER['REMOTE_ADDR']) {
+ if ($resolved = @gethostbyaddr($origin) and $resolved !== $origin) {
+ $origin .= sprintf(' (%s)', gethostbyaddr($origin));
+ }
+ $header .= "\r\nReceived: from $origin by $domain{$config['url']}; ".date('r');
+ }
+
foreach (array(
'X-Accept-Language' => 'HTTP_ACCEPT_LANGUAGE',
'User-Agent' => 'HTTP_USER_AGENT',
) as $mailhdr => $serverhdr) {
foreach (array(
'X-Accept-Language' => 'HTTP_ACCEPT_LANGUAGE',
'User-Agent' => 'HTTP_USER_AGENT',
) as $mailhdr => $serverhdr) {
- if (
!$_SERVER[$serverhdr]
) continue;
+ if (
empty($_SERVER[$serverhdr])
) continue;
$header .= "\r\n$mailhdr: ".$_SERVER[$serverhdr];
}
$header .= "\r\n$mailhdr: ".$_SERVER[$serverhdr];
}
- $origin = $_SERVER['REMOTE_ADDR'];
- if ($resolved = @gethostbyaddr($origin) and $resolved !== $origin) {
- $origin .= sprintf(' (%s)', gethostbyaddr($origin));
- }
- $body = "Ingevuld vanaf $origin:\r\n\r\n";
-
+ $body = '';
foreach ($input as $k => $v) {
$body .= "$k: $v\r\n";
}
foreach ($input as $k => $v) {
$body .= "$k: $v\r\n";
}
+ if ($logfile = fopen('maillog.txt', 'a')) {
+ $logdata = "Date: ".strftime("%F %T");
+ $logdata .= "\nTo: $rcpt\nSubject: $subject\n$header\n\n$body.\n\n";
+ fwrite($logfile, str_replace("\r\n", "\n", $logdata));
+ }
+
$sent = mail($rcpt, $subject, $body, $header);
if (!$sent)
return 'Helaas ging er iets mis bij het doorvoeren. Probeer het later nog eens.';
$sent = mail($rcpt, $subject, $body, $header);
if (!$sent)
return 'Helaas ging er iets mis bij het doorvoeren. Probeer het later nog eens.';