登録
このコミットが含まれているのは:
コミット
edea04cb3d
|
@ -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');
|
新しいイシューから参照