#3 Créer un espace membre | Edition du profil + Avatar

Statut
N'est pas ouverte pour d'autres réponses.

WhiiTe'

Administateur
Ancien staff
Inscription
22 Octobre 2011
Messages
14 706
Réactions
8 492
Points
32 425
Salut :RG:,

On se retrouve pour la troisième partie de ma série sur "comment créer un espace membre".
Si vous n'avez pas suivi la première et la deuxième partie je vous conseille d'aller les voir, sauf si vous avez déjà le code, en tout cas je reprendrai mon code. (partie 1) (parti 2)

Je vais vous apprendre à faire un système d'avatar avec l'édition du profil.

J'utiliserai le logiciel Sublime Text 3 !

https://reality-gaming.fr/attachments/djamel2-png.61408/

Nous allons créer une nouvelle colonne dans la table membre (dans PHPMyAdmin), appelez la 'avatar' et mettez la en varchar de 255, vous pouvez bien évidemment la rajouter sur votre table.
Ensuite nous allons créer un fichier 'edition.php' dans le dossier de notre site.

Nous allons faire le formulaire pour mettre un avatar, changé son mot de passe, son pseudo ou son mail.

HTML:
                <form method="POST" enctype="multipart/form-data">

                        <label>Pseudo actuel :</label>
                        <input type="text" value="<?php echo $user['pseudo']; ?>" disabled><br /><br />
                         <label>Entrez votre nouveau pseudo :</label>
                        <input type="text" name="newpseudo" placeholder="..."><br /><br />
    <hr />       
                <u><h2>Email :</h2></u>
                        <label for="mail1">Votre mail actuel :</label>
                        <input type="text" value="<?php echo $user['mail']; ?>" disabled><br /><br />

                        <label for="mail1">Entrez votre nouvel email :</label>
                        <input type="text" name="newmail" placeholder="..."><br /><br />
    <hr />
                <u><h2>Mot de passe :</h2></u>
                        <label>Entrez votre nouveau mot de passe :</label>
                        <input type="password" name="newmdp1" placeholder="..."><br /><br />
                        <label>Confirmation du nouveau mot de passe :</label>
                        <input type="password" name="newmdp2" placeholder="..." /><br /><br />
                         <label>Avatar :</label>
                        <input type="file" name="avatar"><br />
                        <br />
                        <center><input type="submit" name="submit" value="Mettre à jour mon profil !" /></center>
                </form>

Si vous recréé un formulaire, n'oubliez surtout pas de rajouter enctype="multipart/form-data" pour l'avatar.
Comme d'habitude vous pouvez changé le formulaire mais le nom (name) des input doivent être les mêmes.

Maintenant ouvrez les balises PHP tout en haut de votre code, nous allons vérifié si le membre est connecté pour pouvoir accédé à la page, nous démarrons toutes les variables de session et nous lions la base de donnée.

PHP:
session_start();
$bdd = new PDO('mysql:host=127.0.0.1;dbname=espace_membre;charset=utf8', 'root', '');

if(isset($_SESSION['id']))
{
    $requser = $bdd->prepare("SELECT * FROM membres WHERE id = ?");
    $requser->execute(array($_SESSION['id']));
    $user = $requser->fetch();

#NOUS METTRONS LE CODE SUIVANT ICI
#FERMEZ CETTE CONDITIONS TOUT EN BAS DU CODE

}

Regardez ce screen si vous n'avez pas compris les commentaires, :ok:
La nous cherchons la liste des membres dans notre base de donnée pour pouvoir les comparer à ce que l'utilisateur a rentré.

Donc nous allons faire la requête pour modifier le pseudo si l'utilisateur a rentré un nouveau pseudo, donc :

PHP:
   # PSEUDO
if(!empty($_POST['newpseudo']) AND $_POST['newpseudo'] != $user['pseudo'])
    {
        $newpseudo = htmlspecialchars(trim($_POST['newpseudo']));
        $insertpseudo = $bdd->prepare("UPDATE membres SET pseudo = ? WHERE id = ?");
        $insertpseudo->execute(array($newpseudo, $_SESSION['id']));
        header('Location: profil.php?id='.$_SESSION['id']);
    }

