diff --git a/.env b/.env index 81c1f35..bd29908 100644 --- a/.env +++ b/.env @@ -2,7 +2,7 @@ APP_NAME=so-manager APP_ENV=local APP_KEY=base64:ejLwJbt2bEXY9emPUmsurG+X1hzkjTxQQvq2/FO14RY= APP_DEBUG=true -APP_URL=https://so-manager-dev.com/ +APP_URL=https://so-manager-dev.com/public/ APP_LOCALE=ja APP_FALLBACK_LOCALE=ja APP_FAKER_LOCALE=ja_JP diff --git a/app/CommonFunction.php b/app/CommonFunction.php index 2269930..2d17ca1 100644 --- a/app/CommonFunction.php +++ b/app/CommonFunction.php @@ -6,7 +6,7 @@ namespace App; class CommonFunction { // 7DSRチェックデジット計算 - public function calc7dsr($number) { + public static function calc7dsr($number) { $sum = 0; $weights = [2, 3, 4, 5, 6, 7]; $digits = str_split(strrev($number)); @@ -18,7 +18,7 @@ class CommonFunction } // 初期パスワード作成 - public function createPassword() { + public static function createPassword() { // 使用可能文字 (使用不可:1,l,L,i,I,z,Z,2,o,O,0) $chars = 'ABCDEFGHJKMNPQRSTUVWXYZabcdefghjkmnpqrstuvwxyz3456789'; $password = ''; @@ -31,11 +31,16 @@ class CommonFunction } // パスワードハッシュ化 - public function hashPassword($user_seq, $password) { + public static function hashPassword($user_seq, $password) { $hash = hash('sha256', $password) . $user_seq . 'SOMSALT'; for ($i = 0; $i < 25; $i++) { $hash = hash('sha256', $hash); } return $hash; } + + // パスワード照合 + public static function verifyPassword($user_seq, $inputPassword, $hashedPassword) { + return self::hashPassword($user_seq, $inputPassword) === $hashedPassword; + } } \ No newline at end of file diff --git a/app/Http/Controllers/InquiryConfirmController.php b/app/Http/Controllers/InquiryConfirmController.php index 064d8c1..46bec8d 100644 --- a/app/Http/Controllers/InquiryConfirmController.php +++ b/app/Http/Controllers/InquiryConfirmController.php @@ -50,10 +50,10 @@ class InquiryConfirmController extends Controller // バリデーションチェック $validator = Validator::make($request->all(), $rules, $message); if ($validator->fails()) { - return redirect('general.swo7_1') + return redirect('swo7_1') ->withErrors($validator) ->withInput() - ->with('before_subject', implode(',', $request->input('subject'))); + ->with('before_subject', implode(',', (array) $request->input('subject', []))); } // 画面返却値 @@ -75,7 +75,7 @@ class InquiryConfirmController extends Controller { // 前の画面に戻る if($request->input('back') == 'back'){ - return redirect('general.swo7_1') + return redirect('swo7_1') ->withInput($request->all()) ->with('before_subject', $request->input('subject')); } diff --git a/app/Http/Controllers/LoginController.php b/app/Http/Controllers/LoginController.php new file mode 100644 index 0000000..07224d5 --- /dev/null +++ b/app/Http/Controllers/LoginController.php @@ -0,0 +1,29 @@ +input('login_id'))->first(); + if (!$existingMember || !CommonFunction::verifyPassword($existingMember->user_seq, $request->input('password'), $existingMember->user_pass)) { + return redirect('swo8_1') + ->withErrors(['login' => 'ID/パスワードが間違っています']) + ->withInput(); + } + + // セッションにユーザ情報を保存してマイページトップへ遷移 + session(['user_id' => $existingMember->user_id]); + return redirect()->route('mypage'); + } +} \ No newline at end of file diff --git a/app/Http/Controllers/MemberRegistrationController.php b/app/Http/Controllers/MemberRegistrationController.php index 22dcd95..960172c 100644 --- a/app/Http/Controllers/MemberRegistrationController.php +++ b/app/Http/Controllers/MemberRegistrationController.php @@ -23,7 +23,7 @@ class MemberRegistrationController extends Controller ]; $validator = Validator::make($request->all(), $rules, $message); if ($validator->fails()) { - return redirect('general.swo2_1') + return redirect('swo2_1') ->withErrors($validator) ->withInput(); } @@ -33,7 +33,7 @@ class MemberRegistrationController extends Controller $existingMember = User::where('user_primemail', $email)->get(); foreach ($existingMember as $member) { if ($member->user_quit_flag != 1) { - return redirect('general.swo2_1') + return redirect('swo2_1') ->withErrors(['email' => '指定のメールアドレスは既に使用されています。']) ->withInput(); } @@ -56,7 +56,7 @@ class MemberRegistrationController extends Controller { // 署名付きURLの有効期限チェック if (!request()->hasValidSignature()) { - return redirect('general.error')->withErrors(['error' => '署名の有効期限が切れています']); + return redirect('error')->withErrors(['error' => '署名の有効期限が切れています']); } // 初回遷移(GETアクセス)時のリクエストパラメータチェック @@ -65,21 +65,21 @@ class MemberRegistrationController extends Controller // パラメータ存在チェック $encryptedEmail = request()->query('email'); if (!$encryptedEmail) { - return redirect('general.error')->withErrors(['error' => 'メールアドレスが指定されていません']); + return redirect('error')->withErrors(['error' => 'メールアドレスが指定されていません']); } // パラメータ整合性チェック try { $email = decrypt($encryptedEmail); } catch (\Exception $e) { - return redirect('general.error')->withErrors(['error' => 'メールアドレスの情報が不正です']); + return redirect('error')->withErrors(['error' => 'メールアドレスの情報が不正です']); } // 二重登録防止チェック $existingMember = User::where('user_primemail', $email)->get(); foreach ($existingMember as $member) { if ($member->user_quit_flag != 1) { - return redirect('general.error')->withErrors(['error' => '既に登録済みです']); + return redirect('error')->withErrors(['error' => '既に登録済みです']); } } @@ -96,7 +96,7 @@ class MemberRegistrationController extends Controller { // 登録完了後のブラウザバックによる二重登録対策 if (!session()->has('email')) { - return redirect('general.error')->withErrors(['error' => '不正なアクセスです']); + return redirect('error')->withErrors(['error' => '不正なアクセスです']); } // 入力チェック内容 (メールアドレスはセッションから取得するため対象外) @@ -119,7 +119,7 @@ class MemberRegistrationController extends Controller // バリデーションチェック $validator = Validator::make($request->all(), $rules, $message); if ($validator->fails()) { - return redirect('general.swo2_3') + return redirect('swo2_3') ->withErrors($validator) ->withInput(); } @@ -142,12 +142,12 @@ class MemberRegistrationController extends Controller { // 前の画面に戻る if($request->input('back') == 'back'){ - return redirect('general.swo2_3')->withInput(); + return redirect('swo2_3')->withInput(); } // 登録完了後のブラウザバックによる二重登録対策 if (!session()->has('email')) { - return redirect('general.error')->withErrors(['error' => '不正なアクセスです']); + return redirect('error')->withErrors(['error' => '不正なアクセスです']); } // 利用者連番、利用者ID(利用者連番+7DSRチェックデジット)、初期パスワード(ハッシュ化)を生成 @@ -165,8 +165,8 @@ class MemberRegistrationController extends Controller $user->tag_qr_flag = 1; $user->user_name = $request->input('name'); $user->user_phonetic = $request->input('kana'); - $user->user_homephone = $request->input('phone'); - $user->user_mobile = $request->input('mobile'); + $user->user_homephone = implode('-', $request->input('phone')); + $user->user_mobile = implode('-', $request->input('mobile')); $user->user_primemail = session('email'); $user->user_quit_flag = 0; $user->created_at = now(); diff --git a/app/Http/Controllers/ParkingSearchController.php b/app/Http/Controllers/ParkingSearchController.php new file mode 100644 index 0000000..b9f6ff5 --- /dev/null +++ b/app/Http/Controllers/ParkingSearchController.php @@ -0,0 +1,21 @@ +get(); + + // 検索結果返却 + return view('general.swo5_1',['form_data' => $result ]); + } +} \ No newline at end of file diff --git a/app/Http/Controllers/PasswordReminderController.php b/app/Http/Controllers/PasswordReminderController.php index 51a9ef6..29038da 100644 --- a/app/Http/Controllers/PasswordReminderController.php +++ b/app/Http/Controllers/PasswordReminderController.php @@ -30,7 +30,7 @@ class PasswordReminderController extends Controller // バリデーションチェック $validator = Validator::make($request->all(), $rules, $message); if ($validator->fails()) { - return redirect('general.swo8_2') + return redirect('swo8_2') ->withErrors($validator) ->withInput(); } @@ -44,7 +44,7 @@ class PasswordReminderController extends Controller $query->where('user_mobile', $phone)->orWhere('user_homephone', $phone); })->first(); if (!$existingMember) { - return redirect('general.swo8_2') + return redirect('swo8_2') ->withErrors(['nodata' => '該当する会員情報が見つかりませんでした']) ->withInput(); } diff --git a/resources/views/general/swo5_1.blade.php b/resources/views/general/swo5_1.blade.php index 9f67506..eb5f5ed 100644 --- a/resources/views/general/swo5_1.blade.php +++ b/resources/views/general/swo5_1.blade.php @@ -1,1072 +1,214 @@ - - - - - - 地図から駐輪場を探す|So-manager - - - - - - - - - - - - - - - - - - - - - - @include('partials.header') -
-
-
-
- - - - - - - - - -
-
-
-
- cycle -
-
-

