success) { $status = "Veuillez cocher la case reCAPTCHA."; } else { if (isset($_POST['password1']) && isset($_POST['password2'])) { if(empty($_POST['username']) == false && empty($_POST['password1']) === false && empty($_POST['password2']) === false) { if(preg_match('!\S!u', $_POST['username']) && preg_match('!\S!u', $_POST['password1']) && preg_match('!\S!u', $_POST['password2'])) { if($_POST['password1'] == $_POST['password2']) { if (preg_match('/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/', $_POST['email']) == false && preg_match('!\S!u', $_POST['username']) == false) { $status = "Caractères illégaux"; } else { $userEmail = isset($_POST['email']) ? strtolower($_POST['email']) : NULL; $userDisplayName = htmlspecialchars(substr($_POST['username'], 0, 20)); $userName = str_replace(" ", "_", strtolower(htmlspecialchars(substr($_POST['username'], 0, 20)))); $sqlRequest = "SELECT ID FROM users WHERE username = :username"; $request = $pdo->prepare($sqlRequest); $request->bindParam(":username", $userName); $request->execute(); $result = $request->fetchAll(PDO::FETCH_ASSOC); if($result) { $status = "Le nom d'utilisateur existe déjà"; } else { $request = $pdo->prepare("INSERT INTO users (username, password, email, display_name, role, accreditation) VALUES (:username, :password, :email, :display_name, 1, 1)"); $request->bindParam(':username', $userName); $request->bindParam(':password', md5($_POST['password1'])); $request->bindParam(':email', $userEmail); $request->bindParam(':display_name', $userDisplayName); if ($request->execute()) { $mail = new PHPMailer(true); try { // Paramètres du serveur SMTP $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('communication@e59.fr', 'E59-UVSQ'); // Port TCP à se connecter (tls = 587, ssl = 465) // Vous pouvez ajouter d'autres destinataires en utilisant $mail->addAddress() // $mail->addAddress('autre-destinataire@example.com'); // Vous pouvez aussi ajouter des destinataires en copie (CC) ou en copie cachée (BCC) // $mail->addCC('cc@example.com'); // $mail->addBCC('bcc@example.com'); // Pièces jointes (si nécessaire) // $mail->addAttachment('/path/to/file.pdf'); // Ajouter un fichier joint // Contenu de l'email $mail->isHTML(true); // Activer le format HTML pour l'email $mail->Subject = 'Nouvel Utilisateur'; $mail->Body = $userDisplayName . ' a cree un compte sur e59.fr'; $mail->AltBody = $userDisplayName . ' a cree un compte sur e59.fr'; // Envoyer l'email $mail->send(); } catch (Exception $e) { error_log("Erreur de Mailer: {$mail->ErrorInfo}"); } header("Location: index.php?p=" . $redirectPage); exit(); } else { $status = "Erreur SQL"; } } } } else { $status = "Les mots de passe ne correspondent pas"; } } else { $status = "Caractères illégaux"; } } else { $status = "Les champs ne doivent pas être vides"; } } } } else { $status = "Erreur, captcha vide"; } } ?>