Premièrement nous vérifions si le pseudo rentré n'est pas vide, puis nous vérifions si le pseudo rentré n'est pas la même que le pseudo actuel.
Ensuite nous sécurisons avec un "htmlspecialchars" et nous enlevons les espaces avec la fonction "trim".
Si vous ne comprenez pas le SQL, je vous invite à aller sur OpenClassrooms.
Puis si tout est bon le membre est redirigé vers son profil.

Nous allons faire la même chose pour l'email du membre, en rajoutant une fonction qui vérifie si le mail est valide.

Code:
  # MAIL
  if(!empty($_POST['newmail']) AND $_POST['newmail'] != $user['mail'])
    {
        if(filter_var($_POST['newmail'], FILTER_VALIDATE_EMAIL))
        {
            $newmail = htmlspecialchars(trim($_POST['newmail']));
            $insertmail = $bdd->prepare("UPDATE membres SET mail = ? WHERE id = ?");
            $insertmail->execute(array($newmail, $_SESSION['id']));
            header('Location: profil.php?id='.$_SESSION['id']);
        }
    }

La troisième ligne vérifie si le mail est valide, comme je vous l'ai dis.
Le membre est redirigé vers son profil.

Maintenant nous allons faire pour le mot de passe, c'est plutôt basique donc je ne vais vous expliqué en détail ce qui va arrivé.

PHP:
    # MOT DE PASSE

    if(!empty($_POST['newmdp1']) AND !empty($_POST['newmdp2']))
    {
        $mdp1 = sha1($_POST['newmdp1']);
        $mdp2 = sha1($_POST['newmdp2']);

        if($mdp1 == $mdp2)
        {
            $insertmdp = $bdd->prepare("UPDATE membres SET motdepasse = ? WHERE id = ?");
            $insertmdp->execute(array($mdp1, $_SESSION['id']));
            header('Location: profil.php?id='.$_SESSION['id']);
        }
        else
        {
            $erreur = "Vos deux mot de passe ne correspondent pas !";
        }
    }

Nous vérifions si les mots de passe sont rentrés, nous cryptons les mots de passe en sha1 et puis nous vérifions si les deux mots de passe correspondent et puis nous modifions le mot de passe, le membre est ensuite redirigé vers son profil.

https://reality-gaming.fr/attachments/djamel2-png.61408/

Nous avons fait le code pour le pseudo, le mail et le mot de passe, nous allons donc faire le système d'avatar, le code est assez complexe si vous n'êtes pas à l'aise avec PHP, mais j'essayerai de détailler au maximum.

Je vais pas décomposer le code cette fois-ci.

Code:
    if(isset($_FILES['avatar']) AND !empty($_FILES['avatar']['name']))

    {
        $tailleMax = 2097152;
        $extensionsValides = array('jpg', 'jpeg', 'gif', 'png');
        if($_FILES['avatar']['size'] <= $tailleMax)
        {
            $extensionUpload = strtolower(substr(strrchr($_FILES['avatar']['name'], '.'), 1));
            if(in_array($extensionUpload, $extensionsValides))
            {
                $chemin = "membres/avatars/".$_SESSION['id'].".".$extensionUpload;
                $resultat = move_uploaded_file($_FILES['avatar']['tmp_name'], $chemin);
                if($resultat)
                {
                    $updateavatar = $bdd->prepare('UPDATE membres SET avatar = :avatar WHERE id = :id');
                    $updateavatar->execute(array(
                        'avatar' => $_SESSION['id'].".".$extensionUpload,
                        'id' => $_SESSION['id']
                        ));
                    header('Location: profil.php?id='.$_SESSION['id']);
                }
                else
                {
                    $erreur = "Erreur durant l'importation de votre photo de profil";
                }
            }
            else
            {
                $erreur = "Votre photo de profil doit être au format jpg, jpeg, gif ou png";
            }
        }
        else
        {
            $erreur = "Votre photo de profil ne doit pas dépasser 2Mo";
        }
    }

