src/Controller/Front/ContactsController.php line 36
<?phpnamespace App\Controller\Front;use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;use Symfony\Component\Routing\Annotation\Route;use Symfony\Component\HttpFoundation\Request;use Doctrine\Persistence\ManagerRegistry;use Symfony\Component\HttpFoundation\Response;use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;use Symfony\Component\Mailer\MailerInterface;use Symfony\Bridge\Twig\Mime\TemplatedEmail;use Symfony\Component\Mime\Email;use Symfony\Component\Mime\Address;use OlaSoft\Common;use App\Entity\Messages;use App\Form\MessagesType;class ContactsController extends AbstractController{public function __construct(ManagerRegistry $doctrine){$this->doctrine = $doctrine;}private $doctrine;public function getDoctrine(){return $this->doctrine;}/*** @Route("/contacts/", name="contacts")*/public function contact(Request $request, MailerInterface $mailer){$em = $this->getDoctrine()->getManager();$msg = new Messages();$form = $this->createForm(MessagesType::class, $msg);$form->handleRequest($request);$captchaResponse = $_POST['g-recaptcha-response'] ?? null;if ($form->isSubmitted() && $form->isValid() && $captchaResponse){$captchaUrl = Common::getParameter("recaptcha")["url"];$captchaSecret = Common::getParameter("recaptcha")["secret"];$userIP = $_SERVER['REMOTE_ADDR'];$captcha = file_get_contents($captchaUrl . '?secret=' . $captchaSecret . '&response=' . $captchaResponse. '&remoteip=' . $userIP);$captcha = json_decode($captcha);if($captcha->success){$browser = Common::getBrowser(null, true);$msg->setIP($request->getClientIP());$msg->setBrowser($browser['name']);$msg->setOS($browser['platform']);$msg->setDate(new \DateTime);$em->persist($msg);$em->flush();$author = $msg->getFName().' '.$msg->getLName();$message= "<b>Nom et prénoms : </b>".$author."<br/><b>Adresse électronique : </b>".$msg->getEmail()."<br/><b>Object : </b>".$msg->getObject()."<br/><b>Message :</b><p style='border-left: 3px solid #ccc; padding-left: 10px; padding-top: 5px; padding-bottom: 5px;'>".nl2br($msg->getContent())."</p>";$email = (new TemplatedEmail())// ->from('noreply@'.$_SERVER['HTTP_HOST'])->to(Common::getParameter('contacts')['email'])->replyTo(new Address($msg->getEmail(),$author))->priority(Email::PRIORITY_HIGH)->subject(Common::getParameter('sitename').' - '.$msg->getObject())->html($message);$mailer->send($email);$this->addFlash("notice","Votre message a été envoyé avec succès.");return $this->redirectToRoute('contacts');}$this->addFlash("error","Une erreur s'est produite, veuillez cocher le Captcha svp.");}return $this->render('Default/contacts.html.twig',['form'=>$form->createView()]);}}