Example #1
0
 /**
  * Отправить пользователю код для подтверждения телефона
  */
 public function actionSendSms($echo = true, $fields_are_set = false)
 {
     if ($_SESSION['send_sms_time'] > time()) {
         return;
     }
     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/captcha.php";
     session_start();
     $this->setFieldInfo('captchanum', __paramInit('string', null, 'captchanum'));
     $num = __paramInit('string', null, 'rndnum');
     $_SESSION['reg_captcha_num'] = $this->captchanum;
     $captcha = new captcha($this->captchanum);
     if (!$captcha->checkNumber($num)) {
         unset($_SESSION['reg_captcha_num']);
         unset($_SESSION["regform_captcha_entered"]);
         echo json_encode(array("err_msg" => iconv("WINDOWS-1251", "UTF-8//IGNORE", "Вы ввели неверный код."), "target" => "captchanum"));
         exit;
     } else {
         $_SESSION["regform_captcha_entered"] = true;
     }
     $code = rand(1000, 9999);
     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/sms_gate_a1.php";
     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/sbr_meta.php";
     $phone = $fields_are_set ? $this->phone : trim(__paramInit('string', null, 'phone'));
     $phone = $_SESSION["reg_phone"] = preg_replace("#[\\D]#", "", $phone);
     $sms = new sms_gate_a1($phone);
     $sRole = $fields_are_set ? $this->role == 2 ? 'emp' : 'frl' : __paramInit('string', null, 'role');
     if ((is_release() || $phone != 71111112222) && sbr_meta::findSafetyPhone($phone, $sRole)) {
         if ($echo) {
             echo json_encode(array("err_msg" => iconv("WINDOWS-1251", "UTF-8//IGNORE", "Пользователь с таким номером уже зарегистрирован")));
             exit;
         } else {
             $this->error['phone'] = 'Пользователь с таким номером уже зарегистрирован';
             $this->errno['phone'] = 3;
         }
     }
     $msg = "Ваш код активации на free-lance.ru \n{$code}";
     $count = "5";
     if (is_release() || $phone != 71111112222) {
         $id = $sms->sendSMS($msg, "text", null, true);
         //$code = 7777; // !!
         $message = $sms->getLimitMessage($count);
     } else {
         $code = 7777;
         $id = 123;
     }
     if ((int) $id > 0) {
         $_SESSION['send_sms_time'] = strtotime('+1 min');
         $_SESSION["reg_sms_isnn"] = $sms->getISNN();
         $_SESSION["reg_sms_data"] = $msg;
         $_SESSION["reg_sms_date_send"] = date('Y-m-d H:i:s');
         $_SESSION['smsIsRequested'] = 1;
         $_SESSION['smsCode'] = $code;
         if ($echo) {
             echo json_encode(array("mid" => $id, "count" => $count, "message" => iconv("WINDOWS-1251", "UTF-8//IGNORE", $message), "LIMIT" => sms_gate::SMS_ON_NUMBER_PER_24_HOURS));
             exit;
         }
     } else {
         $error_text = "Не удалось отправить сообщение. Попробуйте через несколько минут.";
         $target = "";
         if ($sms->limitIsExceed()) {
             $error_text = sms_gate::LIMIT_EXCEED_LINK_TEXT;
             $target = "limit_exceed";
         }
         if ($echo) {
             echo json_encode(array("err_msg" => iconv("WINDOWS-1251", "UTF-8//IGNORE", $error_text), "target" => $target));
             exit;
         } else {
             $this->error['actionSendSms'] = $error_text;
         }
     }
     return $id;
 }
Example #2
0
function getsms($phone)
{
    require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/sms_gate_a1.php";
    if ($_SESSION['send_sms_time'] > time()) {
        return;
    }
    $_SESSION['send_sms_time'] = strtotime("+" . sms_gate::TIMEOUT_SEND);
    // таймаут до следующей отсылки СМС
    if (!preg_match("/^\\+[0-9]{10,15}/mi", $phone)) {
        $sms = new sms_gate_a1($phone);
        $msg = $sms->getTextMessage(sms_gate::TYPE_ACTIVATE, $sms->generateCode());
        $success = $sms->sendSMS($msg);
        if ($success) {
            $message = $sms->getLimitMessage($count);
        } else {
            $message = sms_gate::LIMIT_EXCEED_LINK_TEXT;
            $count = sms_gate::SMS_ON_NUMBER_PER_24_HOURS;
        }
        $_SESSION['send_sms_phone'] = $phone;
        $_SESSION['send_sms_code'] = $sms->getAuthCode();
        $result = array('success' => true, 'message' => iconv("Windows-1251", "UTF-8//IGNORE", $message), 'count' => $count);
        if (SMS_GATE_DEBUG) {
            $result['c'] = $sms->getAuthCode();
        }
        echo json_encode($result);
        return;
    }
    return;
}