Donc, nous vérifions si l'utilisateur a choisi un avatar, ensuite nous déclarons la taille maximum pour les avatars, 2097152 signifie environ 2Mo, ensuite nous faisons un array autrement dis un tableau avec les extensions obligatoires, c'est moi qui les ai choisi, vus pouvez bien évidemment enlever ou en rajouter, ensuite nous vérifions si l'image n'est pas supérieur à la taille maximum.
Je sais pas vraiment comment vous expliquer la septième ligne de ce bout de code, en gros nous vérifions si nous avons bien ce que nous avons défini dans l'array, nous définissons le chemin de l'image, donc à l'endroit ou elle sera uploader.
Nous faisons ensuite la requête SQL pour modifier la case avatar dans
phpMyAdmin

Les dernière lignes sont
les messages d'erreurs, pour les afficher mettez ce bout de code en dessous de votre formulaire.

PHP:
<?php if(isset($erreur)) { echo $erreur; } ?>

https://reality-gaming.fr/attachments/djamel2-png.61408/

Et voilà :RG: c'est la fin de cette troisième partie de ma série de tutoriels en PHP.
Si vous avez une question, une remarque ou autre n'hésitez pas à me demander en message privée. :ok:

:tchuss:
 

Kilian'

Développeur HTML5/CSS3 - PHP
Premium
Inscription
16 Août 2012
Messages
3 503
Réactions
990
Points
17 711
Good tutoriel, GG a toi ;)
 

Ezhar le Chacal

Gentleman
Premium
Inscription
5 Décembre 2014
Messages
8 189
Réactions
4 105
Points
10 095
Salut :RG:,

On se retrouve pour la troisième partie de ma série sur "comment créer un espace membre".
Si vous n'avez pas suivi la première et la deuxième partie je vous conseille d'aller les voir, sauf si vous avez déjà le code, en tout cas je reprendrai mon code. (partie 1) (parti 2)

Je vais vous apprendre à faire un système d'avatar avec l'édition du profil.

J'utiliserai le logiciel Sublime Text 3 !

https://reality-gaming.fr/attachments/djamel2-png.61408/

Nous allons créer une nouvelle colonne dans la table membre (dans PHPMyAdmin), appelez la 'avatar' et mettez la en varchar de 255, vous pouvez bien évidemment la rajouter sur votre table.
Ensuite nous allons créer un fichier 'edition.php' dans le dossier de notre site.

Nous allons faire le formulaire pour mettre un avatar, changé son mot de passe, son pseudo ou son mail.

HTML:
                <form method="POST" enctype="multipart/form-data">

                        <label>Pseudo actuel :</label>
                        <input type="text" value="<?php echo $user['pseudo']; ?>" disabled><br /><br />
                         <label>Entrez votre nouveau pseudo :</label>
                        <input type="text" name="newpseudo" placeholder="..."><br /><br />
    <hr />      
                <u><h2>Email :</h2></u>
                        <label for="mail1">Votre mail actuel :</label>
                        <input type="text" value="<?php echo $user['mail']; ?>" disabled><br /><br />

                        <label for="mail1">Entrez votre nouvel email :</label>
                        <input type="text" name="newmail" placeholder="..."><br /><br />
    <hr />
                <u><h2>Mot de passe :</h2></u>
                        <label>Entrez votre nouveau mot de passe :</label>
                        <input type="password" name="newmdp1" placeholder="..."><br /><br />
                        <label>Confirmation du nouveau mot de passe :</label>
                        <input type="password" name="newmdp2" placeholder="..." /><br /><br />
                         <label>Avatar :</label>
                        <input type="file" name="avatar"><br />
                        <br />
                        <center><input type="submit" name="submit" value="Mettre à jour mon profil !" /></center>
                </form>

Si vous recréé un formulaire, n'oubliez surtout pas de rajouter enctype="multipart/form-data" pour l'avatar.
Comme d'habitude vous pouvez changé le formulaire mais le nom (name) des input doivent être les mêmes.

Maintenant ouvrez les balises PHP tout en haut de votre code, nous allons vérifié si le membre est connecté pour pouvoir accédé à la page, nous démarrons toutes les variables de session et nous lions la base de donnée.

PHP:
session_start();
$bdd = new PDO('mysql:host=127.0.0.1;dbname=espace_membre;charset=utf8', 'root', '');

