public function Step1Method()
 {
     unset($_SESSION['aUser']);
     unset($_SESSION['aProduct']);
     /*
      * Détermine les offres accessible pour cette résidence
      * ( Uniquement si il passe la vérification )
      */
     $iCanGetAbonnement = $this->canGetAbonnement();
     // Vérifie la résidence
     if ($iCanGetAbonnement == '1') {
         // Rediréction car, résidence non listé
         exit;
     }
     // Vérifie si l'user est déjà  abonné
     if ($iCanGetAbonnement == '2') {
         // Rediréction car, utilisateur déjà  abonné
         exit;
     }
     $oResidence = new ResidenceModel();
     $this->aView['aProduct'] = $oResidence->getProduct();
     // Déconnexion SQL
     $oResidence->oPDO = NULL;
     $oPayline->oPDO = NULL;
 }
示例#2
0
 public function validationStep1()
 {
     /*
      * Vérifie le contenue des donné envoyé par la requette ajax
      * de Step1, si le contenue est valide il est sauvegarder en 
      * session puis on envoie l'utilisateur sur la page Step2
      */
     // Vérifie les champs vide
     $aReturn = array();
     $_SESSION['aProduct'] = array();
     if ($_POST['CGV'] == 'false') {
         $aReturn['CGV'] = 1;
     } else {
         $aReturn['CGV'] = 0;
     }
     // Vérifie le contenue du Mail
     if (empty($_POST['sMail']) || !StrModel::isMail($_POST['sMail'])) {
         $aReturn['sMail'] = 1;
     } else {
         $aReturn['sMail'] = 0;
     }
     if ($_POST['sMail'] != $_POST['sMail2']) {
         $aReturn['sMail'] = 1;
     }
     // Vérifie le contenue du numéro Portable
     if (empty($_POST['sPortable'])) {
         $aReturn['sPortable'] = 1;
     }
     $_POST['sPortable'] = StrModel::is_NumPortable($_POST['sPortable']);
     if (!$_POST['sPortable']) {
         $aReturn['sPortable'] = 1;
     } else {
         $aReturn['sPortable'] = 0;
     }
     /*
      * Si un champs n'est pas correct on stop l'analyse
      * ici et renvoie le contenue des erreur
      */
     foreach ($aReturn as $iValue) {
         // Si on trouve au moins une iValue à  1 alors on stop
         if ($iValue == 1) {
             return $aReturn;
         }
     }
     /*
      * Sauvegarde les donné envoyé dans la table bo_user_temp
      * ceci permet de relancer les utilisateur qui n'on pas fini leurs abonnement
      * (uniquement pour les user B2C)
      */
     $oResidence = new ResidenceModel();
     $aResidence = $oResidence->getResidence();
     if ($aResidence['mode'] == 'b2c') {
         // Déléte les entré de rappelle déjà  existante
         $oUserTemp = $this->oPDO->prepare('DELETE FROM bo_user_temp WHERE mail=:mail OR portable=:portable');
         $oUserTemp->bindValue(':mail', $_POST['sMail']);
         $oUserTemp->bindValue(':portable', $_POST['sPortable']);
         $oUserTemp->execute();
         // Enregistre le rappel
         $oUserTemp = $this->oPDO->prepare('INSERT INTO bo_user_temp SET registered="' . date('Y-m-d') . '", mail=:mail, portable=:portable');
         $oUserTemp->bindValue(':mail', $_POST['sMail']);
         $oUserTemp->bindValue(':portable', $_POST['sPortable']);
         $oUserTemp->execute();
     }
     /*
      * Sauvegarde les donné pour l'étape 2
      */
     $_SESSION['aUser']['mail'] = $_POST['sMail'];
     $_SESSION['aUser']['portable'] = $_POST['sPortable'];
     /*
      * Récupà¨re la listes des produit autorisé pour cet utiliateur
      * puis analyse dans les donnée envoyé uniquement celle correspondante
      * (évite le fraudes)
      */
     $aProduct = $oResidence->getProduct();
     // Déconnexion SQL
     $oResidence->oPDO = NULL;
     /*
      * Listes les produits proposé pour cette résidence 
      * et remanie la liste pour l'utiliser plus facilement
      */
     $aPID = array();
     foreach ($aProduct as $iKey => $aValue) {
         $iPID = $aValue['PID'];
         $aPID[$iPID] = $aValue;
     }
     /*
      * Vérifie chaque options souscrit à  l'abonnement
      */
     $_SESSION['aProduct'] = array();
     if (isset($aPID[1]) && isset($aPID[2])) {
         /*
          * Cette utilisateur à  le choix entre les deux abonnement
          * On vérifie celui qu'il a choisis, si il y a une fraude
          * (tentative de validation sans choix d'abonnement)
          * on force l'abonnement 12 mois
          */
         if (isset($_POST['PID2']) && $_POST['PID2'] == 'true') {
             $_SESSION['aProduct'][1] = false;
             $_SESSION['aProduct'][2] = true;
         } else {
             $_SESSION['aProduct'][1] = true;
             $_SESSION['aProduct'][2] = false;
         }
     } else {
         if (isset($aPID[1]) && !isset($aPID[2])) {
             /*
              * Cette utilisateur n'a pas le choix d'abonnement
              * donc on lui souscrit obligatoirement un abonnement
              * de 12 mois
              */
             $_SESSION['aProduct'][1] = true;
             $_SESSION['aProduct'][2] = false;
         } else {
             /*
              * Cet utilisateur n'a pas d'abonnement internet disponible
              * (Utilisateur B2B)
              */
             $_SESSION['aProduct'][1] = false;
             $_SESSION['aProduct'][2] = false;
         }
     }
     // Si la résidence comprends des frais d'inscription obligatoire
     if (isset($aPID[3])) {
         $_SESSION['aProduct'][3] = true;
     } else {
         $_SESSION['aProduct'][3] = false;
     }
     // Clé WiFi
     if (isset($aPID[4]) && $_POST['PID4'] == 'true') {
         $_SESSION['aProduct'][4] = true;
     } else {
         $_SESSION['aProduct'][4] = false;
     }
     // Antivirus
     if (isset($aPID[5]) && $_POST['PID5'] == 'true') {
         $_SESSION['aProduct'][5] = true;
     } else {
         $_SESSION['aProduct'][5] = false;
     }
     // Contrà´le Parental
     if (isset($aPID[6]) && $_POST['PID6'] == 'true') {
         $_SESSION['aProduct'][6] = true;
     } else {
         $_SESSION['aProduct'][6] = false;
     }
     return $aReturn;
 }