167 lines
8.1 KiB
PHP
Executable File
167 lines
8.1 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) {
|
|
$status = "Vous avez déjà fait une demande d'adhésion";
|
|
} else {
|
|
$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
|
|
$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");
|
|
?>
|
|
<input type="hidden" name="club" value="Club Réseaux">
|
|
<div class="details-message">L'adhésion sera effective après validation par le conseil d'administration et paiement de la cotisation fixée à 1€/an minimum.</div>
|
|
<a href="/" class="hidden-button" style="margin-right: 2em;">Annuler</a><button type="submit">Envoyer</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</main>
|
|
<footer>
|
|
<div class="panel-content">
|
|
<?php fillFooter($footerText);?>
|
|
</div>
|
|
</footer>
|
|
</body>
|
|
</html>
|