src/Controller/MainController.php line 18

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Symfony\Component\Mime\Email;
  4. use Symfony\Component\HttpFoundation\Request;
  5. use Symfony\Component\Mailer\MailerInterface;
  6. use Symfony\Component\HttpFoundation\Response;
  7. use Symfony\Component\Routing\Annotation\Route;
  8. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  9. use Symfony\Component\HttpFoundation\Session\Flash\FlashBagInterface;
  10. class MainController extends AbstractController
  11. {
  12.     /**
  13.      * @Route("/", name="app_main")
  14.      */
  15.     public function index(Request $requestMailerInterface $mailerFlashBagInterface $flashBag): Response
  16.     {
  17.         if ($request->isMethod('POST')) {
  18.             $csrfToken $request->request->get('csrf_token');
  19.             // Assurez-vous de valider le jeton CSRF
  20.             if (!$this->isCsrfTokenValid('formulaire'$csrfToken)) {
  21.                 throw new \Exception('Jeton CSRF invalide.');
  22.             }
  23.             // Récupérer les données du formulaire
  24.             $fullName $request->request->get('full_name');
  25.             $email $request->request->get('Email');
  26.             $phone $request->request->get('phone');
  27.             $pays $request->request->get('pays');
  28.             $ville $request->request->get('ville');
  29.             $adresse $request->request->get('Adresse Complète');
  30.             $emploi $request->request->get('emploi');
  31.             $langue $request->request->get('langue');
  32.             $provence $request->request->get('provence');
  33.             $message $request->request->get('message');
  34.             // Récupérer le fichier téléchargé
  35.             $file $request->files->get('fichier');
  36.             // Préparer l'email
  37.             $emailMessage = (new Email())
  38.                 ->from('contact@emplois-visa-state.us')
  39.                 ->to('recrutement@emplois-visa-state.us')
  40.                 ->subject('Nouvelle demande de formulaire')
  41.                 ->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");
  42.             // Envoyer l'email
  43.             $mailer->send($emailMessage);
  44.             // Ajouter un message flash
  45.             $this->addFlash(
  46.                'success',
  47.                'Nous avons bien reçu votre demande. Un de nos professionnels vous contactera sous peu.'
  48.             );
  49.             // Rediriger ou afficher un message de succès
  50.             return $this->redirectToRoute('app_main');
  51.         }
  52.         return $this->render('main/index.html.twig');
  53.     }
  54. }