Olá! Eu estou desenvolvendo um web app com xampp, php e js. No momento atual acabei de finalizar o back do crud de login... O problema é que eu quero fazer com tudo puro, sem libs adicionais ou framwork. Além disso, quero conectar sem abrir tag php no index e nos scripts Pensei que poderia fazer com um ajax(com JS puro), mas não sei se estou tomando o caminho certo, ou o que falta ainda...
Segue o meu controller:
<?php
namespace App\controllers;
use App\model\User_model;
use PDO;
use App\config\database\ConnectionCreator;
require __DIR__ . '/../../vendor/autoload.php';
class User
{
private User_model $user_model;
function __construct(PDO $connection)
{
$this->user_model = new User_model($connection);
}
function createUser(string $name, string $username, string $email, string $password)
{
if($this->checkUsernameExists($username)){
if(empty($this->getEmail($username))){
$pass_hash = password_hash($password, PASSWORD_DEFAULT);
$created = $this->user_model->createUser($name, $username, $email, $pass_hash);
if($created){
return 'Usuário criado com sucesso';
}
} else {
return 'Este e-mail já existe';
}
}
return 'Este usuário já existe';
}
function getEmail(string $username)
{
return $this->user_model->getEmail($username);
}
function checkUsernameExists(string $username): bool
{
return $this->user_model->checkUsernameExists($username);
}
private function getAllUsers(): array
{
return $this->user_model->getAllUsers();
}
private function checkPassword(string $username, string $pass): bool
{
$password_hash = ($this->user_model->getPassword($username))[0]['senha']?? 0;
return password_verify($pass, $password_hash);
}
function checkLogin()
{
$username = $_POST['username'];
$password = $_POST['password'];
if ($this->checkPassword($username, $password)) {
// Login bem-sucedido
echo 'Login bem-sucedido';
} else {
// Credenciais inválidas
echo 'Credenciais inválidas';
}
//return $this->checkPassword($username, $pass);
}
function updatePassword(string $username, string $old_pass, string $npass): bool
{
if($this->checkLogin($username, $old_pass)) {
$user = $this->user_model->getId($username);
$user_id = $user[0]['id'];
$npass_hash = password_hash($npass, PASSWORD_DEFAULT);
return $this->user_model->updatePassword($user_id, $npass_hash);
}
return false;
}
function deleteUser(string $username): bool
{
return $this->user_model->deleteUser($username);
}
}
Vou mandar o model no outro post...