このコミットが含まれているのは:
テクニカル諏訪子 2020-01-07 17:56:51 +09:00
コミット edea04cb3d
4個のファイルの変更76行の追加103行の削除

ファイルの表示

@ -228,66 +228,26 @@ class AuthController extends Controller {
}
}
public function register(Request $r) {
public function register (Request $r) {
$ip = $_SERVER['REMOTE_ADDR'];
// Anti-spam here.
if (!empty($r)) {
// Check username.
//// Exists?
$existUser = DB::table('users')
->select('id')
->where('username', $r->username)
->first();
if ($existUser != 0) {
return array('Username already exists.');
}
//// Empty?
if (empty($r->username)) {
return array('Username is empty.');
}
//// Valid?
if (preg_match("/^[a-zA-Z0-9]+$/", $r->username) == 0) {
return array('Please use English characters only.');
}
// Check password.
//// Empty?
if (empty($r->password)) {
return array('Password is empty.');
}
// Check email.
//// Exists?
$existEmail = DB::table('users')
->select('id')
->where('email', $r->email)
->first();
if ($existEmail != 0) {
return array('Email already exists');
}
//// Empty?
if (empty($r->email)) {
return array('Email is empty.');
}
//// Valid?
if (!filter_var($r->email, FILTER_VALIDATE_EMAIL)) {
return array('Email is invalid.');
}
$existUser = DB::table('users')->select('id')->where('username', $r->username)->first();
if ($existUser != 0) return array('err' => 'ユーザ名は既に登録しています。');
if (empty($r->username)) return array('err' => 'ユーザ名は空です。');
if (preg_match("/^[a-zA-Z0-9]+$/", $r->username) == 0) return array('err' => '英文字ばかりご入力下さい。');
if (empty($r->password)) return array('err' => 'パスワードは空です。');
if (empty($r->password_check)) return array('err' => 'パスワード(確認)は空です。');
if ($r->password != $r->password_check) return array('err' => 'パスワードとパスワード(確認)は違います。');
$existEmail = DB::table('users')->select('id')->where('email', $r->email)->first();
if ($existEmail != 0) return array('err' => 'メールアドレスは既に登録しています。');
if (empty($r->email)) return array('err' => 'メールアドレスは空です。');
if (!filter_var($r->email, FILTER_VALIDATE_EMAIL)) return array('err' => 'メールアドレスを正しくご入力下さい。');
$salt = dechex(mt_rand(0, 2147483647)) . dechex(mt_rand(0, 2147483647));
$passwd = hash('sha256', $r->password . $salt);
for ($round = 0; $round < 65536; $round++) {
$passwd = hash('sha256', $passwd . $salt);
}
for ($round = 0; $round < 65536; $round++) { $passwd = hash('sha256', $passwd . $salt); }
$addUser = DB::table('users')
->insertGetId([
@ -368,7 +328,7 @@ class AuthController extends Controller {
]);
setcookie('kero_token', $checkName->kero_token, time()+157788000, '/', $_SERVER['HTTP_HOST'], 0, 1);
return view('');
return $this->login($r);
//return array('1');
}

ファイルの表示

@ -71,14 +71,23 @@ class HomeController extends Controller {
return view('pages.site.login', compact(['res', 'menu', 'user', 'err']));
}
public function register () {
public function register (Request $r) {
if (isset($_COOKIE['kero_token'])) return redirect('');
$menu = $this->menu;
$cook = (isset($_COOKIE['kero_token']) ? $_COOKIE['kero_token'] : '');
$id = $this->objAuth->checkLegit($cook);
$user = $this->objUser->getUser2($id, $cook);
$res = array();
return view('pages.site.register', compact(['res', 'menu', 'user']));
$err = '';
if (isset($r->username) && isset($r->password) && isset($r->email) && isset($r->password_check)) {
$res = $this->objAuth->register($r);
if (isset($res['kero_token'])) return redirect('');
$err = $res['err'];
}
return view('pages.site.register', compact(['res', 'menu', 'user', 'err']));
}
public function notfound () {

ファイルの表示

@ -4,54 +4,57 @@
<div class="within">
<div class="bar">新規登録</div>
<div class="back" style="white-space: pre-wrap;">
<div class="row body">
<div class="col-sm-4"><b>ユーザー名 <span class="badge badge-danger">必須</span></b></div>
<div class="col"><input id="username-register" type="text" class="form-control" /></div>
</div>
<div class="row body">
<div class="col-sm-4"><b>パスワード <span class="badge badge-danger">必須</span></b></div>
<div class="col"><input id="password-register" type="password" class="form-control" /></div>
</div>
<div class="row body">
<div class="col-sm-4"><b>パスワード確認 <span class="badge badge-danger">必須</span></b></div>
<div class="col"><input id="confirm-register" type="password" class="form-control" /></div>
</div>
<div class="row body">
<div class="col-sm-4"><b>電子メール <span class="badge badge-danger">必須</span></b></div>
<div class="col"><input id="email-register" type="text" class="form-control" /></div>
</div>
<div class="row body">
<div class="col-sm-4"><b></b></div>
<div class="col"><select id="country-register" class="custom-select"><option value="ASEAN"> ASEAN</option></select></div>
</div>
<div class="row body">
<div class="col-sm-4"><b>性別</b></div>
<div class="col">
<fieldset class="form-group">
<div tabindex="-1" role="group">
<div id="gender" role="radiogroup" tabindex="-1" class="btn-group-toggle btn-group" variant="primary">
<label class="btn btn-secondary active">
<input id="gender__BV_option_0_" type="radio" name="gender" autocomplete="off" class="" value="0" />
<span>不明</span>
</label>
<label class="btn btn-secondary">
<input id="gender__BV_option_1_" type="radio" name="gender" autocomplete="off" class="" value="1" />
<span>男性</span>
</label>
<label class="btn btn-secondary">
<input id="gender__BV_option_2_" type="radio" name="gender" autocomplete="off" class="" value="2" />
<span>女性</span>
</label>
</div>
<div class="back">
<form method="POST" action="/register">
@csrf
<div class="row body">
<div class="col-sm-4"><b>ユーザー名 <span class="badge badge-danger">必須</span></b></div>
<div class="col"><input name="username" id="username-register" type="text" class="form-control" /></div>
</div>
<div class="row body">
<div class="col-sm-4"><b>パスワード <span class="badge badge-danger">必須</span></b></div>
<div class="col"><input name="password" id="password-register" type="password" class="form-control" /></div>
</div>
<div class="row body">
<div class="col-sm-4"><b>パスワード確認 <span class="badge badge-danger">必須</span></b></div>
<div class="col"><input name="password_check" id="confirm-register" type="password" class="form-control" /></div>
</div>
<div class="row body">
<div class="col-sm-4"><b>電子メール <span class="badge badge-danger">必須</span></b></div>
<div class="col"><input name="email" id="email-register" type="text" class="form-control" /></div>
</div>
<div class="row body">
<div class="col-sm-4"><b></b></div>
<div class="col"><select name="country" id="country-register" class="custom-select"><option value="ASEAN"> ASEAN</option></select></div>
</div>
<div class="row body">
<div class="col-sm-4"><b>性別</b></div>
<div class="col">
<fieldset class="form-group">
<div tabindex="-1" role="group">
<div id="gender" role="radiogroup" tabindex="-1" class="btn-group-toggle btn-group" variant="primary">
<label class="btn btn-secondary active">
<input id="gender0" name="gender" type="radio" name="gender" autocomplete="off" class="" value="0" />
<span>不明</span>
</label>
<label class="btn btn-secondary">
<input id="gender1" name="gender" type="radio" name="gender" autocomplete="off" class="" value="1" />
<span>男性</span>
</label>
<label class="btn btn-secondary">
<input id="gender2" name="gender" type="radio" name="gender" autocomplete="off" class="" value="2" />
<span>女性</span>
</label>
</div>
</div>
</fieldset>
</div>
</fieldset>
</div>
</div>
<div class="row body">
<div class="col-sm-4"></div>
<div class="col"><button type="button" class="btn btn-success btn-block">登録</button></div>
</div>
</div>
<div class="row body">
<div class="col-sm-4"></div>
<div class="col"><input name="submit" type="submit" class="btn btn-success btn-block" value="登録" /></div>
</div>
</form>
</div>
</div>

ファイルの表示

@ -5,4 +5,5 @@ Route::get('/blog/{slug}', 'HomeController@post');
Route::get('/login', 'HomeController@login');
Route::post('/login', 'HomeController@login');
Route::get('/register', 'HomeController@register');
Route::post('/register', 'HomeController@register');
Route::get('/{slug}', 'HomeController@page');