<?php
public function store() {
function cleanInput($data) {
$data = ucwords(strtolower($data));
$data = trim($data); // remove whitespaces from both sides of a string
$data = stripslashes($data); // removes backslashes
$data = htmlspecialchars($data, ENT_QUOTES, 'UTF-8'); // converts some predefined characters to HTML entities (ex. & to &)
return $data;
}
// validations
$attributes = request()->validate([
'first_name' => ['required', 'min:3', 'max:255', 'regex:/^[a-zA-Z\s]*$/'], // only letters & spaces allowed
'last_name' => ['required', 'min:3', 'max:255', 'regex:/^[a-zA-Z\s]*$/'],
'city' => ['required', 'min:3', 'regex:/^[a-zA-Z\s]*$/'],
'state' => ['required', 'min:2', 'max:2', 'regex:/^[a-zA-Z\s]*$/'],
'zipcode' => ['required', 'min:5', 'max:5'],
'email' => ['required', 'min:3', 'max:255'],
'phone' => ['required', 'min:10'],
'cdla' => ['required', 'min:2'],
'experience' => ['required', 'min:2'],
'confirm' => ['required']
]);
// format the data
$attributes['first_name'] = cleanInput($attributes['first_name']);
$attributes['last_name'] = cleanInput($attributes['last_name']);
$attributes['city'] = cleanInput($attributes['city']);
$attributes['state'] = strtoupper(cleanInput($attributes['state']));
$attributes['email'] = strtolower(cleanInput($attributes['email']));
$attributes['cdla'] = cleanInput($attributes['cdla']);
$attributes['experience'] = cleanInput($attributes['experience']);
// update or create (to prevent duplicate entries)
Submission::updateOrCreate($attributes);
return redirect('/thank-you');
}