public static function step2()
 {
     $oSession = new Session();
     if (!$oSession->exists('mail_step1')) {
         Framework\Url\Header::redirect(Uri::get('user', 'signup', 'step1'));
     } elseif ($oSession->exists('mail_step2')) {
         Header::redirect(Uri::get('user', 'signup', 'step3'));
     }
     unset($oSession);
     if (isset($_POST['submit_join_user2'])) {
         if (\PFBC\Form::isValid($_POST['submit_join_user2'])) {
             (new JoinFormProcess())->step2();
         }
         Framework\Url\Header::redirect();
     }
     $oForm = new \PFBC\Form('form_join_user2');
     $oForm->configure(array('action' => ''));
     $oForm->addElement(new \PFBC\Element\Hidden('submit_join_user2', 'form_join_user2'));
     $oForm->addElement(new \PFBC\Element\Token('join2'));
     $oForm->addElement(new \PFBC\Element\Radio(t('Gender:'), 'sex', array('female' => t('Female') . ' ♀', 'male' => t('Male') . ' ♂', 'couple' => t('Couple')), array('value' => 'female', 'title' => t('Please specify your gender.'), 'required' => 1)));
     $oForm->addElement(new \PFBC\Element\Checkbox(t('Interested in:'), 'match_sex', array('male' => t('Male') . ' ♂', 'female' => t('Female') . ' ♀', 'couple' => t('Couple')), array('value' => 'male', 'title' => t('Please specify whom you are looking for'), 'required' => 1)));
     $oForm->addElement(new \PFBC\Element\Date(t('Your Date of birth:'), 'birth_date', array('placeholder' => t('Month/Day/Year'), 'id' => 'birth_date', 'title' => t('Please specify your birth date using the calendar or with this format: Month/Day/Year.'), 'onblur' => 'CValid(this.value, this.id)', 'validation' => new \PFBC\Validation\BirthDate(), 'required' => 1)));
     $oForm->addElement(new \PFBC\Element\HTMLExternal('<span class="input_error birth_date"></span>'));
     $oForm->addElement(new \PFBC\Element\Country(t('Your Country:'), 'country', array('id' => 'str_country', 'value' => Geo::getCountryCode(), 'title' => t('Select the country where you live.'), 'required' => 1)));
     $oForm->addElement(new \PFBC\Element\Textbox(t('Your City:'), 'city', array('id' => 'str_city', 'value' => Geo::getCity(), 'onblur' => 'CValid(this.value,this.id,2,150)', 'title' => t('Specify the city where you live.'), 'validation' => new \PFBC\Validation\Str(2, 150), 'required' => 1)));
     $oForm->addElement(new \PFBC\Element\HTMLExternal('<span class="input_error str_city"></span>'));
     $oForm->addElement(new \PFBC\Element\Textbox(t('Your State or Province:'), 'state', array('id' => 'str_state', 'value' => Geo::getState(), 'onblur' => 'CValid(this.value,this.id,2,150)', 'title' => t('Specify your state.'), 'validation' => new \PFBC\Validation\Str(2, 150), 'required' => 1)));
     $oForm->addElement(new \PFBC\Element\HTMLExternal('<span class="input_error str_state"></span>'));
     $oForm->addElement(new \PFBC\Element\Textbox(t('Your ZIP/Postal Code:'), 'zip_code', array('id' => 'str_zip_code', 'value' => Geo::getZipCode(), 'onblur' => 'CValid(this.value,this.id,2,15)', 'title' => t('Enter your post code (Zip).'), 'validation' => new \PFBC\Validation\Str(2, 15), 'required' => 1)));
     $oForm->addElement(new \PFBC\Element\HTMLExternal('<span class="input_error str_zip_code"></span>'));
     $oForm->addElement(new \PFBC\Element\Button());
     $oForm->addElement(new \PFBC\Element\HTMLExternal('<script src="' . PH7_URL_STATIC . PH7_JS . 'validate.js"></script><script src="' . PH7_URL_STATIC . PH7_JS . 'geo/autocompleteCity.js"></script>'));
     $oForm->render();
 }
 /**
  * Parser for the System variables.
  *
  * @param string $sVar
  * @return The new parsed text
  */
 public function parse($sVar)
 {
     /*** Not to parse a text ***/
     if (preg_match('/#!.+!#/', $sVar)) {
         $sVar = str_replace(array('#!', '!#'), '', $sVar);
         return $sVar;
     }
     /***** Site Variables *****/
     $oRegistry = Registry::getInstance();
     $sVar = str_replace('%site_name%', $oRegistry->site_name, $sVar);
     $sVar = str_replace('%url_relative%', PH7_RELATIVE, $sVar);
     $sVar = str_replace(array('%site_url%', '%url_root%'), $oRegistry->site_url, $sVar);
     $sVar = str_replace('%url_static%', PH7_URL_STATIC, $sVar);
     $sVar = str_replace('%page_ext%', PH7_PAGE_EXT, $sVar);
     unset($oRegistry);
     /***** Affiliate Variables *****/
     $oSession = new Session();
     $sAffUsername = $oSession->exists('affiliate_username') ? $oSession->get('affiliate_username') : 'aid';
     $sVar = str_replace('%affiliate_url%', Uri::get('affiliate', 'router', 'refer', $sAffUsername), $sVar);
     unset($oSession);
     /***** Global Variables *****/
     $sVar = str_replace('%ip%', Ip::get(), $sVar);
     /***** Kernel Variables *****/
     $sVar = str_replace('%software_name%', Kernel::SOFTWARE_NAME, $sVar);
     $sVar = str_replace('%software_company%', Kernel::SOFTWARE_COMPANY, $sVar);
     $sVar = str_replace('%software_author%', 'Pierre-Henry Soria', $sVar);
     $sVar = str_replace('%software_version_name%', Kernel::SOFTWARE_VERSION_NAME, $sVar);
     $sVar = str_replace('%software_version%', Kernel::SOFTWARE_VERSION, $sVar);
     $sVar = str_replace('%software_build%', Kernel::SOFTWARE_BUILD, $sVar);
     $sVar = str_replace('%software_email%', Kernel::SOFTWARE_EMAIL, $sVar);
     $sVar = str_replace('%software_website%', Kernel::SOFTWARE_WEBSITE, $sVar);
     // Output
     return $sVar;
 }
 /**
  * Affiliates'levels.
  *
  * @return boolean
  */
 public static function auth()
 {
     $oSession = new Framework\Session\Session();
     $oBrowser = new Framework\Navigation\Browser();
     $bIsConnect = (int) $oSession->exists('affiliate_id') && $oSession->get('affiliate_ip') === Framework\Ip\Ip::get() && $oSession->get('affiliate_http_user_agent') === $oBrowser->getUserAgent();
     /** Destruction of the object and minimize CPU resources **/
     unset($oSession, $oBrowser);
     return $bIsConnect;
 }
 /**
  * Check if the JS validationbox has to be added and redirect if the site hasn't been validated yet for a while.
  *
  * @param object \PH7\Framework\Session\Session $oSess
  * @return boolean
  */
 public static function needInject(Framework\Session\Session $oSess)
 {
     $oVSModel = new ValidateSiteCoreModel();
     $iSinceSiteCreated = VDate::getTime(StatisticCoreModel::getSiteSinceDate());
     // After over 2 months, the site is still not validated, maybe the validation box doesn't really work, so we redirected to the page form
     if (!$oVSModel->is() && VDate::setTime('-2 months') > $iSinceSiteCreated && !$oSess->exists(self::SESS_IS_VISITED)) {
         Header::redirect(Uri::get('validate-site', 'main', 'validationbox'));
     }
     if (!$oVSModel->is() && VDate::setTime('-2 days') > $iSinceSiteCreated) {
         // OK for adding the validation colorbox
         return true;
     }
     return false;
 }
