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

Langage PHP Discussion :

Envoi d'une image à travers un formulaire


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2009
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 75
    Points : 35
    Points
    35
    Par défaut Envoi d'une image à travers un formulaire
    Bonsoir tout le monde
    j'ai besoin de votre aide, avec mon code je peux ajouter une image que lors le dossier avatar est dans le même dossier que ma page de formulaire et cible

    comment faire pour que l'image s'insère dans un autre fichier que celui de mes pages web svp ?
    l'erreur générer lors le dossier avatar n'est pas dans le meme dossier que mes pages web

    Warning: move_uploaded_file(avatar/12121212.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in C:\wamp\www\gallerie\phpadd\admin\cibleinscription.php on line 123

    Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\wamp\tmp\php1E3A.tmp' to 'avatar/12121212.jpg' in C:\wamp\www\gallerie\phpadd\admin\cibleinscription.php on line 123

    echec de l'upload
    Merci


    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
    <?php
    if(isset($_POST['username']) AND isset($_POST['password']) AND isset($_FILES['avatar'])) {
     
        try {
            $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
            $bdd = new PDO('mysql:host=localhost;dbname=gallerie', 'root', '', $pdo_options);
        }
        catch (Exception $e) {
            die('Erreur : ' . $e->getMessage());
        }
        $username=$_POST['username'];
        $existance = $bdd->prepare('SELECT username, password, cin,fonction FROM user WHERE username = ?');
        $existance->execute(array($username));
        $resultat = $existance->fetch();
     
        if(isset($resultat['username'])) {
            echo "Désolé Mr/Mme, ce nom nom d'utilisateur est déjà pris";
     
        }
     
        else {
            $valid = true;
            $dossier = 'avatar/';
            $fichier = basename($_FILES['avatar']['name']);
     
            $taille_maxi = 50000000;
            $taille = filesize($_FILES['avatar']['tmp_name']);
            $extensions = array('.jpeg', '.jpg', '.png');
            $extension = strrchr($_FILES['avatar']['name'], '.');
     
     
            if(file_exists($dossier.$fichier)){
                $valid = false;
                $erreurnomfichier = 'Veuillez renommer votre photo en suivant cette exemple: PrenomNom';
            }
     
            elseif(!in_array($extension, $extensions)){
                $valid = false;
                $erreurtypefichier = 'Vous devez uploader une photo de type jpeg, jpg ou png';
            }
     
            elseif($taille>$taille_maxi) {
                $valid = false;
                $erreurtaillefichier = 'La taille de la photo est trop grande...';
            }
     
            elseif($valid){
                $fichier = $_POST['cin'].$extension;
     
                if(move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier . $fichier)){
                    echo 'Upload effectué avec succés !';
     
                $avatar=$dossier.$fichier;
                $username=htmlentities($_POST['username']);
                $password=htmlentities($_POST['password']);
                $cin=htmlentities($_POST['cin']);
                $fonction=htmlentities($_POST['fonction']);
     
     
                $existance = $bdd->prepare('INSERT INTO user(avatar,username,password,cin,fonction) VALUES (:avatar, :username, :password, :cin, :fonction)');
     
                $existance->execute(array('avatar'=>$avatar,'username'=>$username,'password'=>$password,'cin'=>$cin,'fonction'=>$fonction));
     
                $existance->closeCursor();
     
                $existance = $bdd->prepare('SELECT * FROM user WHERE username = ?');
                $existance->execute(array($username));
                $resultat = $existance->fetch();
     
                 echo "<br><br>";
                 echo "Nom d'utilisateur : " .$resultat['username']. "<br><br>";
                 echo "Mot de passe :" .$resultat['password']. "<br><br>";
                 echo "CIN / Passeport:" .$resultat['cin']. "<br><br>" ;
                 echo "Fonction :" .$resultat['fonction'] ."<br><br>";
                 echo "Image :" .$resultat['avatar']. "<br><br>" ;
     
                }
     
                else{
                    echo 'Echec de l\'upload !';
                }
            }
     
                if(isset($erreurnomfichier)) echo $erreurnomfichier;
                if(isset($erreurtypefichier)) echo $erreurtypefichier;
                if(isset($erreurtaillefichier)) echo $erreurtaillefichier; 
     
        }
    }

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    le dossier avatar existe et est au même niveau que le script ?
    sinon pour recupere l'extension c'est avec pathino, aussi tu ne doit pas faire de htmlentites au niveau de la base, le $existance->closeCursor(); est inutile

  3. #3
    Nouveau membre du Club
    Inscrit en
    Février 2009
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 75
    Points : 35
    Points
    35
    Par défaut
    mon dossier avatar est sous:
    C:\wamp\www\gallerie\phpadd\avatar
    ma page php
    C:\wamp\www\gallerie\phpadd\admin\

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    Citation Envoyé par tatutatu2009 Voir le message
    mon dossier avatar est sous:
    C:\wamp\www\gallerie\phpadd\avatar
    ma page php
    C:\wamp\www\gallerie\phpadd\admin\
    donc c'est ../avatar

  5. #5
    Nouveau membre du Club
    Inscrit en
    Février 2009
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 75
    Points : 35
    Points
    35
    Par défaut
    Merci ca marche
    en faite j'ai une question


    moi je donne la possibilité à l'utilisateur de s'inscrire ou l'admin ajoute un utilisateur, comme vous voyez sur l'image j'ai ../avatar/bb.jpg et avatar/aa.jpg
    comment je fais quand l'admin veut supprimer un user afin de spécier son avatar
    table user: avatar, username, password, profil, cin , fonction
    la suppression de user marche mais pas de son avatar


    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
    <?php
     
    try
    {
    	$bdd = new PDO('mysql:host=localhost;dbname=gallerie', 'root', '');
    }
    catch(Exception $e)
    {
    	die('Erreur : '.$e->getMessage());
    }
     
    if(!empty($_GET['username'])) { }
    $username = $_GET['username'] ;
    $req = $bdd->prepare("SELECT * FROM user WHERE username = :username") or die(print_r($bdd->errorInfo()));
    	$req->bindParam(':username', $username, PDO::PARAM_INT);
    	$req->execute();
     
    $utilisateur = $req->rowCount();
     
    if($utilisateur == '1')
    { 	
    	$data = $req->fetch();	
    	$req = $bdd->prepare("DELETE FROM user WHERE  username = :username") or die(print_r($bdd->errorInfo()));
    	$req->bindParam(':username', $username, PDO::PARAM_INT);
    	$req->execute();
     
     
    	unlink ('gallerie/phpadd/avatar/'. $username);
     
     
    	echo "<h5 style='text-align:center;color:#FFF'> L'utilisateur a été supprimé avec succés ! </h5>";	
    }
    else 
    {
    echo "<h5 style='text-align:center;color:#FFF'> L'utilisateur sélectionné n'existe pas !</h5>";
    }
    ?>
    MERCI

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    le lien n'est pas bon :
    'gallerie/phpadd/avatar/'. $username

    de plus les erreur de PDO c'est pas avec or die tu la pourtant bien fait dans le premier code

  7. #7
    Nouveau membre du Club
    Inscrit en
    Février 2009
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 75
    Points : 35
    Points
    35
    Par défaut
    oui j'ai meme essayer avec ../avatar ca n'a pas marcher
    j'ai pas compris mon erreur si vous pouvez m'aider mr
    Merci
    j'apprends encore lepdo donc quand je me bloque je revient à l'utilisation précéndente

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    vérifie juste le path, et la tu cherches a supprimer

    gallerie/phpadd/avatar/cc

  9. #9
    Nouveau membre du Club
    Inscrit en
    Février 2009
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 75
    Points : 35
    Points
    35
    Par défaut
    waw

    j'ai rien compris
    etape par étape svp

  10. #10
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    je vois pas ce que tu comprends pas,
    regarde ton unlink et réfléchi...

  11. #11
    Nouveau membre du Club
    Inscrit en
    Février 2009
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 75
    Points : 35
    Points
    35
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    unlink ('../avatar/'. $username);
    comme le username = avatar
    avec mon link je voulais dire ../avatar/ est le chemin et $username est le nom reccupérer étant donné que usename=avatar comme nom

  12. #12
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    Citation Envoyé par tatutatu2009 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    unlink ('../avatar/'. $username);
    comme le username = avatar
    avec mon link je voulais dire ../avatar/ est le chemin et $username est le nom reccupérer étant donné que usename=avatar comme nom

    et le .jpg il est ou...

  13. #13
    Nouveau membre du Club
    Inscrit en
    Février 2009
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 75
    Points : 35
    Points
    35
    Par défaut
    oui vous avez raison mais les images peuvent etre soit jpg soit jpeg soit png
    donc j'ai pas su quoi faire

  14. #14
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    Citation Envoyé par tatutatu2009 Voir le message
    oui vous avez raison mais les images peuvent etre soit jpg soit jpeg soit png
    donc j'ai pas su quoi faire
    peu être utilise le champs qui est dans la base..., la ton $data il sert a rien utilise le

  15. #15
    Nouveau membre du Club
    Inscrit en
    Février 2009
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 75
    Points : 35
    Points
    35
    Par défaut
    vous pouvez me donnez un exemple svp, je suis encore au premier stade et honnetement j'ai pas beaucoup compris votre conseil

  16. #16
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    Citation Envoyé par tatutatu2009 Voir le message
    vous pouvez me donnez un exemple svp, je suis encore au premier stade et honnetement j'ai pas beaucoup compris votre conseil
    utilise le champ (avatar) de ta base pour supprimer l'image

  17. #17
    Nouveau membre du Club
    Inscrit en
    Février 2009
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 75
    Points : 35
    Points
    35
    Par défaut
    oui je l'ai essayer ca m'a aussi générer une erreur

    Warning: unlink(../avatar/) [function.unlink]: Permission denied in C:\wamp\www\gallerie\phpadd\admin\ciblesupp.php on line 98

    Notice: Undefined variable: avatar in C:\wamp\www\gallerie\phpadd\admin\ciblesupp.php on line 98

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    unlink ('../avatar/'. $avatar);

  18. #18
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    Citation Envoyé par tatutatu2009 Voir le message
    oui je l'ai essayer ca m'a aussi générer une erreur

    Warning: unlink(../avatar/) [function.unlink]: Permission denied in C:\wamp\www\gallerie\phpadd\admin\ciblesupp.php on line 98

    Notice: Undefined variable: avatar in C:\wamp\www\gallerie\phpadd\admin\ciblesupp.php on line 98

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    unlink ('../avatar/'. $avatar);
    mais $avatar n'existe pas, je pense que y'a de grosse lacune en PHP la, apprend les bases avant de te lancer dans un projet...

  19. #19
    Nouveau membre du Club
    Inscrit en
    Février 2009
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 75
    Points : 35
    Points
    35
    Par défaut
    non j'ai pas mis le code en entier
    j'ai fais ce code pour récupérer la variable avatar correspondant à l'utilisateur et j'ai eu l'erreur que j'ai cité précédement
    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
    <?php
     
    try
    {
    	$bdd = new PDO('mysql:host=localhost;dbname=gallerie', 'root', '');
    }
    catch(Exception $e)
    {
    	die('Erreur : '.$e->getMessage());
    }
     
    if(!empty($_GET['username'])) { }
    $username = $_GET['username'] ;
    $req = $bdd->prepare("SELECT * FROM user WHERE username = :username") or die(print_r($bdd->errorInfo()));
    	$req->bindParam(':username', $username, PDO::PARAM_INT);
    	$req->execute();
     
    $utilisateur = $req->rowCount();
     
    if($utilisateur == '1')
    { 	
    	$data = $req->fetch();	
    	$req = $bdd->prepare("DELETE FROM user WHERE  username = :username") or die(print_r($bdd->errorInfo()));
    	$req->bindParam(':username', $username, PDO::PARAM_INT);
    	$req->execute();
     
    	$req2 = $bdd->prepare("select avatar FROM user WHERE  username = :avatar") or die(print_r($bdd->errorInfo()));
    	$req2->bindParam(':avatar', $username, PDO::PARAM_INT);
    	$req2->execute();
     
     
    	unlink ('../avatar/'. $avatar);
     
     
    	echo "<h5 style='text-align:center;color:#FFF'> L'utilisateur a été supprimé avec succés ! </h5>";	
    }
    else 
    {
    echo "<h5 style='text-align:center;color:#FFF'> L'utilisateur sélectionné n'existe pas !</h5>";
    }
    ?>

  20. #20
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    non mais la c'est ridicule, pourquoi tu va pas cherche avatar dans la première requete ?

    EDIT : y'a plein de choses qui ne vont pas dans ton code

    - if(!empty($_GET['username'])) { }
    pourquoi les accolades ? la condition est inutile ducoup

    - pourquoi le username serai binder de type INT ???
    - pourquoi faire : $utilisateur == '1' alors que la '$utilisateur' est du type int
    - le unlink n'est même pas vérifie, au moins si le fichier existe et ensuite si t'as les droits dessus, un is_writable ferait l'affaire

    - le else vide a la fin est inutile aussi

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Formulaire d'envoie d'une image
    Par Nowwis dans le forum Langage
    Réponses: 9
    Dernier message: 04/08/2009, 11h24
  2. Envoi d'une image par e-mail depuis un formulaire
    Par caradhras dans le forum Langage
    Réponses: 2
    Dernier message: 25/09/2008, 19h13
  3. Affichage d'une image dans un formulaire.
    Par ludolan dans le forum IHM
    Réponses: 4
    Dernier message: 09/09/2006, 18h43
  4. Réponses: 3
    Dernier message: 19/01/2006, 14h08
  5. insérer une image dans un formulaire
    Par roms1 dans le forum IHM
    Réponses: 5
    Dernier message: 23/11/2005, 16h27

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