L'idée est de créer un petit formulaire qui va permettre de poster des messages dans un canal/channel Discord.

Il s'agit de mon serveur Discord et j'en suis donc l'administrateur (= j'ai tous les droits).

Au préalable, pour interagir avec ce canal, vous devez créer un webhook.

L'URL de notre webhook :

https://monpetitweb.hook

La base du processus est curl, qui permet d'envoyer des requêtes web.

Exemple, en ligne de commande :

curl -H "Content-Type: application/json" -d '{"username": "monpetitbot", "content": "bonjour le monde"}' "https://monpetitweb.hook"

username est un nom symbolique pour votre application, si vous ne l'utilisez pas c'est le nom du webhook qui sera affiché.
content est le message.

N'oubliez pas d'installer l'extension cURL pour PHP :

sudo apt install php-curl

Ce qui donne pour le formulaire en PHP (avec du HTML basique et sans style) :

<html>
<head>
<title>Message Discord</title>
</head>
<body>
<h1>Message Discord</h1>
<form action="" method="post" accept-charset="utf-8">
<p><label>Message</label><input type="text" id="eventmsg" name="eventmsg" value="" size="80"></p>
<p><button type="submit" id="submitbutton">Envoyer</button></p>
</form>
<?php

if (isset($_POST['eventmsg'])) {
// webhook défini sur le canal dans lequel on va poster
$webhook_url = 'https://monpetitweb.hook';
// message composé du username et du contenu
$msg = [
"username" => "monpetitbot",
"content" => $_POST['eventmsg'],
];

$headers = array('Content-Type: application/json');

$ch = curl_init();
curl_setopt( $ch,CURLOPT_URL, $webhook_url );
curl_setopt( $ch,CURLOPT_POST, true );
curl_setopt( $ch,CURLOPT_HTTPHEADER, $headers );
curl_setopt( $ch,CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch,CURLOPT_SSL_VERIFYPEER, false );
curl_setopt( $ch,CURLOPT_POSTFIELDS, json_encode( $msg ) );
$response = curl_exec( $ch );
// si ça se passe mal on affiche l'erreur en rouge
if ($response === FALSE) {
echo "<p style=\"color:red;\">Erreur ".curl_error($ch)."</p>";
}
// message envoyé
else {
echo "<p style=\"color:green;\">Message envoyé</p>";
}
curl_close( $ch );
} else {

}

?>
</body>
</html>

Le formulaire, de qualité :

Message Discord