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

Creation du fichier Image.php + utilisation dans l'inscription + modifiction...

Creation du fichier Image.php + utilisation dans l'inscription + modifiction de la table r_joueur pour ajouter une colonne pour savoir si le joueur a un avatar
parent 6889de8a
Aucune branche associée trouvée
Aucune étiquette associée trouvée
2 requêtes de fusion!21Merge de Dev dans Master,!5Dev images
<?php
/**
* Created by PhpStorm.
* User: table
* Date: 05/05/16
* Time: 11:34
*/
/**
* Creer un objet image a partir du fichier envoyé par l'utilisateur.
* @param array $file
*
* @return une image ou false si erreur.
*/
function getImage($file, $max_hauteur, $max_largeur) {
if ($file['error'] > 0) {
return array(5, null);
}
if (!($taille = getimagesize($file['tmp_name']))) {
return array(6, null);
}
if ($taille[0] > $max_largeur OR $taille[1] > $max_hauteur) {
return array(7, null); // mais on pourait la réduire
}
if ($avatar = imagecreatefromjpeg($file['tmp_name'])) {
return array(0, $avatar);
} elseif ($avatar = imagecreatefrompng($file['tmp_name'])) {
return array(0, $avatar);
} else {
return array(6, null);
}
}
function saveImage($image, $path) {
imagejpeg($image, $path);
}
\ No newline at end of file
<?php
include(ROOT."/Image.php");
class RegisterController extends Controller { // classe de contrôleur pour l'inscription au site
public function displayValid() { // la fonction d'affichage de réussite
......@@ -21,28 +21,19 @@ class RegisterController extends Controller { // classe de contrôleur pour l'in
if($data['password'] == $data['password_bis']) {
$data['password'] = password_hash($data['password'], PASSWORD_DEFAULT);
$data['slug_joueur'] = self::slugify($_POST['pseudo']);
$data['avatar'] = 0;
$result = Register::check($data['slug_joueur'], $_POST['email']); // vérifie si le pseudo est libre et que l'adresse email n'est pas déjà utilisée
if ($result == 1) { // connexion valide
if(isset($_FILES['avatar'])) {
if ($_FILES['avatar']['error'] > 0) {
list($err, $avatar) = getImage($_FILES['avatar'], 512, 512);
if ($err == 0) {
saveImage($avatar, ROOT."/www/images/avatar/".$data['slug_joueur'].".jpg");
$data['avatar'] = 1;
} else {
session_start(); // on démarre une session pour avoir accès aux variables superglobales de session
$_SESSION["registerErrCode"] = 5; // on stocke le code d'erreur
$_SESSION["registerErrCode"] = $err; // on stocke le code d'erreur
header('Location:../inscription'); // on redirige vers la page de formulaire (il faut faire un retour dans le dossier parent pour que ça fonctionne)
die();
} else {
mkdir(ROOT . "/www/images/avatar/", $recursive = true);
if ($avatar = imagecreatefromjpeg($_FILES['avatar']['tmp_name'])) {
imagejpeg($avatar, ROOT . "/www/images/avatar/" . $data['slug_joueur'] . ".jpg");
} elseif ($avatar = imagecreatefrompng($_FILES['avatar']['tmp_name'])) {
imagejpeg($avatar, ROOT . "/www/images/avatar/" . $data['slug_joueur'] . ".jpg");
} else {
session_start(); // on démarre une session pour avoir accès aux variables superglobales de session
$_SESSION["registerErrCode"] = 6; // on stocke le code d'erreur
header('Location:../inscription'); // on redirige vers la page de formulaire (il faut faire un retour dans le dossier parent pour que ça fonctionne)
die();
}
}
}
$success = Register::writedb($data);// on réalise l'inscription à l'aide d'une méthode de la classe Register
......
......@@ -28,7 +28,7 @@ class Register extends Model { // classe de modèle pour l'inscription
public static function writedb($data) { // méthode réalisant l'inscription dans la BDD à partir d'un tableau de données
$db = Database::getInstance(); // on récupère la connexion à la BDD
$sql = "INSERT INTO R_joueur (slug, pseudo, password, nom, prenom, email, description) VALUES (:slug, :pseudo, :password, :nom, :prenom, :email, :description)";
$sql = "INSERT INTO R_joueur (slug, pseudo, password, nom, prenom, email, description, avatar) VALUES (:slug, :pseudo, :password, :nom, :prenom, :email, :description, :avatar)";
$req = $db->prepare($sql); // on prépare la requête
$result = $req->execute(array(":slug" => $data['slug_joueur'],
":pseudo" => $data['pseudo'],
......@@ -36,7 +36,8 @@ class Register extends Model { // classe de modèle pour l'inscription
":nom" => $data['nom'],
":prenom" => $data['prenom'],
":email" => $data['email'],
":description" => $data['description'])); // on remplace les variables dans la requête
":description" => $data['description'],
":avatar" => $data['avatar'])); // on remplace les variables dans la requête
return $result; // on aurait pu mettre deux return (un dans le if et un ici), mais bon...
}
......
......@@ -19,6 +19,8 @@
$errMsg = '<h3>Problème sur l\'avatar</h3>';
} elseif($errCode == 6) {
$errMsg = '<h3>Le fichier n\'est pas une image</h3>';
} elseif($errCode == 7) {
$errMsg = '<h3>L\'image est trop grande</h3>';
}
echo '<article class="msg-erreur">'.$errMsg.'</article>'; // on affiche le message
unset($_SESSION['registerErrCode']); // on retire la variable de session
......
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