PHP image pour membre

Fermé
funkeen Messages postés 204 Date d'inscription mardi 14 décembre 2010 Statut Membre Dernière intervention 12 novembre 2011 - 8 août 2011 à 20:56
funkeen Messages postés 204 Date d'inscription mardi 14 décembre 2010 Statut Membre Dernière intervention 12 novembre 2011 - 9 août 2011 à 13:24
Bonjour, je m'entraine beaucoup au php en ce moment, donc j'ai fait un espace membre avec une table qui comporte =id, pseudo, pass, mail, img
Je sais faire un upload d'image, pour etre plus précis je sais affiche le fichier ki a ete uploader, mais cette fois jaimerais faire pareil, mais au lieu que l'image s'affiche, elle s'enregistre dans la base de donnes, donc quoi changer et rajouter dans ce code =

<form method="post" action="up.php" enctype="multipart/form-data">
<input type="file" name="img"/></br>
<input type="submit"/></br>
</form>
<?php
$var1 = array('image/jpeg');
if(isset($_FILES['img'])){
if(in_array($_FILES['img']['type'], $var1)){

$var2 = file_get_contents($_FILES['img']['tmp_name']);
$var3 = base64_encode($var2);
echo '<img src="data:'.$_FILES['img']['type'].';base64,'.$var3.'" />';
}
}
?>


MERCI D'AVANCE



A voir également:

4 réponses

avion-f16 Messages postés 19252 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 10 février 2025 4 505
8 août 2011 à 21:16
Pas bien de copier/coller le script que je t'ai donné en changeant le nom des variables :)

Cette méthode sert uniquement lorsque tu ne désires pas enregistrer le fichier sur le serveur ! Ce qui n'est pas ton cas.

Dans ton autre sujet, j'avais faire une réponse complète avec quelques liens, mais il semble qu'elle soit en attente de validation à cause de ce nombre de liens.

Je vais essayer de réécrite la même chose ;

La variable $_FILES['img'] est elle-même un tableau contenant ces informations :
* size : la taille du fichier en octets. 1Ko = 1024 octets. 1Mo = 1024^2 = 1048576
* tmp_name : chemin vers le fichier temporaire (car il n'est pas enregistré définitivement lors de l'envoie). Le nom de ce fichier n'a rien à voir avec celui d'origine, je pense même qu'il perd l'extension. Il servira plus tard.
* name : le nom du fichier d'origine
* error : contient un nombre entier représentant une erreur.
Il existe des constantes pour chacun de ces nombres.
https://www.php.net/manual/fr/features.file-upload.errors.php
* type : Le type MIME du fichier. Pour les images, ça commence obligatoirement par « images/ ».

Une fois les vérifications faites (taille, extension et type mime), tu peux sauvegarder définitivement le fichier. Pour cela, il faut utiliser la fonction move_uploaded_file. Cette fonction prend deux arguements, dans l'ordre : le chemin vers le fichier temporaire et le chemin définitif.
Par exemple :
move_uploaded_file($_FILES['image']['tmp_name'], 'images/avatars/'.$_FILES['image']['name']);

Le problème avec le code ci-dessus, c'est qu'il est possible de remplacer les images des autres membres. Je te conseille de renommer les fichiers aléatoirement (uniqid) ou avec le pseudo/id du membre.
Pour récupérer l'extension, tu peux utiliser pathinfo($_FILES['image']['name']) qui te retournera un tableau, dont l'entrée 'extension' vaut ... l'extension.

Il faut ensuite mettre à jour la table en indiquant le nom de l'image.
Lorsque tu afficheras les données du membre, tu pourras récupérer le nom de l'image et l'utiliser pour générer la balise <img />.
2
funkeen Messages postés 204 Date d'inscription mardi 14 décembre 2010 Statut Membre Dernière intervention 12 novembre 2011 5
8 août 2011 à 22:24
mais l'image je doit l'enregistre dans un dossier et apres je l'integre dans phpmyadmin et la je peut l'integrer au membre ?
0
avion-f16 Messages postés 19252 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 10 février 2025 4 505
8 août 2011 à 22:36
Oui, tu l'enregistres dans le dossier que tu veux.

L'intégrer dans phpMyAdmin, c'est-à-dire ?
PMA n'est qu'un utilitaire qui te permet de gérer MySQL, les bases de données n'y sont pas stockées !
Mais il faudra ajouter une colonne « avatar » à la table « membres » afin d'y stocker le nom de l'image.
0
funkeen Messages postés 204 Date d'inscription mardi 14 décembre 2010 Statut Membre Dernière intervention 12 novembre 2011 5
9 août 2011 à 12:42
en gros ca fait ca =
le mec upload l'image, ca l'enregistre dans un dossier, apres je met le nom de l'image dans la colone image, celle du mec en question, et la avec $_SESSION sur sa page membre j'affiche l'image c ca ?
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
9 août 2011 à 12:53
Pas forcement besoin de faire plein de variable de session. Tu peux en faire une seule au moment de la connexion du membre qui contient par exemple l'id du membre ou son pseudo pour tu pourras utiliser par la suite avec des requêtes.
Sur la page membre il te suffira alors de placer une requête pour afficher l'ensemble des données du membre dont son avatar.
0
funkeen Messages postés 204 Date d'inscription mardi 14 décembre 2010 Statut Membre Dernière intervention 12 novembre 2011 5
9 août 2011 à 13:03
ok merci ! tenez cette page au jus j'aurais surement d'autres questions si je bloque !
0
arthezius Messages postés 3538 Date d'inscription jeudi 15 mai 2008 Statut Membre Dernière intervention 11 septembre 2016 475
9 août 2011 à 13:06
Pas de souci. Hésite pas en cas de besoin. On est là pour ça!
0
funkeen Messages postés 204 Date d'inscription mardi 14 décembre 2010 Statut Membre Dernière intervention 12 novembre 2011 5
9 août 2011 à 13:24
merci merci
0