Example #5
0
 public static function checkGroup()
 {
     $oSession = new Framework\Session\Session();
     if (!$oSession->exists('member_group_id')) {
         $oSession->regenerateId();
         $oSession->set('member_group_id', '1');
         // Visitor's group
     }
     unset($oSession);
     $rStmt = Db::getInstance()->prepare('SELECT permissions FROM' . Db::prefix('Memberships') . 'WHERE groupId = :groupId LIMIT 1');
     $rStmt->bindParam(':groupId', $_SESSION[Framework\Config\Config::getInstance()->values['session']['prefix'] . 'member_group_id'], \PDO::PARAM_INT);
     $rStmt->execute();
     $oFetch = $rStmt->fetch(\PDO::FETCH_OBJ);
     Db::free($rStmt);
     return Framework\CArray\ObjArr::toObject(unserialize($oFetch->permissions));
 }
 /**
  * Constructor.
  *
  * @param object \PH7\Framework\Session\Session $oSession
  * @param object \PH7\Framework\Mvc\Request\Http $oHttpRequest
  * @param object \PH7\Framework\Registry\Registry $oRegistry
  * @return void
  */
 public function __construct(Session $oSession, HttpRequest $oHttpRequest, Registry $oRegistry)
 {
     parent::__construct();
     /*** Import the libraries ***/
     Import::lib('Service.Google.OAuth.Google_Client');
     Import::lib('Service.Google.OAuth.contrib.Google_Oauth2Service');
     $oClient = new \Google_Client();
     $oClient->setApplicationName($oRegistry->site_name);
     $this->_setConfig($oClient);
     $oOauth = new \Google_Oauth2Service($oClient);
     if ($oHttpRequest->getExists('code')) {
         $oClient->authenticate();
         $oSession->set('token', $oClient->getAccessToken());
         $this->sUrl = Uri::get('connect', 'main', 'home');
     }
     if ($oSession->exists('token')) {
         $oClient->setAccessToken($oSession->get('token', false));
     }
     if ($oClient->getAccessToken()) {
         // User info is ok? Here we will be connect the user and/or adding the login and registering routines...
         $oUserModel = new UserCoreModel();
         // Get information of user
         $aUserData = $oOauth->userinfo->get();
         if (!($iId = $oUserModel->getId($aUserData['email']))) {
             // Add User if it does not exist in our database
             $this->add(escape($aUserData, true), $oUserModel);
             // Add User Avatar
             if (!empty($aUserData['picture'])) {
                 $this->setAvatar($aUserData['picture']);
             }
             $this->oDesign->setFlashMsg(t('You have now been registered! %0%', (new Registration())->sendMail($this->_aUserInfo, true)->getMsg()));
             $this->sUrl = Uri::get('connect', 'main', 'register');
         } else {
             // Login
             $this->setLogin($iId, $oUserModel);
             $this->sUrl = Uri::get('connect', 'main', 'home');
         }
         // Add the access token
         $oSession->set('token', $oClient->getAccessToken());
         unset($oUserModel);
     } else {
         $this->sUrl = $oClient->createAuthUrl();
     }
     unset($oClient, $oOauth);
 }
 /**
  * If a user is logged, get "approximately" the relative age for better and more intuitive search.
  *
  * @param object \PH7\UserCoreModel $oUserModel
  * @param object \PH7\Framework\Session\Session $oSession
  * @return array 'min_age' and 'max_age' which is the approximately age the user is looking for.
  */
 protected static function getAgeVals(UserCoreModel $oUserModel, Session $oSession)
 {
     $iMinAge = (int) DbConfig::getSetting('minAgeRegistration');
     $iMaxAge = (int) DbConfig::getSetting('maxAgeRegistration');
     if (UserCore::auth()) {
         $sBirthDate = $oUserModel->getBirthDate($oSession->get('member_id'));
         $aAge = explode('-', $sBirthDate);
         $iAge = (new Year($aAge[0], $aAge[1], $aAge[2]))->get();
         $iMinAge = $iAge - 5 < $iMinAge ? $iMinAge : $iAge - 5;
         $iMaxAge = $iAge + 5 > $iMaxAge ? $iMaxAge : $iAge + 5;
     }
     return ['min_age' => $iMinAge, 'max_age' => $iMaxAge];
 }
 /**
  * @return boolean Return "true" If we believe that this person takes too much request otherwise "false"
  */
 public function session()
 {
     $oSession = new Session();
     if (!$oSession->exists(static::COOKIE_NAME)) {
         $oSession->set(static::COOKIE_NAME, 1);
     } else {
         $oSession->set(static::COOKIE_NAME, $oSession->get(static::COOKIE_NAME) + 1);
     }
     if ($oSession->get(static::COOKIE_NAME) > PH7_DDOS_MAX_SESSION_PAGE_LOAD) {
         $oSession->remove(static::COOKIE_NAME);
         // Remove Session
         $bStatus = true;
     } else {
         $bStatus = false;
     }
     unset($oSession);
     return $bStatus;
 }
 public static function checkGroup()
 {
     $oSession = new Framework\Session\Session();
     if (!$oSession->exists('member_group_id')) {
         $oSession->regenerateId();
         $oSession->set('member_group_id', '1');
         // By default, it's the Visitor's group (ID 1)
     }
     $rStmt = Db::getInstance()->prepare('SELECT permissions FROM' . Db::prefix('Memberships') . 'WHERE groupId = :groupId LIMIT 1');
     $rStmt->bindValue(':groupId', $oSession->get('member_group_id'), \PDO::PARAM_INT);
     $rStmt->execute();
     $oFetch = $rStmt->fetch(\PDO::FETCH_OBJ);
     Db::free($rStmt);
     unset($oSession);
     return Framework\CArray\ObjArr::toObject(unserialize($oFetch->permissions));
 }