if(isset($_SESSION['id']))
{
    $requser = $bdd->prepare("SELECT * FROM membres WHERE id = ?");
    $requser->execute(array($_SESSION['id']));
    $user = $requser->fetch();

#NOUS METTRONS LE CODE SUIVANT ICI
#FERMEZ CETTE CONDITIONS TOUT EN BAS DU CODE

}

Regardez ce screen si vous n'avez pas compris les commentaires, :ok:
La nous cherchons la liste des membres dans notre base de donnée pour pouvoir les comparer à ce que l'utilisateur a rentré.

Donc nous allons faire la requête pour modifier le pseudo si l'utilisateur a rentré un nouveau pseudo, donc :

PHP:
   # PSEUDO
if(!empty($_POST['newpseudo']) AND $_POST['newpseudo'] != $user['pseudo'])
    {
        $newpseudo = htmlspecialchars(trim($_POST['newpseudo']));
        $insertpseudo = $bdd->prepare("UPDATE membres SET pseudo = ? WHERE id = ?");
        $insertpseudo->execute(array($newpseudo, $_SESSION['id']));
        header('Location: profil.php?id='.$_SESSION['id']);
    }

Premièrement nous vérifions si le pseudo rentré n'est pas vide, puis nous vérifions si le pseudo rentré n'est pas la même que le pseudo actuel.
Ensuite nous sécurisons avec un "htmlspecialchars" et nous enlevons les espaces avec la fonction "trim".
Si vous ne comprenez pas le SQL, je vous invite à aller sur OpenClassrooms.
Puis si tout est bon le membre est redirigé vers son profil.

Nous allons faire la même chose pour l'email du membre, en rajoutant une fonction qui vérifie si le mail est valide.

Code:
  # MAIL
  if(!empty($_POST['newmail']) AND $_POST['newmail'] != $user['mail'])
    {
        if(filter_var($_POST['newmail'], FILTER_VALIDATE_EMAIL))
        {
            $newmail = htmlspecialchars(trim($_POST['newmail']));
            $insertmail = $bdd->prepare("UPDATE membres SET mail = ? WHERE id = ?");
            $insertmail->execute(array($newmail, $_SESSION['id']));
            header('Location: profil.php?id='.$_SESSION['id']);
        }
    }

La troisième ligne vérifie si le mail est valide, comme je vous l'ai dis.
Le membre est redirigé vers son profil.

Maintenant nous allons faire pour le mot de passe, c'est plutôt basique donc je ne vais vous expliqué en détail ce qui va arrivé.

PHP:
    # MOT DE PASSE

    if(!empty($_POST['newmdp1']) AND !empty($_POST['newmdp2']))
    {
        $mdp1 = sha1($_POST['newmdp1']);
        $mdp2 = sha1($_POST['newmdp2']);

        if($mdp1 == $mdp2)
        {
            $insertmdp = $bdd->prepare("UPDATE membres SET motdepasse = ? WHERE id = ?");
            $insertmdp->execute(array($mdp1, $_SESSION['id']));
            header('Location: profil.php?id='.$_SESSION['id']);
        }
        else
        {
            $erreur = "Vos deux mot de passe ne correspondent pas !";
        }
    }

Nous vérifions si les mots de passe sont rentrés, nous cryptons les mots de passe en sha1 et puis nous vérifions si les deux mots de passe correspondent et puis nous modifions le mot de passe, le membre est ensuite redirigé vers son profil.

https://reality-gaming.fr/attachments/djamel2-png.61408/

Nous avons fait le code pour le pseudo, le mail et le mot de passe, nous allons donc faire le système d'avatar, le code est assez complexe si vous n'êtes pas à l'aise avec PHP, mais j'essayerai de détailler au maximum.

Je vais pas décomposer le code cette fois-ci.

