Browse Source

add friends code check

master
filesite 7 months ago
parent
commit
4652803d38
  1. 12
      controller/Controller.php
  2. 34
      plugins/Common.php
  3. 31
      themes/tajian/controller/FrontapiController.php
  4. 2
      themes/tajian/views/site/login.php
  5. 2
      themes/tajian/views/site/register.php

12
controller/Controller.php

@ -131,7 +131,7 @@ Class Controller {
} }
//get params by key //get params by key
protected function get($key = '', $defaultValue = '') { protected function get($key = '', $defaultValue = '') {
if (empty($key)) { if (empty($key)) {
return $_GET; return $_GET;
} }
@ -139,7 +139,7 @@ Class Controller {
} }
//post params by key //post params by key
protected function post($key = '', $defaultValue = '') { protected function post($key = '', $defaultValue = '') {
if (empty($key)) { if (empty($key)) {
return $_POST; return $_POST;
} }
@ -147,7 +147,7 @@ Class Controller {
} }
//debug log //debug log
protected function logTimeCost() { protected function logTimeCost() {
if (!empty(FSC::$app['config']['debug'])) { if (!empty(FSC::$app['config']['debug'])) {
$end_time = microtime(true); $end_time = microtime(true);
$timeCost = ceil( ($end_time - FSC::$app['start_time']) * 1000 ); //ms $timeCost = ceil( ($end_time - FSC::$app['start_time']) * 1000 ); //ms
@ -163,7 +163,7 @@ Class Controller {
} }
//error log //error log
protected function logError($error_message) { protected function logError($error_message) {
if (!empty(FSC::$app['config']['debug'])) { if (!empty(FSC::$app['config']['debug'])) {
$thisUrl = FSC::$app['requestUrl']; $thisUrl = FSC::$app['requestUrl'];
$logTime = date('Y-m-d H:i:s'); $logTime = date('Y-m-d H:i:s');
@ -172,7 +172,7 @@ Class Controller {
$logOk = @error_log("{$logTime}\t{$thisUrl}\tERROR: {$error_message}\n", 3, "{$logDir}{$logFilename}"); $logOk = @error_log("{$logTime}\t{$thisUrl}\tERROR: {$error_message}\n", 3, "{$logDir}{$logFilename}");
if (!$logOk) { //try to mkdir if (!$logOk) { //try to mkdir
@mkdir($logDir, 0700, true); @mkdir($logDir, 0700, true);
@error_log("{$logTime}\t{$thisUrl}\ttERROR: {$error_message} ms\n", 3, "{$logDir}{$logFilename}"); @error_log("{$logTime}\t{$thisUrl}\tERROR: {$error_message}\n", 3, "{$logDir}{$logFilename}");
} }
} }
} }
@ -245,7 +245,7 @@ Class Controller {
//set cookie for message show //set cookie for message show
//type: info, warning, danger, success //type: info, warning, danger, success
protected function sendMsgToClient($msg, $type = 'info') { protected function sendMsgToClient($msg, $type = 'info') {
$cookieKey = "alert_msg_{$type}"; $cookieKey = "alert_msg_{$type}";
$expires = time() + 15; $expires = time() + 15;
$path = '/'; $path = '/';

34
plugins/Common.php

@ -0,0 +1,34 @@
<?php
/**
* 常用的公用方法
*/
Class Common {
public static function isCellphoneNumber($number) {
return preg_match("/^1[3456789][0-9]{9}$/", $number);
}
//朋友手机号码的末 6 位
public static function isFriendsCode($number) {
return preg_match("/^[0-9]{6}$/", $number);
}
//用户注册成功后,保存他的手机号码 6 位尾号作为邀请码
protected function saveFriendsCode($cellphone) {
$logTime = date('Y-m-d H:i:s');
$logDir = __DIR__ . '/../runtime/friendscode/';
$logFilename = substr($cellphone, -6) . '.log';
$logOk = @error_log("{$logTime} created\n", 3, "{$logDir}{$logFilename}");
if (!$logOk) { //try to mkdir
@mkdir($logDir, 0700, true);
@error_log("{$logTime} created\n", 3, "{$logDir}{$logFilename}");
}
}
protected function existFriendsCode($code) {
if (self::isFriendsCode($code) == false) {return false;}
$logDir = __DIR__ . '/../runtime/friendscode/';
$logFilename = "{$logDir}{$code}.log";
return file_exists($logFilename);
}
}

31
themes/tajian/controller/FrontapiController.php

@ -5,6 +5,7 @@
require_once __DIR__ . '/../../../lib/DirScanner.php'; require_once __DIR__ . '/../../../lib/DirScanner.php';
require_once __DIR__ . '/../../../plugins/Parsedown.php'; require_once __DIR__ . '/../../../plugins/Parsedown.php';
require_once __DIR__ . '/../../../plugins/Html.php'; require_once __DIR__ . '/../../../plugins/Html.php';
require_once __DIR__ . '/../../../plugins/Common.php';
require_once __DIR__ . '/SiteController.php'; require_once __DIR__ . '/SiteController.php';
Class FrontApiController extends SiteController { Class FrontApiController extends SiteController {
@ -444,8 +445,34 @@ eof;
throw new Exception('Oops,操作太快了,请喝杯咖啡休息会吧...'); throw new Exception('Oops,操作太快了,请喝杯咖啡休息会吧...');
} }
echo "Building..."; //返回给视图的变量
exit; $code = 1;
$msg = '';
$err = '';
$newUser = array();
//用户提交的数据检查
$postParams = $this->post();
if (!empty($postParams)) {
$friends_code = $this->post('friendscode', '');
$cellphone = $this->post('username', '');
$sms_code = $this->post('smscode', '');
if (empty($friends_code) || empty($cellphone) || empty($sms_code)) {
$err = "请填写注册邀请码、手机号码和短信验证码哦";
}else if (Common::isCellphoneNumber($cellphone) == false) {
$err = "手机号码格式错误,请填写正确的手机号码";
}else if (Common::isFriendsCode($friends_code) == false) {
$err = "邀请码格式错误,请填写邀请你的朋友的手机号码末 6 位,还可以加客服微信索取";
}else if (Common::existFriendsCode($friends_code) == false) {
$err = "邀请码不存在,请填写邀请你的朋友的手机号码末 6 位,或者加客服微信索取";
}
//TODO: 验证短信验证码是否正确
}
return $this->renderJson(compact('code', 'msg', 'err', 'data'));
} }
//用户登录 //用户登录

2
themes/tajian/views/site/login.php

@ -6,7 +6,7 @@
</div> </div>
<div class="mb-3 twocol"> <div class="mb-3 twocol">
<label for="text_input_sm" class="form-label">验证码</label> <label for="text_input_sm" class="form-label">验证码</label>
<input id="text_input_sm" name="friendscode" placeholder="输入收到的短信验证码"> <input id="text_input_sm" name="smscode" placeholder="输入收到的短信验证码">
<button disabled="disabled">发送验证码</button> <button disabled="disabled">发送验证码</button>
</div> </div>
<div class="avform_bt vercenter"> <div class="avform_bt vercenter">

2
themes/tajian/views/site/register.php

@ -14,7 +14,7 @@
</div> </div>
<div class="mb-3 twocol"> <div class="mb-3 twocol">
<label for="text_input_sm" class="form-label">验证码</label> <label for="text_input_sm" class="form-label">验证码</label>
<input id="text_input_sm" name="friendscode" placeholder="输入收到的短信验证码"> <input id="text_input_sm" name="smscode" placeholder="输入收到的短信验证码">
<button disabled="disabled" type="button">发送验证码</button> <button disabled="disabled" type="button">发送验证码</button>
</div> </div>
<div class="avform_bt vercenter"> <div class="avform_bt vercenter">

Loading…
Cancel
Save