diff --git a/php/php-dog/getPwToken.php b/php/php-dog/getPwToken.php new file mode 100644 index 0000000..cd4406a --- /dev/null +++ b/php/php-dog/getPwToken.php @@ -0,0 +1,68 @@ +dbConnection(); + +$data = json_decode(file_get_contents("php://input")); + +$returnData = new CMsg(0); + +//IF REQUEST METHOD IS NOT EQUAL TO POST +if($_SERVER["REQUEST_METHOD"] != "POST") +{ + $returnData = new CMsg(0,404,'Page Not Found! REQUEST_METHOD'); + echo $returnData->jsonarray(); + return; +} + +// CHECKING EMPTY FIELDS +if( + !isset($data->pwtoken) + || empty(trim($data->pwtoken)) + ) +{ + $fields = ['fields' => ['pwtoken']]; + $returnData = new CMsg(0,422,'Please Fill in all Required Fields!',$fields); + echo $returnData->jsonarray(); + return; +} + +// IF THERE ARE NO EMPTY FIELDS THEN- +$pwtoken = trim($data->pwtoken); + +try +{ + $stmt = $conn->prepare("SELECT * FROM `dogs` WHERE `pwtoken`=?"); + $stmt->execute([$pwtoken]); + + if($stmt->rowCount()) + { + $row = $stmt->fetch(PDO::FETCH_ASSOC); + } + else + { + $returnData = new CMsg( + 0, + 406, + 'Passwordtoken: '. $pwtoken . ' not valid, nothing changed!' + ); + + } +} +catch(PDOException $e) +{ + $returnData = new CMsg(0,500,$e->getMessage()); +} + +echo $returnData->jsonarray(); +?> \ No newline at end of file diff --git a/php/php-dog/passwordReset.php b/php/php-dog/passwordReset.php new file mode 100644 index 0000000..c8a4cc5 --- /dev/null +++ b/php/php-dog/passwordReset.php @@ -0,0 +1,21 @@ +dbConnection(); + +$data = json_decode(file_get_contents("php://input")); + +var_dump($data); +var_dump($_POST); + +?> \ No newline at end of file diff --git a/src/components/PasswordReset.tsx b/src/components/PasswordReset.tsx index 447c84d..31dd110 100644 --- a/src/components/PasswordReset.tsx +++ b/src/components/PasswordReset.tsx @@ -1,7 +1,8 @@ -import React, { useState } from 'react' +import React, { useState } from 'react'; import toast, { Toaster } from 'react-hot-toast'; import { Link, useParams } from 'react-router-dom'; -import { passwordReset } from '../services/PhpApi'; +import { passwordReset, getPwToken } from '../services/PhpApi'; +import useSWR from 'swr'; import './InputForm.css'; export default function PasswordReset() @@ -14,6 +15,11 @@ export default function PasswordReset() password2:'' }); + const { data, error, isLoading } = useSWR({'ptoken': passwordToken}, getPwToken); + // data ist dogdata, logindata holt sich getProfilData.php aus $_SESSION + if (error) return (
failed to load
); + if (isLoading) return (
loading...
); + const onChangeInput = (e: React.FormEvent ) => { setFormData({ ...formData, diff --git a/src/services/PhpApi.ts b/src/services/PhpApi.ts index c55786a..5de2ecc 100644 --- a/src/services/PhpApi.ts +++ b/src/services/PhpApi.ts @@ -239,7 +239,15 @@ export const logOut = () => }) .catch((err) => console.error(err)); } - +/** + * + * @param form_data { + password1: string, + password2: string, + passwordToken: string + } + * @returns + */ export const passwordReset = async (form_data: FormData) => { @@ -256,6 +264,26 @@ export const passwordReset = async (form_data: } } +/** + * + * @param pwtoken object {'pwtoken': pwtoken } + * @returns + */ +export const getPwToken = async (pwtoken: any) => +{ + try + { + const {data} = await Axios.post('getPwToken.php', pwtoken); + console.log('Api getPwToken'); + console.log(data); + return data; + } + catch(err) + { + return {success:0, message:'getPwToken Server Error!'}; + } +} + export const wantNewPw = async ({email}:{email: string}) => { try