Code:
    if(isset($_FILES['avatar']) AND !empty($_FILES['avatar']['name']))

    {
        $tailleMax = 2097152;
        $extensionsValides = array('jpg', 'jpeg', 'gif', 'png');
        if($_FILES['avatar']['size'] <= $tailleMax)
        {
            $extensionUpload = strtolower(substr(strrchr($_FILES['avatar']['name'], '.'), 1));
            if(in_array($extensionUpload, $extensionsValides))
            {
                $chemin = "membres/avatars/".$_SESSION['id'].".".$extensionUpload;
                $resultat = move_uploaded_file($_FILES['avatar']['tmp_name'], $chemin);
                if($resultat)
                {
                    $updateavatar = $bdd->prepare('UPDATE membres SET avatar = :avatar WHERE id = :id');
                    $updateavatar->execute(array(
                        'avatar' => $_SESSION['id'].".".$extensionUpload,
                        'id' => $_SESSION['id']
                        ));
                    header('Location: profil.php?id='.$_SESSION['id']);
                }
                else
                {
                    $erreur = "Erreur durant l'importation de votre photo de profil";
                }
            }
            else
            {
                $erreur = "Votre photo de profil doit être au format jpg, jpeg, gif ou png";
            }
        }
        else
        {
            $erreur = "Votre photo de profil ne doit pas dépasser 2Mo";
        }
    }

Donc, nous vérifions si l'utilisateur a choisi un avatar, ensuite nous déclarons la taille maximum pour les avatars, 2097152 signifie environ 2Mo, ensuite nous faisons un array autrement dis un tableau avec les extensions obligatoires, c'est moi qui les ai choisi, vus pouvez bien évidemment enlever ou en rajouter, ensuite nous vérifions si l'image n'est pas supérieur à la taille maximum.
Je sais pas vraiment comment vous expliquer la septième ligne de ce bout de code, en gros nous vérifions si nous avons bien ce que nous avons défini dans l'array, nous définissons le chemin de l'image, donc à l'endroit ou elle sera uploader.
Nous faisons ensuite la requête SQL pour modifier la case avatar dans
phpMyAdmin

Les dernière lignes sont
les messages d'erreurs, pour les afficher mettez ce bout de code en dessous de votre formulaire.

PHP:
<?php if(isset($erreur)) { echo $erreur; } ?>

https://reality-gaming.fr/attachments/djamel2-png.61408/

Et voilà :RG: c'est la fin de cette troisième partie de ma série de tutoriels en PHP.
Si vous avez une question, une remarque ou autre n'hésitez pas à me demander en message privée. :ok:

:tchuss:
superbe tuto , merci plus beau ♥
 

Djamel SEC

Ancien staff
Inscription
24 Août 2012
Messages
19 693
Réactions
10 382
Points
27 570
Félicitations tu expliques très bien, excellent tutoriel !
 

Lagger

Responsable des lags
Premium
Inscription
28 Novembre 2011
Messages
1 903
Réactions
581
Points
12 558
Merci du partage :love:
 

WellKoopa

Le roi des Koopas
Premium
Inscription
17 Octobre 2014
Messages
540
Réactions
34
Points
11 630
Je t'en remercie maintenant sa marche niquel :) et l'avatar ses au top :p
 
D

deleted226438

Salut :RG:,

On se retrouve pour la troisième partie de ma série sur "comment créer un espace membre".
Si vous n'avez pas suivi la première et la deuxième partie je vous conseille d'aller les voir, sauf si vous avez déjà le code, en tout cas je reprendrai mon code. (partie 1) (parti 2)

Je vais vous apprendre à faire un système d'avatar avec l'édition du profil.

J'utiliserai le logiciel Sublime Text 3 !

https://reality-gaming.fr/attachments/djamel2-png.61408/

Nous allons créer une nouvelle colonne dans la table membre (dans PHPMyAdmin), appelez la 'avatar' et mettez la en varchar de 255, vous pouvez bien évidemment la rajouter sur votre table.
Ensuite nous allons créer un fichier 'edition.php' dans le dossier de notre site.

Nous allons faire le formulaire pour mettre un avatar, changé son mot de passe, son pseudo ou son mail.

