2019-11-09 10:33:06 +01:00
|
|
|
<?php
|
|
|
|
|
2019-11-10 10:50:49 +01:00
|
|
|
require dirname(dirname(__FILE__)). DIRECTORY_SEPARATOR . "vendor" . DIRECTORY_SEPARATOR . "autoload.php";
|
|
|
|
|
2019-11-09 11:10:17 +01:00
|
|
|
define('PUBLIC_PATH', dirname(__FILE__));
|
|
|
|
define('APPLICATION_PATH', dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR . "app");
|
|
|
|
define('CLASS_PATH', APPLICATION_PATH . DIRECTORY_SEPARATOR . "class");
|
2019-11-09 10:33:06 +01:00
|
|
|
|
|
|
|
require APPLICATION_PATH . DIRECTORY_SEPARATOR . "parameters.php";
|
2019-11-09 11:10:17 +01:00
|
|
|
require APPLICATION_PATH . DIRECTORY_SEPARATOR . 'session.php';
|
2019-11-09 10:33:06 +01:00
|
|
|
|
|
|
|
error_reporting(-1);
|
|
|
|
ini_set('display_errors', 1);
|
|
|
|
|
2019-11-09 11:10:17 +01:00
|
|
|
function passValide($password)
|
|
|
|
{
|
2019-11-09 10:33:06 +01:00
|
|
|
|
2019-11-09 11:10:17 +01:00
|
|
|
//password_hash('tototo', HASH_ALGORITHM)
|
2019-11-09 10:33:06 +01:00
|
|
|
|
2019-11-09 11:10:17 +01:00
|
|
|
if (password_verify($password, HASH)) {
|
|
|
|
if (password_needs_rehash(HASH, HASH_ALGORITHM)) {
|
|
|
|
$hash = password_hash($password, HASH_ALGORITHM);
|
2019-11-09 10:33:06 +01:00
|
|
|
|
2019-11-09 11:10:17 +01:00
|
|
|
$file = "";
|
|
|
|
$lines = file(APPLICATION_PATH . DIRECTORY_SEPARATOR . "parameters.php");
|
|
|
|
foreach ($lines as $line_num => $line) {
|
|
|
|
if (preg_match("#define\(HASH,(.*)\)#", $line, $matches)) {
|
|
|
|
$newline = preg_replace("#define\(HASH,(.*)\)#", "define(HASH,'$hash')", $line);
|
|
|
|
} else {
|
|
|
|
$newline = $line;
|
|
|
|
}
|
|
|
|
if ($newline != "") {
|
2019-11-09 10:33:06 +01:00
|
|
|
$file .= $newline . "\n";
|
|
|
|
}
|
2019-11-09 11:10:17 +01:00
|
|
|
}
|
|
|
|
/* Store new hash in parameters file */
|
|
|
|
file_put_contents(APPLICATION_PATH . DIRECTORY_SEPARATOR . "parameters.php", $file);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//try fallback passengers
|
|
|
|
if (password_verify($password, HASH)) {
|
|
|
|
return true;
|
|
|
|
} else {
|
|
|
|
return false;
|
|
|
|
}
|
2019-11-09 10:33:06 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
//https://code.tutsplus.com/tutorials/8-regular-expressions-you-should-know--net-6149
|
|
|
|
|
2019-11-09 11:10:17 +01:00
|
|
|
function extractLink($message)
|
|
|
|
{
|
|
|
|
preg_match_all("#((?:https?:\/\/)?(?:[\da-z\.-]+)\.(?:[a-z\.]{2,6})(?:[\/\w \.-]*)*\/?)#", $message, $matches);
|
|
|
|
return $matches;
|
2019-11-09 10:33:06 +01:00
|
|
|
}
|
|
|
|
|
2019-11-09 11:10:17 +01:00
|
|
|
function extractText($message)
|
|
|
|
{
|
|
|
|
$links = extractLink($message);
|
|
|
|
array_shift($links);
|
|
|
|
foreach ($links as $link) {
|
|
|
|
if ($link != "") {
|
|
|
|
$message = preg_replace("#$link[0]#", " ... ", $message);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return $message;
|
2019-11-09 10:33:06 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
/**************************************************************************************************************/
|
|
|
|
/******************* TEST COTÉ SERVEUR POUR L'ENVOI DU MESSAGE *********************************************/
|
|
|
|
|
2019-11-10 10:50:49 +01:00
|
|
|
$message = Encoding::fixUTF8(StringCompat::protectionDoubleQuote(StringCompat::protectionSimpleQuote($_POST['message'])));
|
2019-11-09 10:33:06 +01:00
|
|
|
|
2019-11-09 11:10:17 +01:00
|
|
|
if (passValide($_POST['password']) && $_POST['message'] != "") {
|
2019-11-09 10:33:06 +01:00
|
|
|
|
2019-11-09 11:10:17 +01:00
|
|
|
$hookMattermost = "http://{your-mattermost-site}/hooks/xxx-generatedkey-xxx";
|
2019-11-09 10:33:06 +01:00
|
|
|
|
2019-11-09 11:10:17 +01:00
|
|
|
$payload = <<<EOD
|
2019-11-09 10:33:06 +01:00
|
|
|
payload={
|
|
|
|
"channel": "bot-tests",
|
|
|
|
"username": "acksop",
|
|
|
|
"text": "$message"
|
|
|
|
}
|
|
|
|
EOD;
|
|
|
|
|
2019-11-09 11:10:17 +01:00
|
|
|
$json = <<<EOD
|
2019-11-09 10:33:06 +01:00
|
|
|
{
|
|
|
|
"channel": "bot-tests",
|
|
|
|
"username": "acksop",
|
|
|
|
"text": "$message"
|
|
|
|
}
|
|
|
|
EOD;
|
|
|
|
|
|
|
|
|
2019-11-09 11:10:17 +01:00
|
|
|
$commandURL = "curl -i -X POST --data-urlencode '$payload' $hookMattermost";
|
|
|
|
$commandJSON = "curl -i -X POST -H 'Content-Type: application/json' -d '$json' $hookMattermost";
|
2019-11-09 10:33:06 +01:00
|
|
|
|
2019-11-09 11:10:17 +01:00
|
|
|
echo "<pre>";
|
|
|
|
print_r($commandJSON);
|
|
|
|
echo "</pre><pre>";
|
|
|
|
print_r($commandURL);
|
2019-11-09 10:33:06 +01:00
|
|
|
|
2019-11-09 11:10:17 +01:00
|
|
|
$dom = new DOMDocument;
|
|
|
|
$dom->load(PUBLIC_PATH . DIRECTORY_SEPARATOR . "veilleTinternet.xml");
|
2019-11-09 10:33:06 +01:00
|
|
|
|
2019-11-09 11:10:17 +01:00
|
|
|
$noeudVeille = $dom->getElementsByTagName("veille")->item(0);
|
2019-11-09 10:33:06 +01:00
|
|
|
|
2019-11-09 11:10:17 +01:00
|
|
|
$messageNode = $dom->createElement("message");
|
2019-11-09 10:33:06 +01:00
|
|
|
|
|
|
|
$myOriginalTextNode = $dom->createElement("originel");
|
|
|
|
$textNode = $dom->createTextNode(htmlentities($message));
|
|
|
|
$myOriginalTextNode->appendChild($textNode);
|
|
|
|
$messageNode->appendChild($myOriginalTextNode);
|
|
|
|
|
2019-11-09 11:10:17 +01:00
|
|
|
$myTextNode = $dom->createElement("text");
|
|
|
|
$textNode = $dom->createTextNode(htmlentities(extractText($message)));
|
|
|
|
$myTextNode->appendChild($textNode);
|
2019-11-09 10:33:06 +01:00
|
|
|
$messageNode->appendChild($myTextNode);
|
|
|
|
|
|
|
|
$myLinksNode = $dom->createElement("links");
|
2019-11-09 11:10:17 +01:00
|
|
|
$links = extractLink($message);
|
2019-11-09 10:33:06 +01:00
|
|
|
array_shift($links);
|
2019-11-09 11:10:17 +01:00
|
|
|
foreach ($links as $link) {
|
|
|
|
if ($link != "") {
|
2019-11-09 10:33:06 +01:00
|
|
|
$myLinkNode = $dom->createElement("link");
|
|
|
|
$textNode = $dom->createTextNode(htmlentities($link[0]));
|
|
|
|
$myLinkNode->appendChild($textNode);
|
|
|
|
$myLinksNode->appendChild($myLinkNode);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$messageNode->appendChild($myLinksNode);
|
|
|
|
|
|
|
|
//$dom->insertBefore( $messageNode, $noeudVeille );
|
|
|
|
$noeudVeille->appendChild($messageNode);
|
|
|
|
|
2019-11-09 11:10:17 +01:00
|
|
|
$dom->save(PUBLIC_PATH . DIRECTORY_SEPARATOR . "veilleTinternet.xml");
|
2019-11-09 10:33:06 +01:00
|
|
|
|
|
|
|
shell_exec($commandJSON);
|
|
|
|
shell_exec($commandURL);
|
|
|
|
die();
|
2019-11-09 11:10:17 +01:00
|
|
|
if (isset($_POST['ajax'])) {
|
|
|
|
echo "Votre Lien as été correctement transmis. Vous receverez une réponse dans les prochains jours.";
|
|
|
|
} else {
|
|
|
|
header("Location: /index.php?envoiDuMessage=oui");
|
|
|
|
}
|
|
|
|
|
|
|
|
} else {
|
|
|
|
if (isset($_POST['ajax'])) {
|
|
|
|
echo "Votre Lien n'as pas été transmis. Veuillez vérifiez les informations que vous avez saisies ...";
|
|
|
|
} else {
|
2019-11-10 10:50:49 +01:00
|
|
|
header("Location: /index.php?envoiDuMessage=non&message=" . StringCompat::myUrlEncode($message));
|
2019-11-09 11:10:17 +01:00
|
|
|
}
|
2019-11-09 10:33:06 +01:00
|
|
|
}
|