Example #10
0
    protected function isOnline($sUsername)
    {
        $oUserModel = new UserCoreModel();
        $iProfileId = $oUserModel->getId(null, $sUsername);
        $bIsOnline = $oUserModel->isOnline($iProfileId, Framework\Mvc\Model\DbConfig::getSetting('userTimeout'));
        unset($oUserModel);
        return $bIsOnline;
    }
    protected function sanitize($sText)
    {
        $sText = escape($sText);
        $sText = str_replace("\n\r", "\n", $sText);
        $sText = str_replace("\r\n", "\n", $sText);
        $sText = str_replace("\n", "<br>", $sText);
        return $sText;
    }
    public function __destruct()
    {
        unset($this->_oHttpRequest, $this->_oMessengerModel);
    }
}
// Go only is the member id connected
if (UserCore::auth()) {
    $oSession = new Session();
    // Go start_session() function.
    if (empty($_SESSION['messenger_username'])) {
        $_SESSION['messenger_username'] = $oSession->get('member_username');
    }
    unset($oSession);
    new MessengerAjax();
}
 /**
  * Set a user authentication.
  *
  * @param object $oUserData User database object.
  * @param object \PH7\UserCoreModel $oUserModel
  * @param object \PH7\Framework\Session\Session $oSession
  * @return void
  */
 public function setAuth($oUserData, UserCoreModel $oUserModel, Session $oSession)
 {
     // Is disconnected if the user is logged on as "affiliate" or "administrator".
     if (AffiliateCore::auth() || AdminCore::auth()) {
         $oSession->destroy();
     }
     // Regenerate the session ID to prevent the session fixation
     $oSession->regenerateId();
     // Now we connect the member
     $aSessionData = ['member_id' => $oUserData->profileId, 'member_email' => $oUserData->email, 'member_username' => $oUserData->username, 'member_first_name' => $oUserData->firstName, 'member_sex' => $oUserData->sex, 'member_group_id' => $oUserData->groupId, 'member_ip' => Ip::get(), 'member_http_user_agent' => (new Browser())->getUserAgent(), 'member_token' => Various::genRnd($oUserData->email)];
     $oSession->set($aSessionData);
     (new Framework\Mvc\Model\Security())->addLoginLog($oUserData->email, $oUserData->username, '*****', 'Logged in!');
     $oUserModel->setLastActivity($oUserData->profileId);
     unset($oUserModel, $oUserData);
 }