<?php
namespace App\Controller;
use Symfony\Component\Mime\Email;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Mailer\MailerInterface;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Session\Flash\FlashBagInterface;
class MainController extends AbstractController
{
/**
* @Route("/", name="app_main")
*/
public function index(Request $request, MailerInterface $mailer, FlashBagInterface $flashBag): Response
{
if ($request->isMethod('POST')) {
$csrfToken = $request->request->get('csrf_token');
// Assurez-vous de valider le jeton CSRF
if (!$this->isCsrfTokenValid('formulaire', $csrfToken)) {
throw new \Exception('Jeton CSRF invalide.');
}
// Récupérer les données du formulaire
$fullName = $request->request->get('full_name');
$email = $request->request->get('Email');
$phone = $request->request->get('phone');
$pays = $request->request->get('pays');
$ville = $request->request->get('ville');
$adresse = $request->request->get('Adresse Complète');
$emploi = $request->request->get('emploi');
$langue = $request->request->get('langue');
$provence = $request->request->get('provence');
$message = $request->request->get('message');
// Récupérer le fichier téléchargé
$file = $request->files->get('fichier');
// Préparer l'email
$emailMessage = (new Email())
->from('contact@emplois-visa-state.us')
->to('recrutement@emplois-visa-state.us')
->subject('Nouvelle demande de formulaire')
->text("Nom & Prénoms: $fullName\nEmail: $email\nTéléphone: $phone\nPays: $pays\nVille: $ville\nAdresse Complète: $adresse\nEmploi Actuel: $emploi\nLangue Parlée: $langue\nProvence Souhaitée: $provence\nMessage: $message");
// Envoyer l'email
$mailer->send($emailMessage);
// Ajouter un message flash
$this->addFlash(
'success',
'Nous avons bien reçu votre demande. Un de nos professionnels vous contactera sous peu.'
);
// Rediriger ou afficher un message de succès
return $this->redirectToRoute('app_main');
}
return $this->render('main/index.html.twig');
}
}