I'd been testing validation for php for some reason I'm getting Undefined index
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
require ("classes/Database.php");
require ("classes/Shop.php");
session_start();
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
$uid = $_SESSION['userId'];
$post = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING);
$address = $businessName = $shopName = $streetNumber = $country = $streetName = $town = $postcode = $region = $phone = $business = $sun = $mon = $tue = $wed = $thu = $fri = $sat = $start = $end = $image = "";
$shopName = $post['shopName'];
$streetNumber = $post['streetNumber'];
$streetName = $post['streetName'];
$town = $post['town'];
$postcode = $post['postcode'];
$phone = $post['phone'];
$business = $post['business'];
$region = $post['region'];
$country = $post['country'];
$filename = 'tmp_profile.jpg';
$filepath = 'uploads/images/' . 'tmp_profile.jpg';
$filetype = 'jpg';
$errors = array();
$fields = array(
'shopNames' => array(
'validator' => 'shopNames',
'message' => 'Please fill in your business name'
),
'addresses' => array(
'validator' => 'addresses',
'message' => 'Please fill in your business address'
),
'streetNumbers' => array(
'validator' => 'streetNumbers',
'message' => 'Please fill in your street number'
),
'streetNames' => array(
'validator' => 'streetNames',
'message' => 'Please fill in your street name'
),
'towns' => array(
'validator' => 'towns',
'message' => 'Please fill in your city/town name'
),
'phones' => array(
'validator' => 'phones',
'message' => 'Please fill in your phone number'
),
'businesses' => array(
'validator' => 'businesses',
'message' => 'Please fill in your business type'
)
);
foreach($post as $key => $value)
{
if(isset($fields[$key]))
{
if(!Validation::{$fields[$key]['validator']}($value))
{
$errors[] = ['name' => $key, 'error' => $fields[$key]['message']];
}
}
}
if(empty($errors))
{
$db = new Database;
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$success = ["message" => "Your shop has been updated"];
try
{
$querys = ('INSERT INTO shopAddress (userId,businessName,street, streetNumber, town, region, country ,postcode, business,phone)
VALUES (:uid,:shopName,:streetName, :streetNumber, :town, :region, :country,:postcode, :business,:phone)');
$stmts = $db->prepare($querys);
$stmts->bindValue(':shopName', $shopName);
$stmts->bindValue(':streetName', $streetName);
$stmts->bindValue(':streetNumber', $streetNumber);
$stmts->bindValue(':town', $town);
$stmts->bindValue(':region', $region);
$stmts->bindValue(':postcode', $postcode);
$stmts->bindValue(':country', $country);
$stmts->bindValue(':business', $business);
$stmts->bindValue(':phone', $phone);
$stmts->bindValue(':uid', $uid);
$stmts->execute();
}
catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
}
header('Content-Type: application/json');
if (empty($errors))
{
echo json_encode($success);
}
else
{
echo json_encode(["errors" => $errors]);
}
}
Errors
<br />
<b>Notice</b>: Undefined index: streetNumber in <b>/home/isharie70/public_html/processShop.php</b> on line <b>21</b><br />
<br />
<b>Notice</b>: Undefined index: streetName in <b>/home/isharie70/public_html/processShop.php</b> on line <b>22</b><br />
<br />
<b>Notice</b>: Undefined index: town in <b>/home/isharie70/public_html/processShop.php</b> on line <b>23</b><br />
<br />
<b>Notice</b>: Undefined index: postcode in <b>/home/isharie70/public_html/processShop.php</b> on line <b>24</b><br />
<br />
<b>Notice</b>: Undefined index: region in <b>/home/isharie70/public_html/processShop.php</b> on line <b>27</b><br />
<br />
<b>Notice</b>: Undefined index: country in <b>/home/isharie70/public_html/processShop.php</b> on line <b>28</b><br />