Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/04/2011, 20h26   #1
Invité régulier
 
Inscription : février 2009
Messages : 69
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 69
Points : 6
Points : 6
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 :
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; 
 
    }
}
tatutatu2009 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2011, 21h35   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
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
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2011, 22h01   #3
Invité régulier
 
Inscription : février 2009
Messages : 69
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 69
Points : 6
Points : 6
mon dossier avatar est sous:
C:\wamp\www\gallerie\phpadd\avatar
ma page php
C:\wamp\www\gallerie\phpadd\admin\
tatutatu2009 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2011, 22h07   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
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
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2011, 22h23   #5
Invité régulier
 
Inscription : février 2009
Messages : 69
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 69
Points : 6
Points : 6
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 :
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
tatutatu2009 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2011, 22h40   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
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
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2011, 22h48   #7
Invité régulier
 
Inscription : février 2009
Messages : 69
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 69
Points : 6
Points : 6
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
tatutatu2009 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2011, 22h52   #8
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
vérifie juste le path, et la tu cherches a supprimer

gallerie/phpadd/avatar/cc
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2011, 22h58   #9
Invité régulier
 
Inscription : février 2009
Messages : 69
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 69
Points : 6
Points : 6
waw

j'ai rien compris
etape par étape svp
tatutatu2009 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2011, 22h59   #10
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
je vois pas ce que tu comprends pas,
regarde ton unlink et réfléchi...
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2011, 23h07   #11
Invité régulier
 
Inscription : février 2009
Messages : 69
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 69
Points : 6
Points : 6
Code :
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
tatutatu2009 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2011, 23h10   #12
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
Citation:
Envoyé par tatutatu2009 Voir le message
Code :
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...
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2011, 23h15   #13
Invité régulier
 
Inscription : février 2009
Messages : 69
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 69
Points : 6
Points : 6
oui vous avez raison mais les images peuvent etre soit jpg soit jpeg soit png
donc j'ai pas su quoi faire
tatutatu2009 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2011, 23h15   #14
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
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
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2011, 23h25   #15
Invité régulier
 
Inscription : février 2009
Messages : 69
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 69
Points : 6
Points : 6
vous pouvez me donnez un exemple svp, je suis encore au premier stade et honnetement j'ai pas beaucoup compris votre conseil
tatutatu2009 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 08/04/2011, 23h44   #16
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
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
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2011, 23h55   #17
Invité régulier
 
Inscription : février 2009
Messages : 69
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 69
Points : 6
Points : 6
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 :
unlink ('../avatar/'. $avatar);
tatutatu2009 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2011, 00h00   #18
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
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 :
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...
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2011, 00h06   #19
Invité régulier
 
Inscription : février 2009
Messages : 69
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 69
Points : 6
Points : 6
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 :
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>";
}
?>
tatutatu2009 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2011, 00h10   #20
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
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
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h35.


 
 
 
 
Partenaires

Hébergement Web