-
-
Save lumenpink/a7e8732ca4b7eb3d9db2c51c6fbacf81 to your computer and use it in GitHub Desktop.
Add simple file logging
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
# Licensed under a CC0 1.0 Universal (CC0 1.0) Public Domain Dedication | |
# http://creativecommons.org/publicdomain/zero/1.0/ | |
# | |
# Webmention Emailer | |
# ------------------ | |
# | |
# An incremental evolution of Jeremy Keith's "minimum viable" webmention, | |
# I've added some minimal code to have webmentions emailed to an address | |
# of your choosing. Also logs the webmention with the sender's IP. | |
if (!isset($_POST['source']) || !isset($_POST['target'])) { | |
header($_SERVER['SERVER_PROTOCOL'] . ' 400 Bad Request'); | |
exit; | |
} | |
ob_start(); | |
$ch = curl_init($_POST['source']); | |
curl_setopt($ch,CURLOPT_USERAGENT,'mydomain (webmention.org)'); | |
curl_setopt($ch,CURLOPT_HEADER,0); | |
$ok = curl_exec($ch); | |
curl_close($ch); | |
$source = ob_get_contents(); | |
ob_end_clean(); | |
header($_SERVER['SERVER_PROTOCOL'] . ' 202 Accepted'); | |
if (stristr($source, $_POST['target'])) { | |
/* Configure these variables. | |
* If you're sending "from" yourself to yourself then there | |
* will be a some duplication :) | |
*/ | |
$to_address = '[email protected]'; | |
$from_address = '[email protected]'; | |
$from_name = 'Sender Real Name'; | |
$reply_to = 'Real Name <[email protected]>'; | |
$subject = 'Webmention from '.$_POST['source']; | |
$logfile = '/full/path/to/webmentions.log'; /* Make sure file is writeable */ | |
$charset = 'UTF-8'; | |
$sep = "\r\n"; /* Change to '\n' for Windows */ | |
$log = "[".date("c")."] User: ".$_SERVER['REMOTE_ADDR'] | |
.' - Valid webmention on: <'.$_POST['source'] | |
.'> (target: <'.$_POST['target'].'>)'.PHP_EOL; | |
file_put_contents($logfile, $log, FILE_APPEND); | |
$headers = "From: $from_name <$from_address>". | |
$sep.'Reply-To: ' . $reply_to . | |
$sep.'X-Mailer: Mydomain (webmention.org)'. | |
$sep.'Content-Transfer-Encoding: 8bit'. | |
$sep.'Content-Type: text/plain; charset="'.$charset.'"'. | |
$sep; | |
$body = 'Valid webmention received!'. | |
$sep. | |
$sep.'- Mention found at: '.$_POST['source']. | |
$sep. | |
$sep.'- Page mentioned : '.$_POST['target']; | |
mail($to_address, $subject, $body, $headers, '-f'.$from_address); | |
} | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment