2024-08-03 20:17:25 +00:00

174 lines
8.4 KiB
PHP
Executable File

<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require("../../include/variables.php");
require("../../include/init.php");
require 'vendor/autoload.php';
if (isset($_SESSION['userID']) == false || empty($_SESSION['userID'])) {
header("Location: /login?p=adhesion");
die('Veuillez vous connecter dans <a href="/login">/login</a>');
}
require("../../include/main-functions.php");
require("../../include/inputs.php");
require("../../include/panels.php");
$pdo = sqlConnect($sqlDatabaseHost, $sqlDatabaseName, $sqlDatabaseUser, $sqlDatabasePass);
if (isset($_POST['lastname']) && isset($_POST['firstname']) && isset($_POST['email']) && isset($_POST['club']) && isset($_POST['born'])) {
if (empty($_POST['lastname']) || empty($_POST['firstname']) || empty($_POST['email']) || empty($_POST['born'])) {
$status = "Veuillez remplir tous les champs";
} else {
if (preg_match('/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/', $_POST['email']) == false) {
$status = "Veuillez entrer un email valide";
} else {
$email = isset($_POST['email']) ? strtolower($_POST['email']) : NULL;
$lastname = htmlspecialchars($_POST['lastname']);
$firstname = htmlspecialchars($_POST['firstname']);
$club = empty($_POST['club']) ? "Sans club" : htmlspecialchars($_POST['club']);
$born = htmlspecialchars($_POST['born']);
$promo = empty($_POST['promo']) ? "Sans promo" : htmlspecialchars($_POST['promo']);
$userID = $_SESSION['userID'];
$sqlRequest = "SELECT ID FROM adhesion_requests WHERE userid = :userid";
$request = $pdo->prepare($sqlRequest);
$request->bindParam(":userid", $userID);
$request->execute();
$result = $request->fetchAll(PDO::FETCH_ASSOC);
if($result) {
$requestAlreadySent = true;
} else {
$requestAlreadySent = false;
$request = $pdo->prepare("INSERT INTO adhesion_requests (firstname, lastname, born, promo, club, email, userid) VALUES (:firstname, :lastname, :born, :promo, :club, :email, :userid)");
$request->bindParam(':firstname', $firstname);
$request->bindParam(':lastname', $lastname);
$request->bindParam(':born', $born);
$request->bindParam(':promo', $promo);
$request->bindParam(':club', $club);
$request->bindParam(':email', $email);
$request->bindParam(':userid', $userID);
if ($request->execute()) {
$status = "Demande d'adhésion envoyée, vous recevrez la réponse du CA par mail.";
$mail = new PHPMailer(true);
try {
// Paramètres du serveur
$mail->isSMTP(); // Utiliser SMTP
$mail->Host = 'outlook.office365.com'; // Serveur SMTP Exchange
$mail->SMTPAuth = true; // Activer l'authentification SMTP
$mail->Username = 'smtp@e59.fr'; // Nom d'utilisateur SMTP
$mail->Password = 'WTFdoto5678TFWT'; // Mot de passe SMTP
$mail->SMTPSecure = 'tls'; // Activer le cryptage TLS
$mail->Port = 587; // Port TCP pour TLS
// Destinataires
$mail->setFrom('service-adhesions@e59.fr', 'Adhesions');
$mail->addAddress('asso.uvsq@e59.fr', 'E59-UVSQ'); // Ajouter un destinataire
// Contenu de l'e-mail
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = 'Nouvelle demande d\'adhesion';
$mail->Body = '<h2>Nouvelle demande d\'adhesion pour ' . $club . '</h2><p>Nom Prenom : ' . $firstname . ' ' . $lastname . '</p><p>Email : ' . $email . '</p><p>Date de naissance : ' . $born . '</p><p>Promo : ' . $promo . '</p><p>Rendez-vous sur <a href="https://e59.fr/phpmyadmin">https://e59.fr/phpmyadmin</a> pour supprimer la demande une fois validee</p>';
$mail->AltBody = 'Nouvelle demande d\'adhésion pour ' . $club . ' | Nom Prénom : ' . $firstname . ' ' . $lastname . ' | Email : ' . $email . ' | Date de naissance : ' . $born . ' | Promo : ' . $promo;
$mail->send();
} catch (Exception $e) {
$status = "Erreur interne : {$mail->ErrorInfo}";
}
} else {
$status = "Erreur SQL";
}
}
}
}
}
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<?php fillHead($rootPageURL, "Adhésion - " . $pageName, $darkTheme, $lightTheme);?>
<style>
.select-input {
margin: 0.5em auto 1.5em auto;
width: 19em;
}
.date-input {
margin: 0.5em auto;
font-size: 0.8em;
width: 80%;
}
</style>
</head>
<body class="body">
<header>
<div class="panel-content">
<?php fillHeader($rootPageURL, $headerTitle, $headerSubtitle, $social);?>
</div>
</header>
<nav>
<div class="panel-content">
<?php fillNav($rootPageURL);?>
</div>
</nav>
<main>
<div class="content">
<form action="#" method="post">
<div class="form">
<div class="form-title">Adhérer à l'association</div>
<div class="status"><?=$status?></div>
<?php
if (!$requestAlreadySent) {
$sqlRequest = "SELECT username, email FROM users WHERE ID = :userID";
$request = $pdo->prepare($sqlRequest);
$request->bindParam(":userID", $_SESSION['userID']);
$request->execute();
$user = $request->fetchAll(PDO::FETCH_ASSOC);
$sqlRequest = "SELECT ID, name FROM clubs";
$request = $pdo->prepare($sqlRequest);
$request->execute();
$clubs = $request->fetchAll(PDO::FETCH_ASSOC);
foreach($clubs as $club) {
$club_names[] = $club["name"];
}
textInput("text", "", "lastname", "Nom", isset($_POST['lastname']) ? $_POST['lastname'] : "");
textInput("text", "", "firstname", "Prénom", isset($_POST['firstname']) ? $_POST['firstname'] : "");
textInput("email", "", "email", "Email", isset($_POST['email']) ? $_POST['email'] : $user[0]['email']);
textInput("text", "", "promo", "Promo", isset($_POST['promo']) ? $_POST['promo'] : "");
//selectInput("club", "Club", $club_names, isset($_POST['club']) ? $_POST['club'] : $club_names[0]);
dateInput("born", "Né le", "1930-01-01", isset($_POST['born']) ? $_POST['born'] : "2005-01-01");
echo ('<input type="hidden" name="club" value="Club Réseaux">');
echo ('<div class="details-message">Vous serez invité à payer la cotisation annuelle fixée à 1€/an une fois votre demande validée par le conseil d\'administration.</div>');
echo ('<a href="/" class="hidden-button" style="margin-right: 2em;">Annuler</a><button type="submit">Envoyer</button>');
} else {
echo ("Votre demande d'adhésion est en cours de traitement");
}
?>
</div>
</form>
</div>
</main>
<footer>
<div class="panel-content">
<?php fillFooter($footerText);?>
</div>
</footer>
</body>
</html>