IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Ajout, Modification d'un avatar [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 149
    Par défaut Ajout, Modification d'un avatar
    Bonjour à tous et à toutes,

    Je suis actuellement sur le développement d'un espace profil, et j'ai rencontré pas mal de problèmes pour en arrivé la ou j'en suis ^^'.
    Je bute encore sur des finitions comme l'ajout d'un avatar pas defaut, la modification d'un avatar personnalisé ou la suppression de cette avatar personnalisé....

    Pour rajouté un avatar pas défaut, j'ai procédé de la manière suivante :
    J'ai crée une petite image sur A.Illustrator faisant 100px x 100px que j'ai enregistrer pour le web en jpg. Ensuite j'ai placé cette image dans mon dossier avatars ( la ou toutes les images des avatars doivent être stocké ) sous le nom de : logodefaut.jpg. Ensuite dans ma base de donnée membres, a la case membre_avatar > vachar > 255 > tel que définie : logodefaut.jpg.

    Dans ma page consulter le profil le code suivant est censé affiché l'avatar pas defaut du membre qui vient juste de s'inscrir, mais rien ne s'affiche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     echo '<img src=".images/avatars/'.$data['membre_avatar'].'" alt="Votre avatar" />';
    et concernant la modification de l'avatar rien ne marche non plus :/ mais aucunes erreurs n'est présente.

    voici le code de ma page modifier.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
     
    <?php session_start();
    if (empty($_POST['sent'])) { // Si on la variable est vide, on peut considérer qu'on est sur la page de formulaire
     
        //On commence par s'assurer que le membre est connecté
        if (isset ($_SESSION['membre_id'])) {
     
            //On prend les infos du membre
    		$id=($_SESSION['membre_id']);
            $query = $bdd->prepare('SELECT membre_pseudo, membre_mail, membre_avatar FROM membres WHERE membre_id=:id');
            $query->bindValue(':id', $id, PDO::PARAM_INT);
            $query->execute();
            $data = $query->fetch();
            echo '<div id="infosmembre">';
            echo '<p class="textesimple">' . "Consulter votre : " . '<a href="voirprofil.php?action=consulter">' . "Profil" . '</a>';
            echo '<h1 class="textesimple">' . "Modification de votre profil" . '</h1>';
            echo '</div>';
     
            echo '<div id="infosmembre">';
            echo '<form method="post" action="voirprofil.php?action=modifier" enctype="multipart/form-data">
    
            <fieldset><legend><div id="cadrepseu"><p class="classinscr"><b>Identifiants</b></p></div></legend>
            <div id="cadrepseu"><p class="classinscr">Pseudo : <strong>' . htmlspecialchars($data['membre_pseudo']) . '</strong></p></div>
              <div id="cadrepseu"><p class="classinscr"><label for="mdp">Nouveau mot de Passe :</label>
            <input type="password" name="mdp" id="pass" value="' . $data['membre_mdp'] . '" /></p></div>
            <div id="cadrepseu"><p class="classinscr"><label for="confirm">Confirmer le mot de passe :</label>
            <input type="password" name="confirm" id="confirm" value="' . $data['membre_mdp'] . '"/></p></div>
            </fieldset>
    
            <fieldset><legend><div id="cadrepseu"><p class="classinscr"><b>Contacts</b></p></div></legend>
            <div id="cadrepseu"><p class="classinscr"><label for="email">Votre adresse E_Mail :</label>
            <input type="text" name="mail" id="email"
            value="' . $data['membre_mail'] . '" /></p></div>
    
            <fieldset><legend><div id="cadrepseu"><p class="classinscr"><b>Profil sur le forum</b></p></div></legend>
            <div id="cadrepseu"><p class="classinscr"><label for="avatar">Changer votre avatar :</label>
            <input type="file" name="avatar" id="avatar" />
            (Taille max : 10 Mo)<br /><br />
            <label><input type="checkbox" name="delete" value="Delete" />
            Supprimer l avatar</label>
            Avatar actuel :
            <img src="./images/avatars/' . $data['membre_avatar'] . '"
            alt="pas d avatar" /></p></div>
    
    
            </fieldset>
            <p class="classinscr"><input type="submit" value="Modifier son profil" />
            <input type="hidden" id="sent" name="sent" value="1" />
            </p></form>';
     
            echo '</div>';
     
            $query->CloseCursor();
     
        } else {
            echo '<p class="texteerror">' . "Vous n'avez pas accès à cette page." . '</p>';
            echo '<p class="textewarning">' . "Vous devez être connecté pour accèder à cette page." . '</p>';
        }
    } else { //Cas du traitement
     
        //On déclare les variables
        $mdp_erreur = NULL;
        $email_erreur1 = NULL;
        $email_erreur2 = NULL;
        $avatar_erreur = NULL;
        $avatar_erreur1 = NULL;
        $avatar_erreur2 = NULL;
        $avatar_erreur3 = NULL;
     
        //Encore et toujours notre belle variable $i :p
        $i = 0;
        $temps = time();
        $email = $_POST['mail'];
        $pass = ($_POST['mdp']);
        $confirm = ($_POST['confirm']);
        //Vérification du mdp
        if ($pass != $confirm || empty($confirm) || empty($pass)) {
            $mdp_erreur = '<p class="texteerror">' . "Votre mot de passe et votre confirmation diffèrent ou sont vides" . '</p>';
            $i++;
        }
     
        //Vérification de l'adresse email
        //Il faut que l'adresse email n'ait jamais été utilisée (sauf si elle n'a pas été modifiée)
     
        //On commence donc par récupérer le mail
    	$id=($_SESSION['membre_id']);
        $query = $bdd->prepare('SELECT membre_mail FROM membres WHERE membre_id=:id');
        $query->bindValue(':id', $id, PDO::PARAM_INT);
        $query->execute();
        $data = $query->fetch();
        if (strtolower($data['membre_mail']) != strtolower($email)) {
            //Il faut que l'adresse email n'ait jamais été utilisée
            $query = $bdd->prepare('SELECT COUNT(*) AS nbr FROM membres WHERE membre_mail=:mail');
            $query->bindValue(':mail', $email, PDO::PARAM_STR);
            $query->execute();
            $mail_free = ($query->fetchColumn() == 0) ? 1 : 0;
            $query->CloseCursor();
            if (!$mail_free) {
                $email_erreur1 = '<p class="textewarning">' . "Votre adresse email est déjà utilisé par un membre" . '</p>';
                $i++;
            }
     
            //On vérifie la forme maintenant
            if (!preg_match("#^[a-z0-9A-Z._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $email) || empty($email)) {
                $email_erreur2 = '<p class="texteerror">' . "Votre nouvelle adresse E-Mail n'a pas un format valide" . '</p>';
                $i++;
            }
        }
        //Vérification de l'avatar
     
        if (!empty($_FILES['membre_avatar']['size'])) {
            //On définit les variables :
            $maxsize = 100000; //Poid de l'image
            $maxwidth = 500; //Largeur de l'image
            $maxheight = 500; //Longueur de l'image
            //Liste des extensions valides
            $extensions_valides = array('jpg', 'jpeg', 'gif', 'png', 'bmp');
     
            if ($_FILES['membre_avatar']['error'] > 0) {
                $avatar_erreur = '<p class="texteerror">' . "Erreur lors du tranfsert de l'avatar : " . '</p>';
            }
            if ($_FILES['membre_avatar']['size'] > $maxsize) {
                $i++;
                $avatar_erreur1 = "Le fichier est trop gros :
            (" . $_FILES['membre_avatar']['size'] . " Octets
            contre " . $maxsize . " Octets)";
            }
     
            $image_sizes = getimagesize($_FILES['membre_avatar']['tmp_name']);
            if ($image_sizes[0] > $maxwidth OR $image_sizes[1] > $maxheight) {
                $i++;
                $avatar_erreur2 = "Image trop large ou trop longue :
            (<strong>" . $image_sizes[0] . "x" . $image_sizes[1] . " contre
            " . $maxwidth . "x" . $maxheight . ")";
            }
     
            $extension_upload = strtolower(substr(strrchr($_FILES['membre_avatar']['name'], '.'), 1));
            if (!in_array($extension_upload, $extensions_valides)) {
                $i++;
                $avatar_erreur3 = '<p class="texteerror">' . "Extension de l'avatar incorrecte" . '</p>';
            }
        }
        echo '<div id="mdup"><h1 class="textesimple">'."Modification d'un profil".'</h1></div>';
     
        if ($i == 0) { // Si $i est vide, il n'y a pas d'erreur
            if (!empty($_FILES['membre_avatar']['size'])) {
                $nomavatar = move_avatar($_FILES['membre_avatar']);
    			$id=($_SESSION['membre_id']);
                $query = $bdd->prepare('UPDATE membres SET membre_avatar=:avatar WHERE membre_id=:id');
                $query->bindValue(':avatar', $nomavatar, PDO::PARAM_STR);
                $query->bindValue(':id', $id, PDO::PARAM_INT);
                $query->execute();
                $query->CloseCursor();
            }
     
            //Une nouveauté ici : on peut choisis de supprimer l'avatar
            if (isset($_POST['delete'])) {
    			$id=($_SESSION['membre_id']);
                $query = $bdd->prepare('UPDATE membres SET membre_avatar=0 WHERE membre_id=:id');
                $query->bindValue(':id', $id, PDO::PARAM_INT);
                $query->execute();
                $query->CloseCursor();
            }
    echo '<div id="MR">';
            echo '<h1 class="textevalide">'."Modification terminée".'</h1>';
            echo '<p class="textevalide">'."Votre profil a été modifié avec succès !".'</p>';
            echo '<p class="textesimple">'. "Cliquez ".'<a href="./index.php">'." ici ".'</a>'."pour revenir à la page d accueil.".'</p>';
    		echo '<p class="textesimple">'. "Cliquez ".'<a href="./voirprofil.php?action=consulter">'." ici ".'</a>'."pour consulter votre profil.".'</p>';
    echo '</div>';
    $query=$bdd->prepare('UPDATE membres SET membre_mdp=:mdp, membre_mail=:mail WHERE membre_id=:id');
            $query->bindValue(':mdp',$pass,PDO::PARAM_STR);
            $query->bindValue(':mail',$email,PDO::PARAM_STR);
            $query->bindValue(':id',$id,PDO::PARAM_INT);
            $query->execute();
            $query->CloseCursor();
     
        } else {
     
    			echo '<div id="MI">';
            echo '<h1 class="texteerror">Modification interrompue</h1>';
            echo '<p class="texteerror">Une ou plusieurs erreurs se sont produites pendant la modification du profil</p>';
            echo '<p class="texteerror">' . $i . ' erreur(s)</p>';
            echo '<p class="texteerror">' . $mdp_erreur . '</p>';
            echo '<p class="texteerror">' . $email_erreur1 . '</p>';
            echo '<p class="texteerror">' . $email_erreur2 . '</p>';
            echo '<p class="texteerror">' . $avatar_erreur . '</p>';
            echo '<p class="texteerror">' . $avatar_erreur1 . '</p>';
            echo '<p class="texteerror">' . $avatar_erreur2 . '</p>';
            echo '<p class="texteerror">' . $avatar_erreur3 . '</p>';
            echo '<p class="textewarning"> Cliquez <a href="./voirprofil.php?action=modifier">ici</a> pour recommencer</p>';
    			echo '</div>';
        }
    }
    ?>
    Merci pour votre aide et votre attention à tous.

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 252
    Par défaut
    Est-ce que ca ne viendrait pas juste de l'oubli du slash du coté de l'affichage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo '<img src="./images/avatars/'.$data['membre_avatar'].'" alt="Votre avatar" />';

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 149
    Par défaut
    re,
    J'ai réussi à déboguer un problème qui ma amené à un autre :/
    Il semble que j'ai un problème avec cette ligne de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $nomavatar = move_avatar($_FILES['membre_avatar']);
    Voici la requête en entière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
      if (!empty($_FILES['membre_avatar']['size'])) {
                $nomavatar = move_avatar($_FILES['membre_avatar']);
    			$id=($_SESSION['membre_id']);
                $query = $bdd->prepare('UPDATE membres SET membre_avatar=:avatar WHERE membre_id=:id');
                $query->bindValue(':avatar', $nomavatar, PDO::PARAM_STR);
                $query->bindValue(':id', $id, PDO::PARAM_INT);
                $query->execute();
                $query->CloseCursor();
            }
    Merci pour votre aide et votre attention,
    Sincèrement.

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Si ton problème est sur la ligne $nomavatar = move_avatar($_FILES['membre_avatar']);, ça serait une bonne idée de nous donner le code de la fonction move_avatar
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 149
    Par défaut
    Merci pour ton attention Celira,
    Je pense avoir sauté une case sur la définitions de la fonction move_avatar :/,
    voici le code entier de ma page modifier.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
     
    <?php session_start();
    if (empty($_POST['sent'])) { // Si on la variable est vide, on peut considérer qu'on est sur la page de formulaire
     
        //On commence par s'assurer que le membre est connecté
        if (isset ($_SESSION['membre_id'])) {
     
            //On prend les infos du membre
    		$id=($_SESSION['membre_id']);
            $query = $bdd->prepare('SELECT membre_pseudo, membre_mail, membre_avatar FROM membres WHERE membre_id=:id');
            $query->bindValue(':id', $id, PDO::PARAM_INT);
            $query->execute();
            $data = $query->fetch();
            echo '<div id="infosmembre">';
            echo '<p class="textesimple">' . "Consulter votre : " . '<a href="voirprofil.php?action=consulter">' . "Profil" . '</a>';
            echo '<h1 class="textesimple">' . "Modification de votre profil" . '</h1>';
            echo '</div>';
     
            echo '<div id="infosmembre">';
            echo '<form method="post" action="voirprofil.php?action=modifier" enctype="multipart/form-data">
    
            <fieldset><legend><div id="cadrepseu"><p class="classinscr"><b>Identifiants</b></p></div></legend>
            <div id="cadrepseu"><p class="classinscr">Pseudo : <strong>' . htmlspecialchars($data['membre_pseudo']) . '</strong></p></div>
              <div id="cadrepseu"><p class="classinscr"><label for="mdp">Nouveau mot de Passe :</label>
            <input type="password" name="mdp" id="pass" value="' . $data['membre_mdp'] . '" /></p></div>
            <div id="cadrepseu"><p class="classinscr"><label for="confirm">Confirmer le mot de passe :</label>
            <input type="password" name="confirm" id="confirm" value="' . $data['membre_mdp'] . '"/></p></div>
            </fieldset>
    
            <fieldset><legend><div id="cadrepseu"><p class="classinscr"><b>Contacts</b></p></div></legend>
            <div id="cadrepseu"><p class="classinscr"><label for="email">Votre adresse E_Mail :</label>
            <input type="text" name="mail" id="email"
            value="' . $data['membre_mail'] . '" /></p></div>
    
            <fieldset><legend><div id="cadrepseu"><p class="classinscr"><b>Profil sur le forum</b></p></div></legend>
            <div id="cadrepseu"><p class="classinscr"><label for="membre_avatar">Changer votre avatar :</label>
            <input type="file" name="membre_avatar" id="membre_avatar" />
            (Taille max : 10 Mo)<br /><br />
            <label><input type="checkbox" name="delete" value="Delete" />
            Supprimer l avatar</label>
            Avatar actuel :
            <img src="./images/avatars/' . $data['membre_avatar'] . '"
            alt="aucun avatar" /></p></div>
    
    
            </fieldset>
            <p class="classinscr"><input type="submit" value="Modifier son profil" />
            <input type="hidden" id="sent" name="sent" value="1" />
            </p></form>';
     
            echo '</div>';
     
            $query->CloseCursor();
     
        } else {
            echo '<p class="texteerror">' . "Vous n'avez pas accès à cette page." . '</p>';
            echo '<p class="textewarning">' . "Vous devez être connecté pour accèder à cette page." . '</p>';
        }
    } else { //Cas du traitement
     
        //On déclare les variables
        $mdp_erreur = NULL;
        $email_erreur1 = NULL;
        $email_erreur2 = NULL;
        $avatar_erreur = NULL;
        $avatar_erreur1 = NULL;
        $avatar_erreur2 = NULL;
        $avatar_erreur3 = NULL;
     
        //Encore et toujours notre belle variable $i :p
        $i = 0;
        $temps = time();
        $email = $_POST['mail'];
        $pass = ($_POST['mdp']);
        $confirm = ($_POST['confirm']);
        //Vérification du mdp
        if ($pass != $confirm || empty($confirm) || empty($pass)) {
            $mdp_erreur = '<p class="texteerror">' . "Votre mot de passe et votre confirmation diffèrent ou sont vides" . '</p>';
            $i++;
        }
     
        //Vérification de l'adresse email
        //Il faut que l'adresse email n'ait jamais été utilisée (sauf si elle n'a pas été modifiée)
     
        //On commence donc par récupérer le mail
    	$id=($_SESSION['membre_id']);
        $query = $bdd->prepare('SELECT membre_mail FROM membres WHERE membre_id=:id');
        $query->bindValue(':id', $id, PDO::PARAM_INT);
        $query->execute();
        $data = $query->fetch();
        if (strtolower($data['membre_mail']) != strtolower($email)) {
            //Il faut que l'adresse email n'ait jamais été utilisée
            $query = $bdd->prepare('SELECT COUNT(*) AS nbr FROM membres WHERE membre_mail=:mail');
            $query->bindValue(':mail', $email, PDO::PARAM_STR);
            $query->execute();
            $mail_free = ($query->fetchColumn() == 0) ? 1 : 0;
            $query->CloseCursor();
            if (!$mail_free) {
                $email_erreur1 = '<p class="textewarning">' . "Votre adresse email est déjà utilisé par un membre" . '</p>';
                $i++;
            }
     
            //On vérifie la forme maintenant
            if (!preg_match("#^[a-z0-9A-Z._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $email) || empty($email)) {
                $email_erreur2 = '<p class="texteerror">' . "Votre nouvelle adresse E-Mail n'a pas un format valide" . '</p>';
                $i++;
            }
        }
        //Vérification de l'avatar
     
        if (!empty($_FILES['membre_avatar']['size'])) {
            //On définit les variables :
            $maxsize = 100000; //Poid de l'image
            $maxwidth = 500; //Largeur de l'image
            $maxheight = 500; //Longueur de l'image
            //Liste des extensions valides
            $extensions_valides = array('jpg', 'jpeg', 'gif', 'png', 'bmp');
     
            if ($_FILES['membre_avatar']['error'] > 0) {
                $avatar_erreur = '<p class="texteerror">' . "Erreur lors du tranfsert de l'avatar : " . '</p>';
            }
            if ($_FILES['membre_avatar']['size'] > $maxsize) {
                $i++;
                $avatar_erreur1 = "Le fichier est trop gros :
            (" . $_FILES['membre_avatar']['size'] . " Octets
            contre " . $maxsize . " Octets)";
            }
     
            $image_sizes = getimagesize($_FILES['membre_avatar']['tmp_name']);
            if ($image_sizes[0] > $maxwidth OR $image_sizes[1] > $maxheight) {
                $i++;
                $avatar_erreur2 = "Image trop large ou trop longue :
            (<strong>" . $image_sizes[0] . "x" . $image_sizes[1] . " contre
            " . $maxwidth . "x" . $maxheight . ")";
            }
     
            $extension_upload = strtolower(substr(strrchr($_FILES['membre_avatar']['name'], '.'), 1));
            if (!in_array($extension_upload, $extensions_valides)) {
                $i++;
                $avatar_erreur3 = '<p class="texteerror">' . "Extension de l'avatar incorrecte" . '</p>';
            }
        }
        echo '<div id="mdup"><h1 class="textesimple">'."Modification d'un profil".'</h1></div>';
     
        if ($i == 0) { // Si $i est vide, il n'y a pas d'erreur
            if (!empty($_FILES['membre_avatar']['size'])) {
                $nomavatar = move_avatar($_FILES['membre_avatar']);
    			$id=($_SESSION['membre_id']);
                $query = $bdd->prepare('UPDATE membres SET membre_avatar=:avatar WHERE membre_id=:id');
                $query->bindValue(':avatar', $nomavatar, PDO::PARAM_STR);
                $query->bindValue(':id', $id, PDO::PARAM_INT);
                $query->execute();
                $query->CloseCursor();
            }
     
            //Une nouveauté ici : on peut choisis de supprimer l'avatar
            if (isset($_POST['delete'])) {
    			$id=($_SESSION['membre_id']);
                $query = $bdd->prepare('UPDATE membres SET membre_avatar=0 WHERE membre_id=:id');
                $query->bindValue(':id', $id, PDO::PARAM_INT);
                $query->execute();
                $query->CloseCursor();
            }
    echo '<div id="MR">';
            echo '<h1 class="textevalide">'."Modification terminée".'</h1>';
            echo '<p class="textevalide">'."Votre profil a été modifié avec succès !".'</p>';
            echo '<p class="textesimple">'. "Cliquez ".'<a href="./index.php">'." ici ".'</a>'."pour revenir à la page d accueil.".'</p>';
    		echo '<p class="textesimple">'. "Cliquez ".'<a href="./voirprofil.php?action=consulter">'." ici ".'</a>'."pour consulter votre profil.".'</p>';
    echo '</div>';
    $query=$bdd->prepare('UPDATE membres SET membre_mdp=:mdp, membre_mail=:mail WHERE membre_id=:id');
            $query->bindValue(':mdp',$pass,PDO::PARAM_STR);
            $query->bindValue(':mail',$email,PDO::PARAM_STR);
            $query->bindValue(':id',$id,PDO::PARAM_INT);
            $query->execute();
            $query->CloseCursor();
     
        } else {
     
    			echo '<div id="MI">';
            echo '<h1 class="texteerror">Modification interrompue</h1>';
            echo '<p class="texteerror">Une ou plusieurs erreurs se sont produites pendant la modification du profil</p>';
            echo '<p class="texteerror">' . $i . ' erreur(s)</p>';
            echo '<p class="texteerror">' . $mdp_erreur . '</p>';
            echo '<p class="texteerror">' . $email_erreur1 . '</p>';
            echo '<p class="texteerror">' . $email_erreur2 . '</p>';
            echo '<p class="texteerror">' . $avatar_erreur . '</p>';
            echo '<p class="texteerror">' . $avatar_erreur1 . '</p>';
            echo '<p class="texteerror">' . $avatar_erreur2 . '</p>';
            echo '<p class="texteerror">' . $avatar_erreur3 . '</p>';
            echo '<p class="textewarning"> Cliquez <a href="./voirprofil.php?action=modifier">ici</a> pour recommencer</p>';
    			echo '</div>';
        }
    }
    ?>
    Merci pour ton attention et ton aide,
    Sincèrement.

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Effectivement, tu as dû sauter quelque chose : je ne vois pas la fonction mova_avatar dans ton code
    Quelle erreur obtiens-tu ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  7. #7
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 149
    Par défaut
    Re,
    c'est bon je pense avoir trouvé la bonne solution =), tout fonctionne correctement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
     if (!empty($_FILES['membre_avatar']['size'])) {
    	$nomavatar = basename($_FILES['membre_avatar']['name']);
    	$destination = "./images/avatars/".$nomavatar;
    	if(move_uploaded_file($_FILES['membre_avatar']['tmp_name'],$destination)){
    		echo "upload réussi!";
    	}else{
    		echo "l'upload a échoué!";
    	}
    	$id=($_SESSION['membre_id']);
        $query = $bdd->prepare('UPDATE membres SET membre_avatar=:avatar WHERE membre_id=:id');
    	$query->bindValue(':avatar', $nomavatar, PDO::  PARAM_STR);
    	$query->bindValue(':id', $id, PDO:: PARAM_INT);
    	$query->execute();
    	$query->CloseCursor();
    Merci encore pour ton attention .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Requête]requete ajout / modification
    Par moicats dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 29/03/2007, 09h52
  2. delete ajout modif dans la BDD
    Par jojojojo57 dans le forum Bases de données
    Réponses: 8
    Dernier message: 19/03/2007, 20h38
  3. Recherche classe pour ajout/modif/suppression d'articles dans une base de donnée
    Par will89 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 02/02/2007, 11h59
  4. Ajout & modif d'une table vers l'autre
    Par BOTIGUA dans le forum Access
    Réponses: 1
    Dernier message: 17/02/2006, 18h00
  5. Réponses: 5
    Dernier message: 11/10/2005, 15h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo