Files
Portfolio-Esteban/scripts/sendMessage.php
T
2026-07-02 15:13:54 +02:00

72 lines
2.6 KiB
PHP

<?php
// Envoi de message de contact via WebHook discord => Correction de faille de sécurité en cachant le webhook dans un fichier à part
require_once('../../idDiscord.php');
// Ajout des logs Discord
session_start();
require_once('../functions/sendLogs.php');
// Envoi de formulaire de contact via WebHook discord
$webhook = ID_DISCORD2; // URL du webhook Discord
// EXEMPLE de a quoi ressemble idDiscord :
// define('ID_DISCORD1', 'https://discord.com/api/webhooks/URL_WEBHOOK1');
// define('ID_DISCORD2', 'https://discord.com/api/webhooks/URL_WEBHOOK2');
// Exemple du message :
// Portfolio Contact
// @Este
// Nouveau message depuis le formulaire de contact
// Sujet : test
// Nom : esteban moussu
// Mail : esteban.moussu@ik.me
// Message :
// test
// Définition de mon ID pour ensuite me ping => notifier
$pingOurs1 = "<@471304822016966667>";
// On récupère les valeurs dans le formulaires et on les mets en variables locales
$subject = $_POST["subject"];
$name = $_POST["name"];
$mail = $_POST["mail"];
$message = $_POST["message"];
// Si les champs sont vides
if ($subject == "" || $name == "" || $mail == "" || $message == "") {
echo "Tous les champs doivent être remplis.";
} else { // Sinon on envoi via Webhook (j'ai recupéré l'envoi de webhook sur github je n'ai rien fais moi même)
$contenuMessage = $pingOurs1 . "\n\n";
$contenuMessage .= "**Nouveau message depuis le formulaire de contact du portfolio**\n\n";
$contenuMessage .= "**Sujet :** " . $subject . "\n";
$contenuMessage .= "**Nom :** " . $name . "\n";
$contenuMessage .= "**Mail :** " . $mail . "\n";
$contenuMessage .= "**Message :**\n" . $message;
$data = [
"content" => $contenuMessage
];
$dataJson = json_encode($data);
$ch = curl_init($webhook); // On démarre une ressource curl
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Content-Type: application/json"]);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $dataJson);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$resultat = curl_exec($ch);
$codeHttp = curl_getinfo($ch, CURLINFO_HTTP_CODE);
// (pas de curl_close : déprécié depuis PHP 8.5, la ressource se libère toute seule)
if ($codeHttp == 204) { // Si ça renvoi 204 alors le message a été correctement envoyé
// Log Discord : message de contact envoyé
sendLog("Nouveau message de contact envoyé par : " . $name);
header("Location: ../pages/contact.php?success=1");
exit();
} else { // Sinon c'est que ça n'a pas été envoyé (discord down / webhook expiré / etcc...)
echo "Le message n'a pas pu être envoyé sur Discord.";
}
}
?>