HTML:
                <form method="POST" enctype="multipart/form-data">

                        <label>Pseudo actuel :</label>
                        <input type="text" value="<?php echo $user['pseudo']; ?>" disabled><br /><br />
                         <label>Entrez votre nouveau pseudo :</label>
                        <input type="text" name="newpseudo" placeholder="..."><br /><br />
    <hr />     
                <u><h2>Email :</h2></u>
                        <label for="mail1">Votre mail actuel :</label>
                        <input type="text" value="<?php echo $user['mail']; ?>" disabled><br /><br />

                        <label for="mail1">Entrez votre nouvel email :</label>
                        <input type="text" name="newmail" placeholder="..."><br /><br />
    <hr />
                <u><h2>Mot de passe :</h2></u>
                        <label>Entrez votre nouveau mot de passe :</label>
                        <input type="password" name="newmdp1" placeholder="..."><br /><br />
                        <label>Confirmation du nouveau mot de passe :</label>
                        <input type="password" name="newmdp2" placeholder="..." /><br /><br />
                         <label>Avatar :</label>
                        <input type="file" name="avatar"><br />
                        <br />
                        <center><input type="submit" name="submit" value="Mettre à jour mon profil !" /></center>
                </form>

Si vous recréé un formulaire, n'oubliez surtout pas de rajouter enctype="multipart/form-data" pour l'avatar.
Comme d'habitude vous pouvez changé le formulaire mais le nom (name) des input doivent être les mêmes.

Maintenant ouvrez les balises PHP tout en haut de votre code, nous allons vérifié si le membre est connecté pour pouvoir accédé à la page, nous démarrons toutes les variables de session et nous lions la base de donnée.

PHP:
session_start();
$bdd = new PDO('mysql:host=127.0.0.1;dbname=espace_membre;charset=utf8', 'root', '');

if(isset($_SESSION['id']))
{
    $requser = $bdd->prepare("SELECT * FROM membres WHERE id = ?");
    $requser->execute(array($_SESSION['id']));
    $user = $requser->fetch();

#NOUS METTRONS LE CODE SUIVANT ICI
#FERMEZ CETTE CONDITIONS TOUT EN BAS DU CODE

}

Regardez ce screen si vous n'avez pas compris les commentaires, :ok:
La nous cherchons la liste des membres dans notre base de donnée pour pouvoir les comparer à ce que l'utilisateur a rentré.

Donc nous allons faire la requête pour modifier le pseudo si l'utilisateur a rentré un nouveau pseudo, donc :

PHP:
   # PSEUDO
if(!empty($_POST['newpseudo']) AND $_POST['newpseudo'] != $user['pseudo'])
    {
        $newpseudo = htmlspecialchars(trim($_POST['newpseudo']));
        $insertpseudo = $bdd->prepare("UPDATE membres SET pseudo = ? WHERE id = ?");
        $insertpseudo->execute(array($newpseudo, $_SESSION['id']));
        header('Location: profil.php?id='.$_SESSION['id']);
    }

Premièrement nous vérifions si le pseudo rentré n'est pas vide, puis nous vérifions si le pseudo rentré n'est pas la même que le pseudo actuel.
Ensuite nous sécurisons avec un "htmlspecialchars" et nous enlevons les espaces avec la fonction "trim".
Si vous ne comprenez pas le SQL, je vous invite à aller sur OpenClassrooms.
Puis si tout est bon le membre est redirigé vers son profil.

Nous allons faire la même chose pour l'email du membre, en rajoutant une fonction qui vérifie si le mail est valide.

Code:
  # MAIL
  if(!empty($_POST['newmail']) AND $_POST['newmail'] != $user['mail'])
    {
        if(filter_var($_POST['newmail'], FILTER_VALIDATE_EMAIL))
        {
            $newmail = htmlspecialchars(trim($_POST['newmail']));
            $insertmail = $bdd->prepare("UPDATE membres SET mail = ? WHERE id = ?");
            $insertmail->execute(array($newmail, $_SESSION['id']));
            header('Location: profil.php?id='.$_SESSION['id']);
        }
    }

La troisième ligne vérifie si le mail est valide, comme je vous l'ai dis.
Le membre est redirigé vers son profil.

Maintenant nous allons faire pour le mot de passe, c'est plutôt basique donc je ne vais vous expliqué en détail ce qui va arrivé.

