Skip to content
Extraits de code Groupes Projets
Valider ad596ab3 rédigé par Romain 'Table' DROUIN's avatar Romain 'Table' DROUIN
Parcourir les fichiers

ajout de la page pour modifier un profile

parent ddf32f4b
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -7,4 +7,31 @@ class ProfilController extends Controller { // classe de contrôleur pour l'affi ...@@ -7,4 +7,31 @@ class ProfilController extends Controller { // classe de contrôleur pour l'affi
$this->view->profil = Profil::getFromSlug($slug); // on utilise le modèle pour aller chercher en BDD le profil qui nous intéresse $this->view->profil = Profil::getFromSlug($slug); // on utilise le modèle pour aller chercher en BDD le profil qui nous intéresse
$this->view->display(); // on affiche ce profil $this->view->display(); // on affiche ce profil
} }
public function edit() {
$slug = $this->route["params"]["slug"]; // on récupère le "slug", en gros tout le reste de l'URL qui n'a pas encore servi
// je précise que dans ce cas précis, le $slug ne contient que le pseudo du joueur sosu forme normalisée. Donc je pourrais renommer la variable $slug_joueur...
$this->view->profil = Profil::getFromSlug($slug); // on utilise le modèle pour aller chercher en BDD le profil qui nous intéresse
$this->view->display(); // on affiche ce profil
}
public function editverify() { // verifie si tout les variables sont correctes
if (!isset($_POST['nomModif']) || !isset($_POST['prenomModif']) || !isset($_POST['emailModif']) || !isset($_POST['descrModif'])) { // si l'une des données manque, erreur
//appeler une fonction d'erreur
echo "<h1>Erreur : variables absentes</h1>";
die();
}
$slug = $this->route["params"]["slug"];
$res = Profil::editProfil($slug, $_POST['nomModif'], $_POST['prenomModif'], $_POST['emailModif'], $_POST['descrModif']);
if($res) {
Print "<p>OK</p>";
header('Location:valid');
} else {
Print "<p>PAS OK</p>";
header('Location:echec');
}
}
} }
...@@ -48,7 +48,19 @@ class Router { // classe PHP permettant l'analyse de l'URL des requêtes ...@@ -48,7 +48,19 @@ class Router { // classe PHP permettant l'analyse de l'URL des requêtes
else if($parts[0] == "profil" && count($parts) == 2) { // consultation d'un profil : 2 morceaux (profil/pseudoDeLaPersonne) else if($parts[0] == "profil" && count($parts) == 2) { // consultation d'un profil : 2 morceaux (profil/pseudoDeLaPersonne)
$result["controller"] = "Profil"; $result["controller"] = "Profil";
$result["action"] = "display"; $result["action"] = "display";
$result["params"]["slug"] = $parts[1]; $result["params"]["slug"] = $parts[1];
}
else if($parts[0] == "profil" && count($parts) == 3 && $parts[2] == "edit") { // édition d'un profil : 3 morceaux (profil/pseudoDeLaPersonne/edit)
$result["controller"] = "Profil";
$result["action"] = "edit";
$result["params"]["slug"] = $parts[1];
}
else if($parts[0] == "profil" && count($parts) == 4 && $parts[2] == "edit" && $parts[3] == "verify") { // édition d'un profil : 3 morceaux (profil/pseudoDeLaPersonne/edit)
$result["controller"] = "Profil";
$result["action"] = "editverify";
$result["params"]["slug"] = $parts[1];
} }
/*** consultation des classements ***/ /*** consultation des classements ***/
......
...@@ -5,7 +5,7 @@ class Profil extends Model { // classe de modèle pour l'affichage de profils ...@@ -5,7 +5,7 @@ class Profil extends Model { // classe de modèle pour l'affichage de profils
public static function getFromSlug($slug_profil) { // méthode permettant de récupérer les informations relatives à un profil donné de la BDD public static function getFromSlug($slug_profil) { // méthode permettant de récupérer les informations relatives à un profil donné de la BDD
$db = Database::getInstance(); // on récupère la connexion à la BDD $db = Database::getInstance(); // on récupère la connexion à la BDD
$sql = "SELECT * FROM R_joueur WHERE slug = :slug"; // on définit la requête qu'on enverra $sql = "SELECT * FROM r_joueur WHERE slug = :slug"; // on définit la requête qu'on enverra
$req = $db->prepare($sql); // on prépare la requête (c'est là que la mémthode __call() est utile dans la classe Database d'ailleurs) $req = $db->prepare($sql); // on prépare la requête (c'est là que la mémthode __call() est utile dans la classe Database d'ailleurs)
$req->setFetchMode(PDO::FETCH_CLASS, "Profil"); // règle le type dans lequel on doit mettre les données (PDO va chercher les attributs de la classe de même nom que ses colonnes de BDD et mettre dedans les valeurs correspondantes) $req->setFetchMode(PDO::FETCH_CLASS, "Profil"); // règle le type dans lequel on doit mettre les données (PDO va chercher les attributs de la classe de même nom que ses colonnes de BDD et mettre dedans les valeurs correspondantes)
$req->execute(array(":slug" => $slug_profil)); // on remplace le "::slug" par sa valeur dans la requête $req->execute(array(":slug" => $slug_profil)); // on remplace le "::slug" par sa valeur dans la requête
...@@ -14,11 +14,23 @@ class Profil extends Model { // classe de modèle pour l'affichage de profils ...@@ -14,11 +14,23 @@ class Profil extends Model { // classe de modèle pour l'affichage de profils
public static function getList() { // méthode permettant de récupérer la liste des profils de la BDD public static function getList() { // méthode permettant de récupérer la liste des profils de la BDD
$db = Database::getInstance(); // idem à au-dessus $db = Database::getInstance(); // idem à au-dessus
$sql = "SELECT * FROM R_joueur"; $sql = "SELECT * FROM r_joueur";
$req = $db->query($sql); $req = $db->query($sql);
$req->setFetchMode(PDO::FETCH_CLASS, "Profil"); $req->setFetchMode(PDO::FETCH_CLASS, "Profil");
return $req->fetchAll(); return $req->fetchAll();
} }
public static function editProfil($slug_profil, $nom, $prenom, $email, $descr) {
$db = Database::getInstance();
$sql = "UPDATE r_joueur SET nom = :nom, prenom = :prenom, email = :email, decription = :descr WHERE slug LIKE :slug";
$req = $db->prepare($sql); // on prépare la requête
$res = $req->execute(array( ":nom" => $nom,
":prenom" => $prenom,
":email" => $email,
":descr" => $descr,
":slug" => $slug_profil));
return $res;
}
} }
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter