mmicastres / sae301-Thomas-Zabalo

Creation d'une application web en utilisant la techno TWIG
https://zabalo.alwaysdata.net/
0 stars 1 forks source link

Inscription #2

Open Thomas-Zabalo opened 9 months ago

Thomas-Zabalo commented 9 months ago
Thomas-Zabalo commented 8 months ago

Twig

{% 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 %}

Index.php

if (isset($_POST["valider_compte"])) {
  $memController->membreInscription($_POST);
}

MembreController

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));
    }

MembreManager

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;
    }