src/Service/Session.php line 62

Open in your IDE?
  1. <?php
  2. namespace App\Service;
  3. use App\Entity\Evopub;
  4. use App\Entity\Evositepub;
  5. use App\Entity\Statistiquesevo2020;
  6. use App\Entity\Statistiquesevocookies;
  7. use App\Entity\Statistiquesevorobot;
  8. use App\Entity\Statistiquesevosession;
  9. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  10. use Symfony\Component\HttpFoundation\Request;
  11. class Session extends AbstractController
  12. {
  13.     public function Session(Request $request)
  14.     {
  15.         $version "V3";
  16.         if(!isset($_SESSION)){
  17.             session_start();
  18.         }
  19.     // Bloquer ips indésirables
  20.      $ip_blacklist = array('173.231.59.214','195.54.161.239','45.55.254.212','138.197.64.36','94.130.9.115','216.18.204.215','165.227.222.148',
  21. '144.76.88.54''51.222.43.122','51.103.30.103','51.103.45.88');
  22.  
  23.     // vous pouvez mettre les ips dans un fichiers texte et les importer
  24.     // $ip_blacklist = file('ip_blacklist.txt');
  25.  
  26.     // lecture de l'ip en cours
  27.     $ip = isset($_SERVER['REMOTE_ADDR']) ? trim($_SERVER['REMOTE_ADDR']) : '';
  28.  
  29.     // test si l'ip est blacklisté
  30.     if ( array_search($ip$ip_blacklist) !== FALSE )
  31.         {
  32.         echo 'Connexion au site impossible';
  33.         // stop le script
  34.         exit;
  35.     }
  36.         $date = new \DateTime('now');
  37.         $annee date("Y");
  38.         $mois date("m");
  39.         $jour date("d");
  40.         $heure = new \DateTime('now');
  41.         $heure->format("H:i:s");
  42.         $IP $_SERVER['REMOTE_ADDR'];
  43.         //$referer = $_SERVER['HTTP_REFERER'];
  44.         $referer $request->headers->get('referer');
  45.         if (empty($referer)) {
  46.             $referer "";
  47.         }
  48.         $page_courante $_SERVER['REQUEST_URI'];
  49.         $repositoryRobot $this->getDoctrine()->getRepository(statistiquesevorobot::class);
  50.         $repositorySession $this->getDoctrine()->getRepository(statistiquesevosession::class);
  51.         $repositoryCookies $this->getDoctrine()->getRepository(statistiquesevocookies::class);
  52.         $repository2020 $this->getDoctrine()->getRepository(statistiquesevo2020::class);
  53.         $repositoryPub $this->getDoctrine()->getRepository(Evositepub::class);
  54.         $robots $this->getDoctrine()
  55.             ->getRepository(Statistiquesevorobot::class)
  56.             ->findByIp($IP);
  57.         $countRobots count($robots);
  58.         if ($countRobots == "0") {
  59.             $robot "0";
  60.         } else {
  61.             $robot "1";
  62.         }
  63. //cookie sur site admin
  64.         if (isset($_COOKIE['evoadmin1'])) {
  65.             //ok cookie
  66.             $ok2 "ad222";
  67.             $idcookieadmin $_COOKIE['evoadmin1'];
  68.         }else{
  69.             $idcookieadmin "0";
  70.         }
  71. // stats new evo2020
  72.         if (isset($_SESSION['idsession'])) {
  73. //ok session
  74.             $ok "111";
  75.             $idcookie $_COOKIE['evo2020'];
  76.             $idsession $_SESSION['idsession'];
  77.             //$evosession = $repositorySession->findOneBy(['id' => $idsession]);
  78.         $evosession $this->getDoctrine()
  79.             ->getRepository(Statistiquesevosession::class)
  80.             ->findByIp($idsession);
  81. foreach($evosession as $row){
  82.             $sessionorigine $row['sessionorigine'];
  83.             $glap $row['glap'];
  84.             $simulok $row['simulok'];
  85.             $loc $row['localisation'];
  86. }
  87.             $entityManager $this->getDoctrine()->getManager();
  88.             $product = new statistiquesevo2020();
  89.             $product->setDate($date);
  90.             $product->setTime($heure);
  91.             $product->setAnnee($annee);
  92.             $product->setMois($mois);
  93.             $product->setJour($jour);
  94.             $product->setPage($page_courante);
  95.             $product->setIp($IP);
  96.             $product->setReferer($referer);
  97.             $product->setGlap($glap);
  98.             $product->setVersion($version);
  99.             $product->setSimulok($simulok);
  100.             $product->setSessionorigine($sessionorigine);
  101.             $product->setSession($idsession);
  102.             // tell Doctrine you want to (eventually) save the Product (no queries yet)
  103.             $entityManager->persist($product);
  104.             // actually executes the queries (i.e. the INSERT query)
  105.             $entityManager->flush();
  106.         } else {
  107.             //pas ok session
  108.             if (isset($_COOKIE['evo2020'])) {
  109.                 //ok cookie
  110.                 $ok "222";
  111.                 $idcookie $_COOKIE['evo2020'];
  112.                // $evocookie = $repositoryCookies->findOneBy(['id' => $idcookie]);
  113.         $evocookie $this->getDoctrine()
  114.             ->getRepository(Statistiquesevocookies::class)
  115.             ->findById($idcookie);
  116. foreach($evocookie as $row){
  117.     $sessionorigine $row['sessionorigine'];
  118. }
  119.                // $sessionorigine = $evocookie->getSessionorigine();
  120.         $evosession $this->getDoctrine()
  121.             ->getRepository(Statistiquesevosession::class)
  122.             ->findByIp($sessionorigine);
  123.                // $evosession = $repositorySession->findOneBy(['id' => $sessionorigine]);
  124. foreach($evosession as $row){
  125.     $glap $row['glap'];
  126.     $simulok $row['simulok'];
  127.     $loc $row['localisation'];
  128. }
  129.                /* $glap = $evosession->getGlap();
  130.                 $simulok = $evosession->getSimulok();
  131.                 $loc = $evosession->getLocalisation();*/
  132.                 $entityManager $this->getDoctrine()->getManager();
  133.                 $evosession = new statistiquesevosession();
  134.                 $evosession->setDate($date);
  135.                 $evosession->setSessionorigine($sessionorigine);
  136.                 $evosession->setGlap($glap);
  137.                 $evosession->setSimulok($simulok);
  138.                 $evosession->setIdcookieadmin($idcookieadmin);
  139.                 $evosession->setRobot($robot);
  140.                 $evosession->setLocalisation($loc);
  141.                 // tell Doctrine you want to (eventually) save the Product (no queries yet)
  142.                 $entityManager->persist($evosession);
  143.                 // actually executes the queries (i.e. the INSERT query)
  144.                 $entityManager->flush();
  145.                 $idsession $evosession->getId();
  146.                 $_SESSION['idsession'] = $idsession;
  147.                 $evo2020 = new statistiquesevo2020();
  148.                 $evo2020->setDate($date);
  149.                 $evo2020->setTime($heure);
  150.                 $evo2020->setAnnee($annee);
  151.                 $evo2020->setMois($mois);
  152.                 $evo2020->setJour($jour);
  153.                 $evo2020->setPage($page_courante);
  154.                 $evo2020->setIp($IP);
  155.                 $evo2020->setReferer($referer);
  156.                 $evo2020->setGlap($glap);
  157.                 $evo2020->setVersion($version);
  158.                 $evo2020->setSimulok($simulok);
  159.                 $evo2020->setSessionorigine($sessionorigine);
  160.                 $evo2020->setSession($idsession);
  161.                 // tell Doctrine you want to (eventually) save the Product (no queries yet)
  162.                 $entityManager->persist($evo2020);
  163.                 // actually executes the queries (i.e. the INSERT query)
  164.                 $entityManager->flush();
  165.                 setcookie("evo2020"$idcookietime() + 31536000);
  166.             } else {
  167. //pas ok cookie
  168.                 $ok "333";
  169.                 $glap "0";
  170.                 $loc "0";
  171.                 if (!empty($_GET['glap'])) {
  172.                     $glap $_GET['glap'];
  173.                 }
  174.                 if (!empty($_GET['loc'])) {
  175.                     $loc $_GET['loc'];
  176.                 }
  177.                 $entityManager $this->getDoctrine()->getManager();
  178.                 $evosession = new statistiquesevosession();
  179.                 $evosession->setDate($date);
  180.                 $evosession->setSessionorigine('0');
  181.                 $evosession->setGlap($glap);
  182.                 $evosession->setSimulok('0');
  183.                 $evosession->setIdcookieadmin('0');
  184.                 $evosession->setRobot($robot);
  185.                 $evosession->setLocalisation($loc);
  186.                 // tell Doctrine you want to (eventually) save the Product (no queries yet)
  187.                 $entityManager->persist($evosession);
  188.                 // actually executes the queries (i.e. the INSERT query)
  189.                 $entityManager->flush();
  190.                 $idsession $evosession->getId();
  191.               /*  $product = $entityManager->getRepository(statistiquesevosession::class)->find($idsession);
  192.                 $product->setSessionorigine($idsession);
  193.                 $entityManager->flush();*/
  194.         $product $this->getDoctrine()
  195.             ->getRepository(Statistiquesevosession::class)
  196.             ->UpdateSessionOrigine($idsession);
  197.                 $_SESSION['idsession'] = $idsession;
  198.                 $evo2020 = new statistiquesevo2020();
  199.                 $evo2020->setDate($date);
  200.                 $evo2020->setTime($heure);
  201.                 $evo2020->setAnnee($annee);
  202.                 $evo2020->setMois($mois);
  203.                 $evo2020->setJour($jour);
  204.                 $evo2020->setPage($page_courante);
  205.                 $evo2020->setIp($IP);
  206.                 $evo2020->setReferer($referer);
  207.                 $evo2020->setGlap($glap);
  208.                 $evo2020->setVersion($version);
  209.                 $evo2020->setSimulok('0');
  210.                 $evo2020->setSessionorigine($idsession);
  211.                 $evo2020->setSession($idsession);
  212.                 // tell Doctrine you want to (eventually) save the Product (no queries yet)
  213.                 $entityManager->persist($evo2020);
  214.                 // actually executes the queries (i.e. the INSERT query)
  215.                 $entityManager->flush();
  216.                 $evocookies = new statistiquesevocookies();
  217.                 $evocookies->setDate($date);
  218.                 $evocookies->setSessionorigine($idsession);
  219.                 $entityManager->persist($evocookies);
  220.                 // actually executes the queries (i.e. the INSERT query)
  221.                 $entityManager->flush();
  222.                 $idcookie $evocookies->getId();
  223.                 setcookie("evo2020"$idcookietime() + 31536000);
  224.             }
  225.         }
  226. //report des liens
  227.        // $evoPub = $repositoryPub->findBy(['id' => $glap]);
  228.         $evoPub $this->getDoctrine()
  229.             ->getRepository(Evositepub::class)
  230.             ->findByIp($glap);
  231.         $countPubs count($evoPub);
  232.         if ($countPubs != "") {
  233.           //  $evoPub = $repositoryPub->findOneBy(['id' => $glap]);
  234.         $evoPub $this->getDoctrine()
  235.             ->getRepository(Evositepub::class)
  236.             ->findByIp($glap);
  237. foreach($evoPub as $row){
  238.     $sitePub $row['sitepub'];
  239. }
  240.             //$sitePub = $evoPub->getSitepub();
  241.             $entityManager $this->getDoctrine()->getManager();
  242.             $pub = new Evopub();
  243.             $pub->setDate($date);
  244.             $pub->setIP($IP);
  245.             $pub->setPub($sitePub);
  246.             // tell Doctrine you want to (eventually) save the Product (no queries yet)
  247.             $entityManager->persist($pub);
  248.             // actually executes the queries (i.e. the INSERT query)
  249.             $entityManager->flush();
  250.         }
  251.     }
  252. }