Bonjour à tous,

suite à un système de modification d'informations d'un utilisateurs
j'ai mis en place un avatar,


            $avatar = $_FILES['avatar']['name'];
            $avatar_tmp = $_FILES['avatar']['tmp_name'];
            if(!empty($avatar))
            {
                $image = explode('.',$avatar);
                $image_ext = end($image);
                $avatare = prev($image);

                if(in_array(strtolower($image_ext), array('jpg','jpeg','gif','png')))
                {
                    move_uploaded_file($avatar_tmp, '../design/img/avatar/'.$avatar);
                    $req = $db->prepare("UPDATE users SET avatar = $avatar WHERE id = $id");
                    $req->bindParam("avatar", $avatar);
                    $req->execute();
                }else{
                    $errors['avatar'] = "Votre image n'est pas au bon format !";
                }
            }

Je ne vois pas pourquoi sa ne marche, j'ai bien mis en html dans le formulaire enctype="multipart/form-data"

8 réponses


Bonjour,

Qu'est ce qu'il ne marche pas ? le move ? La requete ?

Vérifier vos nom de variables (ex: avatarE..)
Comparer les requêtes de celle-ci avec votre précédent sujet. (... Dans le $db->prepare, il ne doit pas y avoir de $)

aStunner
Auteur

j'ai modifier quelques trucs mais toujours rien

$avatar = $_FILES['avatar']['name'];
            $avatar_tmp = $_FILES['avatar']['tmp_name'];
            if(!empty($avatar_tmp))
            {
                $image = explode('.',$avatar);
                $image_ext = end($image);
                if(in_array(strtolower($image_ext), array("png","gif","jpeg","jpg")) === false)
                {
                    $errors['avatar'] = "Votre avatar n'a pas une bonne extension d'image";
                }else{
                    move_uploaded_file($avatar_tmp, '../../design/img/avatar/'.$avatar);
                    $req = $db->prepare("UPDATE users SET avatar = $avatar WHERE id = $id");
                    $req->bindParam("avatar", $avatar);
                    $req->execute();
                }
            }else{
                $errors['avatar_tmp'] = "Veuillez saisir une image";
            }

Votre prepare est faux. (cf post précédent)

aStunner
Auteur

pourtant je fais sa dans d'autre req et sa marche

$req = $db->prepare("UPDATE users SET avatar = :avatar WHERE id = :id");
$req->bindParam(":avatar", $avatar);
$req->bindParam(":id", $id);
$req->execute();
aStunner
Auteur
move_uploaded_file($avatar_tmp, '../../design/img/avatar/'.$avatar);

ne marche pas, je n'ai pas d'erreur de url du coup :/

Vérifier les droits en écriture