Files

123 lines
2.4 KiB
PHP

<?php
require_once __DIR__ . '/auth.php';
require_once __DIR__ . '/../database.php';
header('Content-Type: application/json; charset=utf-8');
try {
$data = json_decode(
file_get_contents('php://input'),
true
);
$nom = trim($data['nom'] ?? '');
$pass = $data['pass'] ?? '';
/*
* =====================================================
* VERIFICATION NOM UTILISATEUR
* =====================================================
*/
if ($nom === '') {
throw new Exception(
'Le nom utilisateur est obligatoire.'
);
}
/*
* =====================================================
* VERIFICATION MOT DE PASSE
* =====================================================
*/
if (strlen($pass) < 4) {
throw new Exception(
'Le mot de passe doit contenir au moins 4 caractères.'
);
}
/*
* =====================================================
* HASH DU MOT DE PASSE
* =====================================================
*/
$hash = password_hash(
$pass,
PASSWORD_DEFAULT
);
/*
* =====================================================
* CREATION UTILISATEUR
* =====================================================
*/
$sql = "
INSERT INTO login
(nom, pass)
VALUES
(:nom, :pass)
";
$stmt = $pdo->prepare($sql);
$stmt->execute([
':nom' => $nom,
':pass' => $hash
]);
/*
* =====================================================
* REPONSE
* =====================================================
*/
echo json_encode([
'success' => true,
'message' => 'Utilisateur créé.'
], JSON_UNESCAPED_UNICODE);
} catch (PDOException $e) {
http_response_code(400);
/*
* Nom utilisateur déjà existant
*/
if (($e->errorInfo[1] ?? null) == 1062) {
$message =
'Ce nom utilisateur existe déjà.';
} else {
$message =
'Erreur lors de la création.';
}
echo json_encode([
'success' => false,
'message' => $message
], JSON_UNESCAPED_UNICODE);
} catch (Exception $e) {
http_response_code(400);
echo json_encode([
'success' => false,
'message' => $e->getMessage()
], JSON_UNESCAPED_UNICODE);
}