|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |
|
Candidat au titre de Membre du Club
![]() Inscription : septembre 2006 Messages : 57 ![]() |
Bonjour,
Je voulais savoir d'où pourrait venir mon erreure. Il se trouve que quand je clique sur le bouton ajouter donnée sur mon site php j'ai une erreure de string dans mon addslashes et la donnée qui s'insère dans ma base est : Array. Voici le message d'erreur sur la page : Citation:
L'image est au fait un lien sur mon FTP. J'ai cherché sur google de l'aide et j'en ai trouvé, mais le problème c'est que plus je modifie cette partie, plus j'ai des erreurs, au fait je comprends pas trop le système. Merci d'avance de l'aide et des informations que vous pourrez me donner. |
|
|
|
00
|
|
|
#2 |
![]() ![]() Alain Sahli Ingénieur développement logiciels Inscription : décembre 2004 Messages : 1 086 ![]() |
si tu fais un simple "echo" du $Image sa t'affiche quoi ?
__________________
Blog - Mon espace developpez - Vous voulez un site internet ? eZ Publish Certified developer |
|
00
|
|
|
#3 |
|
Membre expérimenté
![]() Développeur Web Inscription : avril 2006 Messages : 430 ![]() |
à mon avis, un simple "echo" de $Image va afficher "Array"...
il faudrait que tu fasses un et faire ton addslashes sur l'index que tu veux dans ce tableau...
__________________
Merci à Microsoft pour avoir transformé un métier relativement terne et basé sur une approche bêtement technique et rigoureuse des faits, en challenge quotidien, nécessitant une remise en question permanente à l'échelle du quart d'heure |
|
|
00
|
|
|
#4 |
![]() ![]() Guillaume RossoliniDirecteur technique Inscription : février 2004 Messages : 13 720 ![]() |
Salut
Il y a deux problèmes :
Comment se protéger des failles d'injection ?
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework) Ressources PHP - Ressources Zend Framework |
|
|
00
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() Inscription : septembre 2006 Messages : 57 ![]() |
hello,
Merci pour les réponses qui m'ont appris quelques détails Mais je me disais, peut-être je peux contourner mon soucis différemment, car le but est juste de reprendre une donnée qui se met dans un "input" de type "file". Moi tout ce que je veux c'est prendre le chemin que je met dans le input et le mettre dans ma base. Le seul soucis étant donné que c'est un type "file" j'utilise : $image=$_FILES["identifiant_formulaire"] Et c'est justement cette variable qui me pose un soucis, si je met $_POST au lieu de $_FILES il me dit qu'il trouve pas l'identifiant ( si l'input est un type "text" ca pose pas de soucis ), alors que quand je met FILES la il le trouve, mais me met les bug Array in string :I Sinon ayant testé les différente méthode ce trouvant sur la page "Comment se protéger des failles d'injection ?" j'ai souvent des fatal error Si aucune solution autre que les changements en string s'offre à moi je vous mettrais tous les messages d'erreur, mais le soucis c'est que il y'a tellement de messages différents que je ne sais le quel mettre en fonction de la commande que je met ahah. Bonne journée et POUR LES NULS !!
|
|
|
00
|
|
|
#6 |
![]() ![]() Guillaume RossoliniDirecteur technique Inscription : février 2004 Messages : 13 720 ![]() |
Ok
![]() Il ne faut pas utiliser une fonction mssql_* si tu utilises MySQL par exemple. Utilise la fonction qui correspond à ta base de données, il n'y a toujours qu'un seul choix. Sinon pour $_FILES, j'ai écrit un tutoriel sur les formulaires (cf. ma signature), tu y trouveras quelques exemples. Attention il s'agit d'un cours, pas de code prémâché, l'objectif est que tu comprennes comment faire.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework) Ressources PHP - Ressources Zend Framework |
|
|
00
|
|
|
#7 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : septembre 2006 Messages : 57 ![]() |
Je désespère clairement.
Donc quand on veut mettre un bouton parcourir le seul choix est de mettre un "type = file" et donc par la même occasion obligé de chercher un fichier spécifique sur le disque dure La je trifouille partout et je trouve pas le moyen de mettre un bouton parcourir avec le quel je puisse tout simplement prendre le lien qu'il me donnera une fois que j'aurais cliqué sur "ouvrir". page1.php Code :
Vu que c'est un type=file je suis obligé de mettre $_FILES d'après ce que je constate. Et la variable m'affiche juste le nom de fichier En lisant le tutoriel, je constate que c'est pratiquement pareil que mon code, pour upload une image ca va. Mais quand on veut juste prendre le chemin affiché bah la c'est une autre paire de manche. Aller j'retourne à mes recherches
|
||
|
|
00
|
|
|
#8 |
![]() ![]() Guillaume RossoliniDirecteur technique Inscription : février 2004 Messages : 13 720 ![]() |
Ah, je n'avais pas compris ce que tu cherches à faire. Là je l'ai compris mais je n'ai pas saisi pourquoi tu veux le faire...
![]() Bref. Ce n'est pas prévu par les formulaires car cela n'a pas grand intérêt. Tu es dans un cas très particulier si tu veux envoyer au site Web un chemin d'accès spécifique à ton ordinateur. Pourquoi ne pas simplement mettre un <input type="text" /> et laisser l'utilisateur copier/coller à partir de l'explorateur ? En effet, <input type="file" /> est le seul moyen d'obtenir facilement une boîte de sélection de fichier avec un navigateur Web. Peut-être JavaScript peut-il offrir une solution, mais j'en doute. Une solution alternative est de placer un <input type="file" /> dans ta page et, en utilisant son évènement onchange, utiliser une méthode JavaScript pour copier la valeur dans un <input type="text" />... C'est une solution impropre mais cela peut éviter à ton internaute de faire le copier/coller à la main (ce qui serait pourtant, je pense, la meilleure solution). [Edit] Nous sommes bien loin du problème initial (addslashes())
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework) Ressources PHP - Ressources Zend Framework |
|
|
00
|
|
|
#9 |
|
Candidat au titre de Membre du Club
![]() Inscription : septembre 2006 Messages : 57 ![]() |
Oui en effet nous sommes sorti un peu du contexte ^^
Mais le soucis est que j'ai besoin du input type=file, car il se trouve que je dois laisser a l'utilisateur le choix après ( grâce à des boutons radio ) soit d'upload l'image dans un dossier ( CA ca marche Le système de radio bouton me parrait bien, en tout cas mon petit code "if" fonctionne Par contre dès que je met le radio bouton sur "l'upload de lien", bah la vu que c'est un type=file bah ca pose quelques soucis dans la variable qui prend l'identifiant du formulaire Je suis ouvert à toutes propositions donc ^^ même si je pense être vraiment proche du bute. Si ca ne tenait qu'a moi, il y'aurait longtemps que j'aurais pas fais ce foutu bouton parcourir ^^ |
|
|
00
|
|
|
#10 |
![]() ![]() Guillaume RossoliniDirecteur technique Inscription : février 2004 Messages : 13 720 ![]() |
Ah, ok, tout d'un coup une solution correcte s'ouvre à toi ^^
Évènement onchange de chaque bouton radio : si le bouton est désactivé, alors fais une action. S'il est activé, fais l'autre action. Actions : Lire la valeur de l'input file dans une variable, supprimer (manipulation DOM) l'input file, créer un input text et lui donner la valeur de la variable. ou Lire la valeur de l'input text dans une variable, supprimer (manip DOM) l'input text, créer un input file et lu donner la valeur e la variable. Qu'en dis-tu ?
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework) Ressources PHP - Ressources Zend Framework |
|
|
00
|
|
|
#11 |
|
Candidat au titre de Membre du Club
![]() Inscription : septembre 2006 Messages : 57 ![]() |
Okay ! donc je dois jouer avec mes radio sur la première page afin de modifier le formulaire avant qu'il aille sur la page de traitement si j'ai compris. Moi ca me va comme idée, c'est plutôt logique en plus
Mais bon je dois aller lire des trucs sur les manipulations DOM et le onchange ( car connais rien ). J'espère pas que c'est trop complexe ^^ Car je dois aller vite.
|
|
|
00
|
|
|
#12 |
![]() ![]() Guillaume RossoliniDirecteur technique Inscription : février 2004 Messages : 13 720 ![]() |
C'est 100% JavaScript
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework) Ressources PHP - Ressources Zend Framework |
|
|
00
|
|
|
#13 |
|
Candidat au titre de Membre du Club
![]() Inscription : septembre 2006 Messages : 57 ![]() |
Ca m'embête un peu, car je dois absolument trouver une méthode 100% php moi
C'est vraiment bizarre que dès qu'on met un type=file ce soit si pourri à vouloir en quelque sorte faire juste un copié collé de ce qui s'affiche suite à la recherche du bouton parcourir ( le chemin ) :I Bon j'ai déjà compris le principe du onchange qui est pas très compliqué, mais bon, je stagne un peu. |
|
|
00
|
|
|
#14 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : septembre 2006 Messages : 57 ![]() |
Une question me trotte dans la tête. Est-ce possible de faire une variable qui prenne juste le chemin du champ de l'input de type=file ???
page1.php Code HTML :
Et dans cette page2.php quand je met la variable Code :
$image=$_FILES["cheminImage"]["name"];
|
||
|
|
00
|
|
|
#15 |
![]() ![]() Guillaume RossoliniDirecteur technique Inscription : février 2004 Messages : 13 720 ![]() |
En mettant type="file" tu veux envoyer un fichier. Envoyer le chemin local du fichier n'a aucun intérêt, au contraire c'est un problème de sécurité : le serveur n'a jamais besoin de savoir où se trouvent les fichiers sur l'ordinateur de l'internaute.
Si tu veux y parvenir, il faut mettre un champ type="text" et laisser le soin à l'internaute de copier/coller le chemin de son fichier. Peut-être y a-til une solution JS pour y arriver, mais PHP seul ne te le permettra jamais (puisqu'il est exécuté côté serveur).
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework) Ressources PHP - Ressources Zend Framework |
|
|
00
|
|
|
#16 |
|
Candidat au titre de Membre du Club
![]() Inscription : septembre 2006 Messages : 57 ![]() |
okay
Je vais donc partir sur 2 champs différents, mais j'aurais une dernière question Est-il possible d'interdire l'accès au champ du "type=file" histoire que l'on puisse pas coller de lien dedans, mais forcer la recherche avec le bouton parcourir ? Merci en tout cas d'avoir essayé de m'aider et surtout d'avoir essayé de comprendre mes soucis héhé
|
|
|
00
|
|
|
#17 |
![]() ![]() Guillaume RossoliniDirecteur technique Inscription : février 2004 Messages : 13 720 ![]() |
Dès que tu cherches à obtenir un fonctionnement non standard, tu t'exposes à des problèmes et à des arrachements de cheveux (j'en suis la première victime
). Pourquoi ne pas simplement faire fonctionner comme cela et penser ensuite aux éventuelles améliorations ?
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework) Ressources PHP - Ressources Zend Framework |
|
|
00
|
|
|
#18 |
|
Candidat au titre de Membre du Club
![]() Inscription : septembre 2006 Messages : 57 ![]() |
Ouais je pense je vais rester sur cela, mais !!! Maintenant que j'ai 2 champs je trouve que ca fait moyen moyen et je voudrais faire que 1 des 2 champs disparaisse en fonction du radio bouton que je clique ^^
On vient de me dire que c'est assez facile ( javascript encore ), faut juste savoir de quel côté chercher Par contre je pense que je vais ouvrir un autre topic ailleurs si j'ai encore de la peine la dessus, car la on change souvent de sujet |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com