Systeme d'avatar
Résolu/Fermé
Kearnen
Messages postés
36
Date d'inscription
jeudi 4 juin 2015
Statut
Membre
Dernière intervention
13 juin 2015
-
4 juin 2015 à 21:05
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 - 8 juin 2015 à 21:22
jordane45 Messages postés 38314 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 - 8 juin 2015 à 21:22
A voir également:
- Systeme d'avatar
- Restauration systeme - Guide
- Avatar facebook - Guide
- Comment refaire le système d'un ordinateur - Guide
- Avatar whatsapp gratuit - Accueil - WhatsApp
- Cloner disque systeme - Guide
16 réponses
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
4 juin 2015 à 21:33
4 juin 2015 à 21:33
Bonjour,
1 - On ne stocke pas les fichiers / images DANS la BDD .... on les mets dans un répertoire du serveur ... et on ne stocke en BDD .."que" le chemin pour y accéder.
2 -
Si tu ne nous montres pas ton code ... impossible pour nous de t'aider....
**** Attention ****
Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
.
1 - On ne stocke pas les fichiers / images DANS la BDD .... on les mets dans un répertoire du serveur ... et on ne stocke en BDD .."que" le chemin pour y accéder.
2 -
j'ai trouver des trucs mais je ne sais pas pourquoi sa ne marche pas
Si tu ne nous montres pas ton code ... impossible pour nous de t'aider....
**** Attention ****
Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
.
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
4 juin 2015 à 22:52
4 juin 2015 à 22:52
Je me reconnecte demain la je deco donc a demain si t'es toujours là :)
Ben je suis là quasiment tous les jours... 12 heures par jour ^^
donc y'a des chances ;-)
Donc par contre... tu utilises l'ancienne extension mysql_* ... elle est considérée comme obsolète.
Il serait préférable de passer à une extension plus récente comme mysqli_* ou (je préfère...) PDO !
Voici un peu de lecture sur le sujet : https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top
Quoi qu'il en soit .. et quelque soit l'extension que tu utiliseras .. il faudra donc faire une requête pour pouvoir insérer les données dans ta BDD.
Pour pouvoir t'aider à la faire .. il faudra que tu nous donnes la structure de ta table...
Dans l'idéal .. tu ajoutes (si ce n'est pas déjà fait) un champ "avatar" de type varchar(255) qui servira à stocker le nom du fichier.
Il faudra également que tu nous montres le code que tu as utilisé pour l'upload (des fois que tu aies changé des choses par rapport au code que je t'ai proposé dans le lien).
à partir de là .. on pourra finaliser ton code.
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
4 juin 2015 à 21:53
4 juin 2015 à 21:53
c'est lequel le code que tu veux ?
Un de ceux que tu as essayé pour uploader les fichiers sur ton serveur (car oui..il faut commencer par ça )
Car en gros ...
en 1 tu upload l'avatar sur le serveur
Une fois l'upload réalisé ... tu stockes (via un requête de type INSERT ) le nom du fichier que tu as uploadé ( et donc...qui a été mis dans un répertoire de ton serveur) dans la BDD
et voilou.. c'est tout.
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
4 juin 2015 à 21:54
4 juin 2015 à 21:54
Voici un exemple d'upload de fichier :
https://www.commentcamarche.net/faq/889-php-upload-de-fichiers
ou encore :
http://phpcodeur.net/articles/php/upload
https://www.commentcamarche.net/faq/889-php-upload-de-fichiers
ou encore :
http://phpcodeur.net/articles/php/upload
Kearnen
Messages postés
36
Date d'inscription
jeudi 4 juin 2015
Statut
Membre
Dernière intervention
13 juin 2015
1
Modifié par jordane45 le 4/06/2015 à 22:01
Modifié par jordane45 le 4/06/2015 à 22:01
D'accord tiens :
EDIT : Ajout du LANGAGE dans les balises de code
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
.
<?php if(isset($_POST['submit'])) { $avatar = $_FILES['avatar']['name']; $avatar_tmp = $_FILES['avatar']['tmp_name']; if(!empty($avatar)) { $image_ext = strtolower(end(explode('.',$avatar))); if(in_array($image_ext,array('jpg','jpeg','png','gif'))) { modifier_image_profile($avatar_tmp,$avatar); header("Location: ../membre/"); }else{ echo"<center><h3><br><br><br><br>Veuillez saisir une image valide</h3></center>"; } } } ?>
EDIT : Ajout du LANGAGE dans les balises de code
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
4 juin 2015 à 22:07
4 juin 2015 à 22:07
Ok.
Et qu'est-ce qui ne marche pas ?
As tu essayé de faire un PRINT de la variable $_FILES pour voir ce qu'elle contient ?
Et ... que contient le code de ta fonction : modifier_image_profile ?
C'est elle qui doit contenir le "stockage" sur le serveur ainsi que l'insertion en BDD...
Et qu'est-ce qui ne marche pas ?
As tu essayé de faire un PRINT de la variable $_FILES pour voir ce qu'elle contient ?
<?php //---------------------------------------------------------// // le temps des tests : //---------------------------------------------------------// echo "<br><br> POST : <br>"; print_r($_POST); echo "<br><br> FILES : <br>"; print_r($_FILES); echo "<br>"; //---------------------------------------------------------// if(isset($_POST['submit'])) { $avatar = $_FILES['avatar']['name']; $avatar_tmp = $_FILES['avatar']['tmp_name']; if(!empty($avatar)) { $image_ext = strtolower(end(explode('.',$avatar))); if(in_array($image_ext,array('jpg','jpeg','png','gif'))){ modifier_image_profile($avatar_tmp,$avatar); header("Location: ../membre/"); }else{ echo"<center> <h3><br><br><br><br>Veuillez saisir une image valide</h3> </center>"; } }else{ echo"<center> <h3>Erreur : Aucune image n'a été selectionnée !</h3> </center>"; } } ?>
Et ... que contient le code de ta fonction : modifier_image_profile ?
C'est elle qui doit contenir le "stockage" sur le serveur ainsi que l'insertion en BDD...
Kearnen
Messages postés
36
Date d'inscription
jeudi 4 juin 2015
Statut
Membre
Dernière intervention
13 juin 2015
1
4 juin 2015 à 22:12
4 juin 2015 à 22:12
Le lien du code que tu m'as donné ( http://phpcodeur.net/articles/php/upload ) l'upload marche bien mais comment je fait si je veux que le fichier qui a été upload sa change l'image de profil du membre ?
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
4 juin 2015 à 22:23
4 juin 2015 à 22:23
Comme je te l'ai dit ...
Une fois l'image uploadée sur le serveur ... il faut stocker son chemin dans ta BDD....
Si aucun avatar existe pour le user .. tu fais un INSERT ..... sinon .. tu fais un UPDATE.
(ou éventuellement un REPLACE => https://dev.mysql.com/doc/refman/8.0/en/replace.html )
Une fois l'image uploadée sur le serveur ... il faut stocker son chemin dans ta BDD....
Si aucun avatar existe pour le user .. tu fais un INSERT ..... sinon .. tu fais un UPDATE.
(ou éventuellement un REPLACE => https://dev.mysql.com/doc/refman/8.0/en/replace.html )
Kearnen
Messages postés
36
Date d'inscription
jeudi 4 juin 2015
Statut
Membre
Dernière intervention
13 juin 2015
1
>
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 juin 2015 à 22:24
4 juin 2015 à 22:24
Je sais pas faire sa, si tu pouvais m'aider :/
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
4 juin 2015 à 22:28
4 juin 2015 à 22:28
Je sais pas faire sa, si tu pouvais m'aider :/
Tout d'abord .. il faut qu'on sache comment tu te connectes à ta BDD dans tes scripts PHP ..
Tu utilises quoi : mysql_* , mysqli_* ou PDO pour te connecter à ta Base Mysql ?
=> Montres nous ton code de connexion à ta BDD
Kearnen
Messages postés
36
Date d'inscription
jeudi 4 juin 2015
Statut
Membre
Dernière intervention
13 juin 2015
1
4 juin 2015 à 22:40
4 juin 2015 à 22:40
Tiens voilà :
Je me reconnecte demain la je deco donc a demain si t'es toujours là :)
mysql_connect('', '', '');
mysql_select_db('');
Je me reconnecte demain la je deco donc a demain si t'es toujours là :)
Kearnen
Messages postés
36
Date d'inscription
jeudi 4 juin 2015
Statut
Membre
Dernière intervention
13 juin 2015
1
Modifié par jordane45 le 6/06/2015 à 17:55
Modifié par jordane45 le 6/06/2015 à 17:55
Re :) alors pour la colonne avatar c'est fait j'ai mis en varchar 255, ensuite pour l'extension mysql_ , un peu la flemme de la changer, je la change que si je suis obligé ^^ ensuite voici le code du bouton pour upload :
Et le code pour l'upload :
Voilà en espérant que tu me répondes vite :p
EDIT : Ajout du LANGAGE dans les balises de code
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
.
<form method="post" enctype="multipart/form-data" action="upload.php"> <p> <input type="file" name="fichier" size="30"> <br><br><input type="submit" name="upload" value="Uploader"> </p> </form>
Et le code pour l'upload :
<?php if( isset($_POST['upload']) ) // si formulaire soumis { $content_dir = 'upload/'; // dossier où sera déplacé le fichier $tmp_file = $_FILES['fichier']['tmp_name']; if( !is_uploaded_file($tmp_file) ) { exit("Le fichier est introuvable"); } // on vérifie maintenant l'extension $type_file = $_FILES['fichier']['type']; if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') ) { exit("Le fichier n'est pas une image"); } // on copie le fichier dans le dossier de destination $name_file = $_FILES['fichier']['name']; if( !move_uploaded_file($tmp_file, $content_dir . $name_file) ) { exit("Impossible"); } echo "Le fichier a bien été uploadé"; } ?>
Voilà en espérant que tu me répondes vite :p
EDIT : Ajout du LANGAGE dans les balises de code
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
.
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
Modifié par jordane45 le 6/06/2015 à 18:03
Modifié par jordane45 le 6/06/2015 à 18:03
Donc... si l'upload se fait correctement... il ne reste plus qu'à insérer le chemin en base.
NB : Il faudra penser à passer également l' id de ton user dans ton formulaire pour savoir à qui tu affectes l'avatar.
Pour cela.. tu peux utiliser un champ input hidden
par exemple :
Cordialement,
Jordane
<?php $id_user = isset($_POST['id_user'])?$_POST['id_user']:NULL; if($id_user){ if( isset($_POST['upload']) ) { // si formulaire soumis $content_dir = 'upload/'; // dossier où sera déplacé le fichier $tmp_file = $_FILES['fichier']['tmp_name']; if( !is_uploaded_file($tmp_file) ) { exit("Le fichier est introuvable"); } // on vérifie maintenant l'extension $type_file = $_FILES['fichier']['type']; if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') ) { exit("Le fichier n'est pas une image"); } // on copie le fichier dans le dossier de destination $name_file = $_FILES['fichier']['name']; if( !move_uploaded_file($tmp_file, $content_dir . $name_file) ) { exit("Impossible"); }else{ // ICI tu places le code qui va insérer en BDD ! //par exemple : $sql = "UPDATE tatableusers SET avar = '$name_file' WHERE id_user = '$id_user'"; mysql_query($sql); echo "Le fichier a bien été uploadé"; } } }else{ echo " Erreur ! Aucun ID_USER défini ! "; } ?>
NB : Il faudra penser à passer également l' id de ton user dans ton formulaire pour savoir à qui tu affectes l'avatar.
Pour cela.. tu peux utiliser un champ input hidden
par exemple :
<form method="post" enctype="multipart/form-data" action="upload.php"> <p> <input type="hidden" name="id_user" value="<?php echo $id_user;?>"> <input type="file" name="fichier" size="30"> <br><br><input type="submit" name="upload" value="Uploader"> </p> </form>
Cordialement,
Jordane
Kearnen
Messages postés
36
Date d'inscription
jeudi 4 juin 2015
Statut
Membre
Dernière intervention
13 juin 2015
1
6 juin 2015 à 18:44
6 juin 2015 à 18:44
Quand j'essaie sa me dit : Erreur ! Aucun user_id défini
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
6 juin 2015 à 19:36
6 juin 2015 à 19:36
A quel momment affiches tu le formulaire pour Uploadé l'avatar ?
Quel est le code COMPLET de cette page
celle qui contient :
.... et dans laquelle tu dois normalement récupérer l'ID de ton USER ... et le mettre dans l'input Hidden
Quel est le code COMPLET de cette page
celle qui contient :
<form method="post" enctype="multipart/form-data" action="upload.php"> <p> <input type="hidden" name="id_user" value="<?php echo $id_user;?>"> <input type="file" name="fichier" size="30"> <br><br><input type="submit" name="upload" value="Uploader"> </p> </form>
.... et dans laquelle tu dois normalement récupérer l'ID de ton USER ... et le mettre dans l'input Hidden
Kearnen
Messages postés
36
Date d'inscription
jeudi 4 juin 2015
Statut
Membre
Dernière intervention
13 juin 2015
1
Modifié par jordane45 le 7/06/2015 à 18:58
Modifié par jordane45 le 7/06/2015 à 18:58
Tiens le code complet de la page :
EDIT : Ajout du LANGAGE dans les balises de code
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
<?php session_start(); //--------------------------------------------------------- // Requires fichiers database //--------------------------------------------------------- $titre = 'Profil'; require_once ("../jointures/head.php"); ?> <div class="container"> <?php require_once("../jointures/header.php"); ?> </div> <?php if(isset($_SESSION['username'])) { ?> <br><br><br><br><br><br><br><br><center> <h3><center><font color="orange">Changer votre photo de profil</font></center></h3> <center> <br> <img src ="../membre/upload/base.jpg" height="200" width="200" alt="avatar"> <br><br> <form method="post" enctype="multipart/form-data" action="upload.php"> <p> <input type="hidden" name="id_user" value="<?php echo $id_user; ?>"> <input type="file" name="fichier" size="30"> <br><br><input type="submit" name="upload" value="Uploader"> </p> </form> </center> <?php } else { ?> <h3><center> <br><br><br> <a href="../membre/connexion.php">Veuillez vous connecté...</a> </center> <?php } ?> <?php require_once("../jointures/footer.php");?> <?php require_once("../modal/modal.php"); ?>
EDIT : Ajout du LANGAGE dans les balises de code
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
7 juin 2015 à 19:04
7 juin 2015 à 19:04
Dans le code que tu nous montres actuellement...
l'information permettant d'identifier l'utilisateur est la variable de session
... tu peux donc l'utiliser lorsque tu mets à jour l'avatar dans ta BDD.
La requête deviendrait alors un truc du genre :
Et tu peux donc retirer le champ input hidden que je t'ai fait ajouter dans le code de ton formulaire.
l'information permettant d'identifier l'utilisateur est la variable de session
$_SESSION['username']
... tu peux donc l'utiliser lorsque tu mets à jour l'avatar dans ta BDD.
La requête deviendrait alors un truc du genre :
$username = isset($_SESSION['username'])?$_SESSION['username']:NULL; if ($username){ $sql = "UPDATE tatableusers SET avar = '$name_file' WHERE username = '$username'"; }else{ echo "<br> Erreur ! Aucun USERNAME ! "; }
Et tu peux donc retirer le champ input hidden que je t'ai fait ajouter dans le code de ton formulaire.
Kearnen
Messages postés
36
Date d'inscription
jeudi 4 juin 2015
Statut
Membre
Dernière intervention
13 juin 2015
1
7 juin 2015 à 19:43
7 juin 2015 à 19:43
Sa marche tjs pas tiens le code de mon upload.php :
<?php
$username = isset($_POST['username'])?$_POST['username']:NULL;
if($username){
if( isset($_POST['upload']) ) { // si formulaire soumis
$content_dir = 'upload/'; // dossier où sera déplacé le fichier
$tmp_file = $_FILES['fichier']['tmp_name'];
if( !is_uploaded_file($tmp_file) ) {
exit("Le fichier est introuvable");
}
// on vérifie maintenant l'extension
$type_file = $_FILES['fichier']['type'];
if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') ) {
exit("Le fichier n'est pas une image");
}
// on copie le fichier dans le dossier de destination
$name_file = $_FILES['fichier']['name'];
if( !move_uploaded_file($tmp_file, $content_dir . $name_file) ) {
exit("Impossible");
}else{
// ICI tu places le code qui va insérer en BDD !
//par exemple :
$sql = "UPDATE users SET avatar = '$name_file' WHERE username = '$username'";
mysql_query($sql);
echo "Le fichier a bien été uploadé";
}
}
}else{
echo " Erreur ! Aucun Username défini ! ";
}
?>
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
7 juin 2015 à 20:06
7 juin 2015 à 20:06
.. et quelle est la structure de la table ?
Kearnen
Messages postés
36
Date d'inscription
jeudi 4 juin 2015
Statut
Membre
Dernière intervention
13 juin 2015
1
7 juin 2015 à 20:10
7 juin 2015 à 20:10
id, username, prenom, password, email, avatar, signup_date, region, friends Voilà
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
8 juin 2015 à 09:54
8 juin 2015 à 09:54
Ok ...
Tu peux modifier le code par ceci :
NB : Penses à modifier le nom de ta table ( tatable ) dans la requête ... par le nom de TA TABLE dans ta BDD !
Tu as également oublié de changer la première ligne par :
Tu peux modifier le code par ceci :
// ICI tu places le code qui va insérer en BDD ! //par exemple : $sql = "UPDATE tatable SET avatar = '$name_file' WHERE username = '$username'"; mysql_query($sql) die('Requête invalide : ' . mysql_error() . " <br><br> REQUETE : <br>". $sql);
NB : Penses à modifier le nom de ta table ( tatable ) dans la requête ... par le nom de TA TABLE dans ta BDD !
Tu as également oublié de changer la première ligne par :
$username = isset($_SESSION['username'])?$_SESSION['username']:NULL;
Kearnen
Messages postés
36
Date d'inscription
jeudi 4 juin 2015
Statut
Membre
Dernière intervention
13 juin 2015
1
Modifié par jordane45 le 8/06/2015 à 19:56
Modifié par jordane45 le 8/06/2015 à 19:56
Sa ne marche toujours pas, il y a une page blanche donc une erreur de code, tiens le code :
et le code du formulaire :
EDIT : AJOUT DU LANGAGE DANS LES BALISES DE CODE ! (encore ....)
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Merci d'y penser à l'avenir !
.
<?php $username = isset($_SESSION['username'])?$_SESSION['username']:NULL; if($username){ if( isset($_POST['upload']) ) { // si formulaire soumis $content_dir = 'upload/'; // dossier où sera déplacé le fichier $tmp_file = $_FILES['fichier']['tmp_name']; if( !is_uploaded_file($tmp_file) ) { exit("Le fichier est introuvable"); } // on vérifie maintenant l'extension $type_file = $_FILES['fichier']['type']; if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') ) { exit("Le fichier n'est pas une image"); } // on copie le fichier dans le dossier de destination $name_file = $_FILES['fichier']['name']; if( !move_uploaded_file($tmp_file, $content_dir . $name_file) ) { exit("Impossible"); }else{ // ICI tu places le code qui va insérer en BDD ! //par exemple : $sql = "UPDATE users SET avatar = '$name_file' WHERE username = '$username'"; mysql_query($sql) die('Requête invalide : ' . mysql_error() . " <br><br> REQUETE : <br>". $sql); echo "Le fichier a bien été uploadé"; } } }else{ echo " Erreur ! Aucun Username défini ! "; } ?>
et le code du formulaire :
<form method="post" enctype="multipart/form-data" action="upload.php">
<p>
<input type="hidden" name="username" value="<?php echo $username; ?>">
<input type="file" name="fichier" size="30">
<br><br><input type="submit" name="upload" value="Uploader">
</p>
</form>
EDIT : AJOUT DU LANGAGE DANS LES BALISES DE CODE ! (encore ....)
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Merci d'y penser à l'avenir !
.
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
8 juin 2015 à 20:05
8 juin 2015 à 20:05
Déjà ..merci de penser à ajouter le LANGAGE dans les balises de code.
Cela rend le code plus lisible !
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Ensuite... on va forcer l'affichage des éventuelles erreurs de code php et ajouter un peu de debug.
Dis moi ce que ça donne :
.
PS: Au moment d'exécuter cette page.... quelle est l'adresse qui est indiquée dans ton navigateur internet ?
Cela rend le code plus lisible !
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Ensuite... on va forcer l'affichage des éventuelles erreurs de code php et ajouter un peu de debug.
Dis moi ce que ça donne :
<?php //affichage des erreurs PHP error_reporting(E_ALL); //pour faire un test : echo " <br> TEST !!!! (est-ce que ce message s'affiche sur ta page ??)"; //récupération des données : $username = isset($_SESSION['username'])?$_SESSION['username']:NULL; // dossier où sera déplacé le fichier $content_dir = 'upload/'; if($username){ if( isset($_POST['upload']) ) { // si formulaire soumis if(isset($_FILES['fichier']['tmp_name'])){ $tmp_file = $_FILES['fichier']['tmp_name']; if( !is_uploaded_file($tmp_file) ) { exit("Le fichier est introuvable"); } // on vérifie maintenant l'extension $type_file = $_FILES['fichier']['type']; if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') && !strstr($type_file, 'png') ) { exit("Le fichier n'est pas une image"); } // on copie le fichier dans le dossier de destination $name_file = isset($_FILES['fichier']['name'])?$_FILES['fichier']['name']:NULL; if( !move_uploaded_file($tmp_file, $content_dir . $name_file) ) { exit("Impossible"); }else{ // ICI tu places le code qui va insérer en BDD ! //par exemple : $sql = "UPDATE users SET avatar = '$name_file' WHERE username = '$username'"; mysql_query($sql) or die('Requête invalide : ' . mysql_error() . " <br><br> REQUETE : <br>". $sql); echo "Le fichier a bien été uploadé"; } }else{ echo " Erreur ! La variable FILES['fichier']['tmp_name'] n'existe pas !"; } }else{ echo " Erreur ! La variable 'upload' n'existe pas !"; } }else{ echo " Erreur ! Aucun Username défini ! "; }
.
PS: Au moment d'exécuter cette page.... quelle est l'adresse qui est indiquée dans ton navigateur internet ?
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
8 juin 2015 à 20:16
8 juin 2015 à 20:16
Tu viens de me dire en MP que ça marche toujours pas...
Pourrais tu être plus précis ?
Qu'est-ce qui s'affiche sur la page ?
Quelle est l'URL qui apparait dans la barre d'adresse de ton navigateur ?
Pourrais tu être plus précis ?
Qu'est-ce qui s'affiche sur la page ?
Quelle est l'URL qui apparait dans la barre d'adresse de ton navigateur ?
Kearnen
Messages postés
36
Date d'inscription
jeudi 4 juin 2015
Statut
Membre
Dernière intervention
13 juin 2015
1
8 juin 2015 à 20:19
8 juin 2015 à 20:19
Alors déjà, désolé pour les balises, ensuite l'adresse indiquée quand j'exécute la page c'est : "monsite/membre/upload.php" et le message qui est affiché c'est : "TEST !!!! (est-ce que ce message s'affiche sur ta page ??) Erreur ! Aucun Username défini !"
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
Modifié par jordane45 le 8/06/2015 à 20:26
Modifié par jordane45 le 8/06/2015 à 20:26
On avance ...
La raison du Problème est simple tu (enfin.. ON ) a oublié d'activer les variables de session ..... (A faire DANS TOUTES TES PAGES ! )
ce qui donne :
La raison du Problème est simple tu (enfin.. ON ) a oublié d'activer les variables de session ..... (A faire DANS TOUTES TES PAGES ! )
ce qui donne :
<?php //affichage des erreurs PHP error_reporting(E_ALL); // démarrage des SESSION "propre" if(session_id() == '') { session_start(); } //récupération des données : $username = isset($_SESSION['username'])?$_SESSION['username']:NULL; // dossier où sera déplacé le fichier $content_dir = 'upload/'; if($username){ if( isset($_POST['upload']) ) { // si formulaire soumis if(isset($_FILES['fichier']['tmp_name'])){ $tmp_file = $_FILES['fichier']['tmp_name']; if( !is_uploaded_file($tmp_file) ) { exit("Le fichier est introuvable"); } // on vérifie maintenant l'extension $type_file = $_FILES['fichier']['type']; if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') && !strstr($type_file, 'png') ) { exit("Le fichier n'est pas une image"); } // on copie le fichier dans le dossier de destination $name_file = isset($_FILES['fichier']['name'])?$_FILES['fichier']['name']:NULL; if( !move_uploaded_file($tmp_file, $content_dir . $name_file) ) { exit("Impossible"); }else{ // ICI tu places le code qui va insérer en BDD ! //par exemple : $sql = "UPDATE users SET avatar = '$name_file' WHERE username = '$username'"; mysql_query($sql) or die('Requête invalide : ' . mysql_error() . " <br><br> REQUETE : <br>". $sql); echo "Le fichier a bien été uploadé"; } }else{ echo " Erreur ! La variable FILES['fichier']['tmp_name'] n'existe pas !"; } }else{ echo " Erreur ! La variable 'upload' n'existe pas !"; } }else{ echo " Erreur ! Aucun Username défini ! "; }
Kearnen
Messages postés
36
Date d'inscription
jeudi 4 juin 2015
Statut
Membre
Dernière intervention
13 juin 2015
1
8 juin 2015 à 20:50
8 juin 2015 à 20:50
Sa me donne : Requête invalide : Access denied for user ''@'localhost' (using password: NO)
REQUETE :
UPDATE users SET avatar = 'images.jpg' WHERE username = 'Killer'
Donc faut que je le fasse connecté a la BDD
REQUETE :
UPDATE users SET avatar = 'images.jpg' WHERE username = 'Killer'
Donc faut que je le fasse connecté a la BDD
Kearnen
Messages postés
36
Date d'inscription
jeudi 4 juin 2015
Statut
Membre
Dernière intervention
13 juin 2015
1
8 juin 2015 à 20:54
8 juin 2015 à 20:54
Voilà j'ai réussi :) voilà le resultat affiché : Le fichier a bien été uploadé
et donc voici le code final pour les interéssés :
et donc voici le code final pour les interéssés :
<?php //affichage des erreurs PHP error_reporting(E_ALL); // démarrage des SESSION "propre" if(session_id() == '') { session_start(); } //récupération des données : $username = isset($_SESSION['username'])?$_SESSION['username']:NULL; // dossier où sera déplacé le fichier $content_dir = 'upload/'; if($username){ if( isset($_POST['upload']) ) { // si formulaire soumis if(isset($_FILES['fichier']['tmp_name'])){ $tmp_file = $_FILES['fichier']['tmp_name']; if( !is_uploaded_file($tmp_file) ) { exit("Le fichier est introuvable"); } // on vérifie maintenant l'extension $type_file = $_FILES['fichier']['type']; if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') && !strstr($type_file, 'png') ) { exit("Le fichier n'est pas une image"); } // on copie le fichier dans le dossier de destination $name_file = isset($_FILES['fichier']['name'])?$_FILES['fichier']['name']:NULL; if( !move_uploaded_file($tmp_file, $content_dir . $name_file) ) { exit("Impossible"); }else{ // ICI tu places le code qui va insérer en BDD ! //par exemple : $sql = "UPDATE users SET avatar = '$name_file' WHERE username = '$username'"; mysql_query($sql, $dblink) or die('Requête invalide : ' . mysql_error() . " <br><br> REQUETE : <br>". $sql); echo "Le fichier a bien été uploadé"; } }else{ echo " Erreur ! La variable FILES['fichier']['tmp_name'] n'existe pas !"; } }else{ echo " Erreur ! La variable 'upload' n'existe pas !"; } }else{ echo " Erreur ! Aucun Username défini ! "; }
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
8 juin 2015 à 20:57
8 juin 2015 à 20:57
Je ne vois pas de différence avec le code que je t'ai donné.
Par contre.. oui il faut ajouter la connexion à la BDD.
Pour cela, je t'invite à mettre ton script de connexion à la BDD dans un fichier.. puis à l'inclure au début de ton script ( de préférence avec un REQUIRE_ONCE )
PS: Si la question est résolue..
Merci de ne pas oublier de clôturer le sujet
(en cliquant sur le lien "Marquer comme résolu" qui se trouve sous le titre de la question)
Cordialement,
Jordane
Par contre.. oui il faut ajouter la connexion à la BDD.
Pour cela, je t'invite à mettre ton script de connexion à la BDD dans un fichier.. puis à l'inclure au début de ton script ( de préférence avec un REQUIRE_ONCE )
PS: Si la question est résolue..
Merci de ne pas oublier de clôturer le sujet
(en cliquant sur le lien "Marquer comme résolu" qui se trouve sous le titre de la question)
Cordialement,
Jordane
Kearnen
Messages postés
36
Date d'inscription
jeudi 4 juin 2015
Statut
Membre
Dernière intervention
13 juin 2015
1
Modifié par Kearnen le 8/06/2015 à 21:05
Modifié par Kearnen le 8/06/2015 à 21:05
Parcontre l'image n'est pas affiché, voilà le code que j'ai mis si tu peux me corrigé stp ^^ :
<?php include_once('../membre/lol.php'); // Inclusion de la connexion à MySQL $sql = 'SELECT avatar FROM users WHERE username="'.$_SESSION['username'].'"'; $query = mysql_query($sql, $dblink); // Envoi de la requête à la base de données $avatar = $fetch['avatar']; ?> <img src ="../membre/upload/<?php $avatar; ?>" height="200" width="200" alt="avatar">
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
>
Kearnen
Messages postés
36
Date d'inscription
jeudi 4 juin 2015
Statut
Membre
Dernière intervention
13 juin 2015
8 juin 2015 à 21:11
8 juin 2015 à 21:11
Elle vient d'où ta variable $fetch ??
Normalement... il te faut faire une boucle :
Normalement... il te faut faire une boucle :
<?php require_once('../membre/lol.php'); // Inclusion de la connexion à MySQL $sql = 'SELECT avatar FROM users WHERE username="'.$_SESSION['username'].'"'; $query = mysql_query($sql, $dblink); // Envoi de la requête à la base de données while ($fetch= mysql_fetch_assoc($query)) { $avatar = $fetch['avatar']; echo "<img src ='../membre/upload/$avatar' height='200' width='200' alt='avatar'>"; }
Kearnen
Messages postés
36
Date d'inscription
jeudi 4 juin 2015
Statut
Membre
Dernière intervention
13 juin 2015
1
8 juin 2015 à 21:14
8 juin 2015 à 21:14
Merci de m'avoir corrigé, c'est bon l'image est bien affiché, tu es le meilleur :) Et merci d'avoir consacré autant de temps pour m'aidé :) !
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
8 juin 2015 à 21:22
8 juin 2015 à 21:22
:-)
Si la question est résolue..
Merci de ne pas oublier de clôturer le sujet
(en cliquant sur le lien "Marquer comme résolu" qui se trouve sous le titre de la question)
Cordialement,
Jordane
Si la question est résolue..
Merci de ne pas oublier de clôturer le sujet
(en cliquant sur le lien "Marquer comme résolu" qui se trouve sous le titre de la question)
Cordialement,
Jordane
Kearnen
Messages postés
36
Date d'inscription
jeudi 4 juin 2015
Statut
Membre
Dernière intervention
13 juin 2015
1
4 juin 2015 à 21:42
4 juin 2015 à 21:42
Désolé je suis pas trés fort, tu aurais skype pour parler sa sera plus simple ?
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
4 juin 2015 à 21:48
4 juin 2015 à 21:48
Désolé .. mais
1 - Je ne donne pas mon Skype à n'importe qui (sans connaitre...)
2 - Le FORUM est là pour aider ... pas besoin de chat pour réussir
1 - Je ne donne pas mon Skype à n'importe qui (sans connaitre...)
2 - Le FORUM est là pour aider ... pas besoin de chat pour réussir
Kearnen
Messages postés
36
Date d'inscription
jeudi 4 juin 2015
Statut
Membre
Dernière intervention
13 juin 2015
1
4 juin 2015 à 21:49
4 juin 2015 à 21:49
D'acc pas de problème sinon c'est lequel le code que tu veux ?