PHP:
    # MOT DE PASSE

    if(!empty($_POST['newmdp1']) AND !empty($_POST['newmdp2']))
    {
        $mdp1 = sha1($_POST['newmdp1']);
        $mdp2 = sha1($_POST['newmdp2']);

        if($mdp1 == $mdp2)
        {
            $insertmdp = $bdd->prepare("UPDATE membres SET motdepasse = ? WHERE id = ?");
            $insertmdp->execute(array($mdp1, $_SESSION['id']));
            header('Location: profil.php?id='.$_SESSION['id']);
        }
        else
        {
            $erreur = "Vos deux mot de passe ne correspondent pas !";
        }
    }

Nous vérifions si les mots de passe sont rentrés, nous cryptons les mots de passe en sha1 et puis nous vérifions si les deux mots de passe correspondent et puis nous modifions le mot de passe, le membre est ensuite redirigé vers son profil.

https://reality-gaming.fr/attachments/djamel2-png.61408/

Nous avons fait le code pour le pseudo, le mail et le mot de passe, nous allons donc faire le système d'avatar, le code est assez complexe si vous n'êtes pas à l'aise avec PHP, mais j'essayerai de détailler au maximum.

Je vais pas décomposer le code cette fois-ci.

Code:
    if(isset($_FILES['avatar']) AND !empty($_FILES['avatar']['name']))

    {
        $tailleMax = 2097152;
        $extensionsValides = array('jpg', 'jpeg', 'gif', 'png');
        if($_FILES['avatar']['size'] <= $tailleMax)
        {
            $extensionUpload = strtolower(substr(strrchr($_FILES['avatar']['name'], '.'), 1));
            if(in_array($extensionUpload, $extensionsValides))
            {
                $chemin = "membres/avatars/".$_SESSION['id'].".".$extensionUpload;
                $resultat = move_uploaded_file($_FILES['avatar']['tmp_name'], $chemin);
                if($resultat)
                {
                    $updateavatar = $bdd->prepare('UPDATE membres SET avatar = :avatar WHERE id = :id');
                    $updateavatar->execute(array(
                        'avatar' => $_SESSION['id'].".".$extensionUpload,
                        'id' => $_SESSION['id']
                        ));
                    header('Location: profil.php?id='.$_SESSION['id']);
                }
                else
                {
                    $erreur = "Erreur durant l'importation de votre photo de profil";
                }
            }
            else
            {
                $erreur = "Votre photo de profil doit être au format jpg, jpeg, gif ou png";
            }
        }
        else
        {
            $erreur = "Votre photo de profil ne doit pas dépasser 2Mo";
        }
    }

Donc, nous vérifions si l'utilisateur a choisi un avatar, ensuite nous déclarons la taille maximum pour les avatars, 2097152 signifie environ 2Mo, ensuite nous faisons un array autrement dis un tableau avec les extensions obligatoires, c'est moi qui les ai choisi, vus pouvez bien évidemment enlever ou en rajouter, ensuite nous vérifions si l'image n'est pas supérieur à la taille maximum.
Je sais pas vraiment comment vous expliquer la septième ligne de ce bout de code, en gros nous vérifions si nous avons bien ce que nous avons défini dans l'array, nous définissons le chemin de l'image, donc à l'endroit ou elle sera uploader.
Nous faisons ensuite la requête SQL pour modifier la case avatar dans
phpMyAdmin

Les dernière lignes sont
les messages d'erreurs, pour les afficher mettez ce bout de code en dessous de votre formulaire.

PHP:
<?php if(isset($erreur)) { echo $erreur; } ?>

https://reality-gaming.fr/attachments/djamel2-png.61408/

Et voilà :RG: c'est la fin de cette troisième partie de ma série de tutoriels en PHP.
Si vous avez une question, une remarque ou autre n'hésitez pas à me demander en message privée. :ok:

:tchuss:
Beau tutoriel, et très utile, merci l'nwar :)
 
S

Socket

Très bon tutoriel ! J'aimes bien comment sont formées les explications. ;)
 

SpK

Premium
Inscription
2 Janvier 2012
Messages
121
Réactions
33
Points
19 538
Tu devrais mettre les fichier en téléchargement ^^'

Sinon bon tuto ;)
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut