diff --git a/backend/api/cors.php b/backend/api/cors.php new file mode 100644 index 0000000..6434d81 --- /dev/null +++ b/backend/api/cors.php @@ -0,0 +1,20 @@ + "fail", + 'data' => [ + + ], +]; + +if ($username && $password) { + $result = Access::login($username, $password); + if ($result && $result->num_rows > 0) { + $answer['status'] = "success"; + $answer['data'] = [ + 'username' => $username, + ]; + http_response_code(200); + echo json_encode($answer); + } else { + http_response_code(401); + $answer['data']['title'] = 'Wrong username or password'; + } +} else { + $answer['data']['title'] = 'Please insert username and password'; + http_response_code(400); + echo json_encode($answer); +} +exit; + + + diff --git a/backend/api/search.php b/backend/api/search.php index db602b5..539664c 100644 --- a/backend/api/search.php +++ b/backend/api/search.php @@ -2,21 +2,28 @@ use services\Search; -header("Access-Control-Allow-Origin: http://localhost:3000"); +session_start(); + +header("Access-Control-Allow-Origin: http://localhost:5173"); header("Access-Control-Allow-Methods: GET"); header("Access-Control-Allow-Headers: Content-Type"); header("Content-Type: application/json"); require_once __DIR__ . '/../services/Search.php'; + + // Get the search query parameter $username = isset($_GET['username']) ? $_GET['username'] : ''; +$_SESSION['username'] = $username; + + + $result = Search::searchByUsername($username); if ($result->num_rows == 0) { echo "Utente " . $username . " non trovato"; - return; + exit; } else { echo json_encode(array_values($result->fetch_assoc())); - } ?> \ No newline at end of file diff --git a/backend/services/Access.php b/backend/services/Access.php index 2fd8774..4cfedbd 100644 --- a/backend/services/Access.php +++ b/backend/services/Access.php @@ -1,7 +1,7 @@ (null) + + const handleSubmit = async (e: React.FormEvent) => { + e.preventDefault() + setLoading(true); + setError(null); + try { + const requestOptions = { + method: 'POST', + headers: {'Content-Type': 'application/json'}, + body: JSON.stringify({username, password}), + credentials: 'include', + }; + const response = await fetch('http://localhost:8000/api/login.php', requestOptions) + const data = await response.json(); + console.log(data) + + if (!response.ok || data.status === 'fail') { + throw new Error(data.data?.message || "Login failed"); + } + console.log("Logged in") + } catch (err: any) { + setError(err.message) + } finally { + setLoading(false) + } + + + } + + return ( <>