Open Thomas-Zabalo opened 9 months ago
{% extends 'index.html.twig' %}
{% block section %}
<form method="post" action="index.php">
<input type="hidden" id="idmembre" name="idmembre" value="{{ idmembre }}"/>
<input type="hidden" id="admin" name="admin" value="0"/>
<label>Nom</label><input type="text" name="Nom" required="required" /><br />
<label>Prénom</label><input type="text" name="Prenom" required="required" /><br />
<label>Adresse mail</label><input type="email" name="Mail" required="required" placeholder="jean.dupond@etu.iut-tlse3.fr"/><br />
<label>Identifiant IUT</label><input type="text" name="Identifiant_IUT" required="required" /><br />
<label>Mot de passe</label><input type="password" name="Mot_de_passe" required="required" /><br />
<input type="submit" name="valider_compte" value="Créer mon compte" />
</form>
{% endblock %}
if (isset($_POST["valider_compte"])) {
$memController->membreInscription($_POST);
}
function membreInscription($data) {
// Récupération des données
$nom = htmlspecialchars($_POST['Nom']);
$prenom = htmlspecialchars($_POST['Prenom']);
$email = htmlspecialchars($_POST['Mail']);
$identifiantIUT = htmlspecialchars($_POST['Identifiant_IUT']);
$motDePasse = htmlspecialchars($_POST['Mot_de_passe']);
// Validation du format de l'e-mail
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
// Invalid email format
$_SESSION['acces'] = "non";
$message = "Adresse email invalide.";
echo $this->twig->render('index.html.twig', array('acces' => $_SESSION['acces'], 'message' => $message));
return;
}
// Validation de la syntaxe
$emailParts = explode('@', $email);
$domain = end($emailParts);
if ($domain !== 'etu.iut-tlse3.fr') {
// Invalid email domain
$_SESSION['acces'] = "non";
$message = "L'adresse email doit appartenir au domaine etu.iut-tlse3.fr.";
echo $this->twig->render('index.html.twig', array('acces' => $_SESSION['acces'], 'message' => $message));
return;
}
// Création du nouvel utilisateur dans la base de donnée
$nouveauMembre = new Membre([
'Nom' => $nom,
'Prenom' => $prenom,
'Mail' => $email,
'Identifiant_IUT' => $identifiantIUT,
'Mot_de_passe' => $motDePasse,
]);
// Appel de la fonction ajoutcompte pour ajouter l'utilisateur
$result = $this->membreManager->ajoutcompte($nouveauMembre);
if ($result) {
// Si la création fonctionne
$_SESSION['acces'] = "oui";
$_SESSION['idmembre'] = $nouveauMembre->idUtilisateur();
$message = "Compte créé avec succès!";
} else {
// Si la création du compte ne fonctionne pas
$_SESSION['acces'] = "non";
$message = "Erreur lors de la création du compte.";
}
// Render de la page index.html
echo $this->twig->render('index.html.twig', array('acces' => $_SESSION['acces'], 'message' => $message));
}
public function ajoutcompte(Membre $membre)
{
$req = "INSERT INTO `SAE301_Utilisateur`(`Prenom`, `Nom`, `Mail`, `Identifiant_IUT`, `Mot_de_passe`) VALUES (?, ?, ?, ?, ?)";
$stmt = $this->_db->prepare($req);
$res = $stmt->execute(array($membre->prenom(), $membre->nom(), $membre->email(), $membre->idIut(), $membre->password()));
$errorInfo = $stmt->errorInfo();
if ($errorInfo[0] != 0) {
print_r($errorInfo);
}
return $res;
}
Formulaire permettant aux utilisateurs de s’inscrire
Vérification que l’email d’inscription est une adresse iut-tlse3.fr