REDROOM
PHP 8.3.30
Path:
Logout
Edit File
Size: 4.65 KB
Close
/home/getspomw/royalsquad.us/app/Http/Controllers/ContactController.php
Text
Base64
<?php namespace App\Http\Controllers; use App\Mail\AppointmentMail; use App\Models\Appointment; use App\Models\Contact; use Exception; use Illuminate\Http\Request; use Illuminate\Support\Facades\Log; use Illuminate\Support\Facades\Mail; use Illuminate\Support\Facades\Session; use Illuminate\Support\Facades\Validator; class ContactController extends Controller { public function contacts(Request $request) { $request->validate([ 'name' => 'required', 'email' => 'required|email', 'phone' => 'required|min:10', 'comments' => 'required', ]); $contact = new Contact(); $contact->name = $request->name; $contact->email = $request->email; $contact->phone = $request->phone; $contact->comments = $request->comments; $contact->save(); $data = [ 'name' => $request->name, 'email' => $request->email, 'phone' => $request->phone, 'comments' => $request->comments, ]; Mail::send('emails.contact', $data, function ($message) use ($data) { $message->to(env('MAIL_FROM_ADDRESS')) ->subject('New Contact Form Submission'); }); return redirect()->back()->with('success', 'Your message has been sent successfully'); } public function sendOtp(Request $request) { $request->validate(['email' => 'required|email']); $otp = rand(100000, 999999); Session::put('otp', $otp); Session::put('otp_email', $request->email); try { $data = [ 'otp' => $otp, 'email' => $request->email, ]; Mail::send('emails.email_otp', $data, function ($message) use ($request) { $message->to($request->email) ->subject('🔐 Your OTP for Appointment Verification'); }); return response()->json(['status' => 'success']); } catch (Exception $e) { return response()->json(['status' => 'error', 'message' => $e->getMessage()]); } } public function verifyOtp(Request $request) { $request->validate([ 'email' => 'required|email', 'otp' => 'required', ]); if ( Session::get('otp') == $request->otp && Session::get('otp_email') == $request->email ) { return response()->json(['status' => 'success']); } return response()->json(['status' => 'error']); } public function appointments(Request $request) { $validator = Validator::make($request->all(), [ 'name' => 'required', 'email' => 'required|email', 'dept' => 'required', 'number' => 'required', 'subject' => 'required', 'service' => 'required', 'otp' => 'required', ]); if ($validator->fails()) { return response()->json([ 'status' => 'validation_error', 'errors' => $validator->errors(), ], 422); } if ( Session::get('otp') != $request->otp || Session::get('otp_email') != $request->email ) { return response()->json([ 'status' => 'otp_error', 'message' => 'Invalid or expired OTP.', ], 422); } // Passed OTP check $contact = new Appointment(); $contact->name = $request->name; $contact->email = $request->email; $contact->number = $request->country_code . $request->number; $contact->dept = $request->dept; $contact->subject = $request->subject; $contact->service = $request->service; $contact->save(); // Clear OTP session after use Session::forget('otp'); Session::forget('otp_email'); $mailData = [ 'name' => $request->name, 'email' => $request->email, 'number' => $request->number, 'dept' => $request->dept, 'subject' => $request->subject, 'service' => $request->service, ]; try { // Mail::to(env('MAIL_FROM_ADDRESS'))->send(new AppointmentMail($mailData)); Mail::to($request->email)->send(new AppointmentMail($mailData)); return response()->json([ 'status' => 'success', 'message' => 'Appointment booked.', ]); } catch (Exception $e) { Log::error('Final mail failed: ' . $e->getMessage()); return redirect()->back()->with('error', 'Saved, but email failed.'); } } }
Save
Close
Exit & Reset
Text mode: syntax highlighting auto-detects file type.
Directory Contents
Dirs: 0 × Files: 12
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
AccessControlController.php
2.85 KB
lrw-rw-rw-
2025-09-18 05:50:45
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
AdminController.php
315 B
lrw-rw-rw-
2025-09-17 06:52:53
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
BlogCategoryController.php
2.74 KB
lrw-rw-rw-
2025-09-17 06:52:53
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
BlogController.php
6.83 KB
lrw-rw-rw-
2025-09-17 06:52:53
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ContactController.php
4.65 KB
lrw-rw-rw-
2026-02-09 06:01:39
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Controller.php
77 B
lrw-rw-rw-
2025-09-17 06:52:53
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
CustomPasswordResetController.php
2.80 KB
lrw-rw-rw-
2025-09-18 05:51:38
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
error_log
616 B
lrw-r--r--
2026-04-19 15:59:24
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
LoginController.php
3.58 KB
lrw-rw-rw-
2025-09-18 05:56:23
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
RegisterController.php
1.48 KB
lrw-rw-rw-
2025-09-17 06:52:53
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
SettingController.php
8.60 KB
lrw-rw-rw-
2025-09-18 05:56:47
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ViewController.php
8.22 KB
lrw-rw-rw-
2026-02-09 07:03:26
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).