|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 17 ![]() |
Bonjour,
Je ne trouve pas depuis quelques temps, je cherche à permettre à mes clients d'une boutique d'uploader leurs photos. J'aimerais que les photos soient stockées dans un répertoire de mon serveur et que la photo uploadée soit associée dans un champs de ma table suivante pour qu'elle corresponde au client qui l'a uploadé : id_customer id_gender email passwd birthday lastname newsletter firstname Ou alors dans une autre table et la lier à la table au dessus. De ce fait je pourrais afficher où je veux la photo en fonction du client sur mon site. D'après le même système que les avatars. Le problème c'est que je ne vois vraiment pas comment je pourrais faire car je ne m'y connais pas assez en php/mysql pour écrire moi même le code. Donc si vous pourriez m'aider ou si vous connaissez un script déjà existant... Merci d'avance si vous preniez le temps de m'aider car je ne trouve pas. |
|
|
00
|
|
|
#2 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Hello
Ce que tu cherches à faire est assez simple; il te faut une table users et une table users_files ou tu stocke l'id de l'utilisateur et le path du fichier (si tu peux stocker le mime et des commentaires c'est encore mieux).
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
10
|
|
|
#3 | |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 17 ![]() |
Ok merci infiniment pour cette réponse détaillée. Je comprends mieux grâce à ton schéma.
J'ai déjà ma table customers, le problème c'est que je ne comprends pas comment faire ça : Citation:
D'autant que ça se complique beaucoup plus étant donné que la boutique (Prestashop) utilise le smarty et que le mieux serait de ne pas toucher aux fichiers core system. J'suis un peu perdu Ton tuto sur SDZ m'est vraiment très utile mais j'ai entendu dire qu'il pouvait y avoir des failles de sécurité ?! |
|
|
|
00
|
|
|
#4 | |||||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Citation:
On peut (et je te le recommande) sécuriser cette association au moyen d'une contrainte sur la clé étrangère users_id - une clé étrangère est un attribut d'une table qui provient d'une autre table, dans notre exemple, users_id est en fait l'attribut id de la table users, on doit donc s'assurer que chaque users_id présent dans users_files, on a bien un id correspondant dans la table users, sinon on risque de se retrouver avec des entrées orphelines dans la table users_id. Citation:
- mon site - page utilisateurs > gestion des images - boutique - une autre section (blog par exemple) Citation:
-- Edit: voici ce à quoi devrait ressembler ton SQL de création des tables: Code :
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|||||
|
10
|
|
|
#5 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 17 ![]() |
Merci beaucoup je suppose qu'avec ce que tu m'as donné en SQL, la relation est déjà intégré car c'est en partie ce que je n'arrivais pas à faire.
Je n'avais pas vu qu'il y avait une rubrique Prestashop, en fait j'essaie de créer mon propre module qui puisse ajouter la gestion des images. Pour tout te dire j'essaie d'insérer un mini réseau social à la boutique (avatar, friend requests,...) mais le tout incorporé à ma boutique. J'ai appris à créer un module sous Prestashop mais je ne comprends pas techniquement comment je pourrais le réaliser. Car un module Prestashop c'est : un folder (module) qui contient en général module.php et module.tpl qui est le fichier template mais qui contient aussi du php et du html. Je vais déjà essayer de modifier ma table SQL customers avec ce que tu m'as donné. Je ne saurais comment te remercier
|
|
|
00
|
|
|
#6 | ||||||||||||||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Citation:
Code :
Citation:
Pour t'aider voici un exemple de requête qui liste les fichiers uploadés par un utilisateur (qu'on connait par son name): Code :
Code :
Produit: Code :
Avec MySQL, comme avec la plupart des SGBD relationnelles, il est possible de créer des vues de données pour abstraire la complexité de certaines requêtes. Dans notre cas, on va s'en servir pour faciliter la requête que je viens de te donner: Code :
Code :
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
||||||||||||||
|
10
|
|
|
#7 | ||
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 17 ![]() |
Hmmm ok vu comme ça j'ai compris. Je dois donc créer la vue get_users_files pour me faciliter la relation entre les 2 autres.
J'ai plusieurs questions à te poser : 1-Peut-on mettre le nom d'index que l'on veut ? 2- Code sql :
3- Ensuite je crée la vue avec ? Et après je suis le tuto de SDZ pour savoir comment uploader dans un répertoire et que le path se mette dans la variable correspondante c'est ça ? Et au final je pourrais positionner l'image du client en affichant la variable path ? Désolé si mes questions peuvent paraître débiles, autant XHTML/CSS je maîtrise mais PHP/MYSQL je fais noob |
||
|
|
00
|
|
|
#8 | ||||||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Citation:
Citation:
Citation:
Tu vas utiliser move_uploaded_file pour ça en spécifiant le chemin de destination (là ou tu veux poser tes fichiers). Petit rappel; PHP mets par défaut les fichiers uploadés dans un répertoire temporaire avec un nom temporaire, ceci afin d'éviter qu'un utilisateur malicieux ne puisse aller éxécuter un script coté serveur en conaissant ce path (qui généralement reste inchangé sur une plateforme). Il t'appartient de déplacer ce fichier (avec la fonction cité ci-dessus) et de lui remettre le bon nom - dans ton cas je te suggère d'en générer un. Citation:
Code :
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
||||||
|
10
|
|
|
#9 | ||
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 17 ![]() |
Code :
J'ai pas compris le "fichier.ext" que tu mets dans les balise img, est ce que je ne pourrais pas afficher tout simplement la variable $path ? <img src=$path_user> ou quelque chose comme ça ? |
||
|
|
00
|
|
|
#10 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Si bien sûr, mais ça produira chez le client ce que je t'ai donné en exemple.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
10
|
|
|
#11 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 17 ![]() |
Ok parfait et pour ma table qu'est ce tu en penses ? Ca donnerait quoi la requête avec une autre table ps_customer_files ?
Car je vois pas à quoi ça correspond les u. et f. Merci encore après ça j'aurai tous les éléments nécessaires |
|
|
00
|
|
|
#12 | |||||||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
ça donnerai quelque chose dans ce goût là:
Code :
Tu peux ajouter des champs à ta convenance comme la date d'envoi ou la taille du fichier etc. Citation:
Code :
Note; ce n'est pas une convention, si tu n'en a pas l'usage (parce que par exemple tu n'utilise qu'une seule table), libre à toi de ne pas t'en servir. Donc pour résumer: Code :
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|||||||
|
10
|
|
|
#13 | ||||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Une requête qui joindrait les deux tables 'ps_customer' et 'ps_customer_file' pourrait être:
Code :
Pour la vue, c'est simple: Code :
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
||||
|
10
|
|
|
#14 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 17 ![]() |
Merci beaucoup pour toutes ces informations, tu te gaves
![]() Maintenant que j'ai compris je vais passer à la pratique et ça risque d'être une autre histoire... Merci encore Benjamin ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com