I'm new to coding and I'm trying to make a reset password form. User would fill up the form with their username, which would connect to clients.json file, find the user and send them new email which would be generated. Somehow it doesn't work and I can't figure out why. I'm sending the code so please let me know if you spot anything or if you have any tips on how to do it better. thanks!
<?php require_once 'top.php';
session_start();
$sUser = file_get_contents('../data/clients.json');
$jUser = json_decode($sUser);
$sForgotUserName = $_POST['txtForgotUserName'];
$sGeneratedPassword = rand(100000, 999999);
$jUser->data->{$sForgotUserName}->password = $sGeneratedPassword;
$sEmail = $jData->data->$sForgotUserName->email;
$sData = json_encode($jData);
if ($sData == null) {
sendResponse(0, __LINE__);
}
file_put_contents('../data/clients.json', $sData);
$from = "PETRABANK";
$to = $sEmail;
$subject = "Your New Password";
$message = "Please use this password and then change it";
$headers = "From:" . $from;
mail($to, $subject, $message, $headers);
echo "The email message was sent.";
?>
<form id="frmForgotPassword" action="forgotpassword.php" method="POST">
<input name="txtForgotUserName" id="txtUserName" type="text" placeholder="Your username">
<button>Send new password</button>
</form>
<?php require_once 'bottom.php'?>
clients.json file
{
"data": {
"daniel": {
"name": "dani",
"lastName": "sss",
"email": "s@hotmail.com",
"password": "12345"
}
}
}