- - - -
-
- -

-
-
- -
-
-
-
-
  • -

    - - -
    - -
    - - -

    -

    -
  • -
    -
    -
  • - -
  • -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + +@endsection \ No newline at end of file diff --git a/resources/views/general/swo8_1.blade.php b/resources/views/general/swo8_1.blade.php index bca209c..52e07ad 100644 --- a/resources/views/general/swo8_1.blade.php +++ b/resources/views/general/swo8_1.blade.php @@ -10,23 +10,21 @@
    -
    - -
    +
    - -
    -
    - +
    +
    - +
    +
    @if ($errors->any()) @foreach ($errors->all() as $error) {{ $error }} @endforeach @endif


    新規会員登録はこちら 〉
    パスワードを忘れた方はこちら 〉
    + @csrf
    diff --git a/routes/web.php b/routes/web.php index 53603af..bced782 100644 --- a/routes/web.php +++ b/routes/web.php @@ -9,6 +9,7 @@ use Illuminate\Support\Facades\Auth; use App\Models\User; use App\Http\Controllers\Controller; use App\Http\Controllers\InquiryConfirmController; +use App\Http\Controllers\LoginController; use App\Http\Controllers\MemberRegistrationController; use App\Http\Controllers\PasswordReminderController; use App\Http\Controllers\UserInfoController; @@ -17,6 +18,7 @@ use App\Http\Controllers\UserEditConfirmController; use App\Http\Controllers\UserWithdrawController; use App\Http\Controllers\RegularContractController; use App\Http\Controllers\RegularContractCreateController; +use App\Http\Controllers\ParkingSearchController; use App\Http\Controllers\ParkWaitlistController; use App\Http\Controllers\ReceiptController; @@ -26,8 +28,6 @@ Route::get('/swo2_1', function () { return view('general.swo2_1'); })->name('swo Route::get('/swo3_1', function () { return view('general.swo3_1'); })->name('swo3_1'); Route::get('/swo3_2', function () { return view('general.swo3_2'); })->name('swo3_2'); Route::get('/swo3_3', function () { return view('general.swo3_3'); })->name('swo3_3'); -Route::get('/swo4_1', function () { return view('general.swo4_1'); })->name('swo4_1'); -Route::get('/swo5_1', function () { return view('general.swo5_1'); })->name('swo5_1'); Route::get('/swo6_1', function () { return view('general.swo6_1'); })->name('swo6_1'); Route::get('/swo8_1', function () { return view('general.swo8_1'); })->name('swo8_1'); Route::get('/swo8_2', function () { return view('general.swo8_2'); })->name('swo8_2'); @@ -47,20 +47,27 @@ Route::get('/swo16_1', function () { return view('general.swo16_1'); })->name('s Route::get('/swo17_1', function () { return view('general.swo17_1'); })->name('swo17_1'); Route::get('/error', function () { return view('general.error'); })->name('error'); -// コントローラー経由 +// コントローラー経由 Route::post('/swo2_2', [MemberRegistrationController::class, 'sendMail'])->name('swo2_2'); Route::get('/swo2_3', [MemberRegistrationController::class, 'index'])->name('swo2_3')->middleware('signed'); Route::post('/swo2_4', [MemberRegistrationController::class, 'confirm'])->name('swo2_4'); Route::post('/swo2_5', [MemberRegistrationController::class, 'complete'])->name('swo2_5'); +Route::get('/swo4_1', [LoginController::class, 'login'])->name('swo4_1'); +Route::get('/swo5_1', [ParkingSearchController::class, 'index'])->name('swo5_1'); Route::get('/swo7_1', [InquiryConfirmController::class, 'index'])->name('swo7_1'); Route::post('/swo7_2',[InquiryConfirmController::class, 'confirm'])->name('swo7_2'); Route::post('/swo7_3',[InquiryConfirmController::class, 'complete'])->name('swo7_3'); Route::post('/swo8_3', [PasswordReminderController::class, 'sendMail'])->name('swo8_3'); -//マイページ(仮) +// ログイン画面へのリダイレクト +Route::get('/login', function () { + return redirect()->route('swo8_1'); +})->name('login'); + +// マイページ画面へのリダイレクト Route::get('/mypage', function () { return 'マイページ(仮)'; -})->name('mypage'); +})->name('mypage'); // ユーザー情報確認画面 Route::get('/user/info', [UserInfoController::class, 'show']) @@ -137,17 +144,6 @@ Route::get('regular_contract/history', [RegularContractController::class, 'showH Route::get('park_waitlist', [ParkWaitlistController::class, 'index']) ->name('park_waitlist.index'); -// ログイン画面(仮) -Route::get('/login', function () { - return ' -
    - - - -
    - '; -})->name('login'); - Route::post('/login', function (Request $request) { $user_id = $request->input('user_id'); Session::put('user_id', $user_id); // 入力されたIDをそのまま保存