IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

[SQL] Problème avec file_get_contents


Sujet :

PHP & Base de données

  1. #1
    Membre régulier Avatar de djedje37et28
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 224
    Points : 84
    Points
    84
    Par défaut [SQL] Problème avec file_get_contents
    bonjour à tous , suite à un lien qui m'a été donné dans le forum pour mettre des photos dans la base de donnée, il m'apparait un problème pour les envoyer dans mon formulaire:
    j ai fais dans le formulaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    >nom du fichier d'image 2 :</td><td><input type="file" name="bienimage2" value="<? echo $bienimage2 ?>"  size="50" maxlength="50" />
    qui est envoyé par post sans oublié le multipart...
    et je recois dans une autre page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $img1 = file_get_contents ($_FILES['bienimage']);
    $img2 = file_get_contents ($_FILES['bienimage2']);
    et après dans la requête j ai mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into bienimage2.. value '$img2'
    et j ai ce message Warning: file_get_contents() expects parameter 1 to be string, array given in c:\program files\easyphp1-8\www\immobilier\admin\ajouterbien.php on line 6
    quel paramètre aurais je oublié ?
    je ne suis pas obligé de lui créer un nom a l image???

  2. #2
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Le paramètre $_FILES est un tableau et donc tu passes un tableau à une fonction qui prend comme paramètre une chaine de caractère...Tu vois où est le problème ?

  3. #3
    Membre régulier Avatar de djedje37et28
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 224
    Points : 84
    Points
    84
    Par défaut
    je comprend le problème mais je vois pas comment je peux faire alors pour envoyer mes données car comme c est une photo;
    le $_post ['bienimage'] ne marcherait pas ????

  4. #4
    Membre éclairé Avatar de fallais
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2006
    Messages : 858
    Points : 783
    Points
    783
    Par défaut
    T'aurais pas oublié le ; ?

    Dire Straits, Bob Dylan, Led Zeppelin, the Who, Pink Floyd, AC/DC, Guns & Roses, the Doors, ...
    Nicolas Jaar, Paul Kalkbrenner, Marek Hermann

  5. #5
    Membre régulier Avatar de djedje37et28
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 224
    Points : 84
    Points
    84
    Par défaut
    merci de vos réponses , le fait de ne pas avoir de ; ne change rien a mon affichage même si j'aurai du le mettre!
    en faite je me suis mal exprimé dés le début ,
    si dans un formulaire j ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nom du fichier d'image 10 :><input type="file" name="bienimage10" value="<? echo $bienimage10; ?>"  size="50" maxlength="50" />
    et que dans le formulaire qui traite les valeurs je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $bienimage10=$_POST['bienimage10');
    $img10 = file_get_contents ($_POST['bienimage10']);
    $query="insert into bien (bienimage10) values ('$img10')"
    cela marchera t il ?
    j ai essayé mais ca me renvoye a une erreur concernant cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $bienimage10=$_POST['bienimage10');

  6. #6
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    alors on va reprendre à zero :
    si tu fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print_r($_FILES['bienimage']);
    Tu verras de quoi est composé ta variable et par conséquent tu verras que name contient juste le nom et que tmp_name l'url du fichier.

    Donc ton file_get_contents doit prendre comme paramètre $_FILES['bienimage']['tmp_name']


    Pour ton erreur, tu veux dire que tu la vois pas ???
    Et comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $bienimage10=$_POST['bienimage10');

  7. #7
    Membre régulier Avatar de djedje37et28
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 224
    Points : 84
    Points
    84
    Par défaut
    excuses moi , l'erreur que j'ai faite n'étais pas dans mon code mais en le retapant sur developpez.com j ai omis le ].
    j ai donc fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $bienimage = $_POST['bienimage'];
    $img1 = file_get_contents ($_POST['bienimage']['tmp_name']);
    et dans ma requete j ai fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query = "insert into bien (bienimage) values ('$img1') ";
    mais il me met erreur pour les lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $bienimage = $_POST['bienimage'];
    $img1 = file_get_contents ($_POST['bienimage']['tmp_name']);
    ce morceau de code est valide ??

  8. #8
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Il faut regarder mon code...Il y a pas de POST

  9. #9
    Membre éclairé Avatar de fallais
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2006
    Messages : 858
    Points : 783
    Points
    783
    Par défaut
    Lol ca peur pas marcher, tu veux inserer dans une table mysql le contenu d'un file_get_contents(); d'une image ...

    Tu veux faire quoi en fait ? Explique d'abord en tout lettre ce que tu veux faire et apres on traduit en PHP
    Dire Straits, Bob Dylan, Led Zeppelin, the Who, Pink Floyd, AC/DC, Guns & Roses, the Doors, ...
    Nicolas Jaar, Paul Kalkbrenner, Marek Hermann

  10. #10
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Ouh la j'avais sauté cette information...Pour la récupération c'est bien $_FILES pour avoir le chemin complet de l'image pour ce qui est de l'insertion dans la bdd il me semble que l'on a ce qu'il faut dans les cours : Tutoriel PHP/MySQL : Stocker des images dans MySQL

  11. #11
    Membre régulier Avatar de djedje37et28
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 224
    Points : 84
    Points
    84
    Par défaut
    merci de votre patience!!!

    en faites, je suis parti de se tutorial dès le début car au début j'avais mis un répertoire et dans ma base je stockai juste le chemin d'accès mais c est moins pratique donc je préfére la méthode avec le blob car je pourrai facilement supprimer les photos après!!!

    en faites , j ai fais un formulaire d'insertion de biens immmobilier ou je permet à la personne de renseigner 10 champs images de type blob:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td align="right">nom du fichier d'image 3 :</td><td><input type="file" name="bienimage3" value="<? echo $bienimage3 ;?>"  size="50" maxlength="50" />
    j'envoye tout ( les images , les champs nbre de pièces...) dans une nouvelle page par post dans ajouterbien.php qui doit aller mettre mes 10 photos dans la base.
    cependant je ne fais pas comme dans le tutorial: je veux juste stocker la photo et pouvoir l afficher, je lui donne pas de nom ... comme dans le tutorial .
    ainsi normalement j ai juste un champ blob a envoyer pour chaque photo ?
    du coup j ai utilisé la méthode du tutorial:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $bienimage = $_POST['bienimage'];
    $img3 = file_get_contents ($_POST['bienimage3']['tmp_name']);
    et j ai insert dans ma base la value $img3 pour le champ blob bienimage3.
    le problème c est que ca marche pas !!!
    il me reconnait pas ma valeur que je passe en post .
    voyez vous mon problème ?

  12. #12
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    Salut,

    Un petit effort de lecture t'éviterais de tourner en rond. Les fichiers reçus par un formulaire sont à manipuler avec la variable globale $_FILES et non pas $_POST.

    bbye

  13. #13
    Membre régulier Avatar de djedje37et28
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 224
    Points : 84
    Points
    84
    Par défaut
    oups excuses !!!!
    si j ai regardé le manuel mais je connaissais pas l'existence des variables $_FILES.
    j'ai donc fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $bienimage = $_FILES['bienimage'];$img1 = file_get_contents ($_FILES['bienimage']['tmp_name']);
    la requete passe ( pas de message d erreur) mais dans mon champ blob quand je vais sur mysql , il n y a rien
    ai je encore fais une erreur ??
    merci

  14. #14
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    Sa se passe ici pour ces infos la :
    http://fr3.php.net/manual/fr/features.file-upload.php

    Sinon tu as bien mis le enctype dans le form ?

    Autrement essais avec un move_uploaded_files d'abord car ce n'est pas dit que tu ais les droits de lecture sur le dossier temporaire.

  15. #15
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Citation Envoyé par Kerod
    alors on va reprendre à zero :
    si tu fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print_r($_FILES['bienimage']);
    Tu verras de quoi est composé ta variable et par conséquent tu verras que name contient juste le nom et que tmp_name l'url du fichier.

    Donc ton file_get_contents doit prendre comme paramètre $_FILES['bienimage']['tmp_name']
    TOn problème de post t'avait été signalé plus haut , concernant le champ blob tu as bien suivi le tuto ?

  16. #16
    Membre régulier Avatar de djedje37et28
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 224
    Points : 84
    Points
    84
    Par défaut
    j ai mis pour mon form
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<form action='ajouterbien.php' enctype='multipart/form-data' method='post'>\n";
    et dans ma base j ai pris un champ blob normal
    il m affiche dans ma base [BLOB - 0 Octets].
    cependant j ai pas fais tout comme dans le tutorial , j ai pas mis de nom , d extension au fichier.
    on est pas obligé de spécifier ca ?

  17. #17
    Membre régulier Avatar de djedje37et28
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 224
    Points : 84
    Points
    84
    Par défaut
    en faite maintenant ca a l air de faire la requete mais j ai ca qui s affiche:
    ÜWG®¨Ìôåïmïc‚[WšH¶y#<‘€¥¡@=`ŽKQ@)O*uäÛ©Ñ ÖRXåïí§¹¿•åi¬’“(R›¨¼V”ì4,ÍTäÚY>Ë|-¼Ù+Ë{¥ñÿ avec je sais pas combien de lignes, ca doit etre la photo converti en binaire.

    et Erreur de syntaxe près de '' à la ligne 1.
    ma ligne un n a pas d erreur, j ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <? 
    $bienimage = $_FILES['bienimage'];
    donc ca doit etre un autre problème.

  18. #18
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    L'erreur doit se trouver plus bas dans ton code. Si le parser dit qu'il y 'à une erreur c'est qu'il y'en à effectivement une Le parser ne se trompe jamais.

  19. #19
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Je viens de voir le tutoriel et c'est vraiment bien expliquer ...

    Tu récuperes ton fichier de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $img_blob = file_get_contents ($_FILES['fic']['tmp_name']);
    Et tu l'ajoutes en bdd en faisant un addslashe avant

    Si tu mets et surtout si tu fais le file_get_contents d'un array tu vas avoir des problème

  20. #20
    Membre régulier Avatar de djedje37et28
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    224
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 224
    Points : 84
    Points
    84
    Par défaut
    merci !
    mais je fais pas ca avec un tableau, j ai tout mes name de mes champs bien définis. j ai mis comme requête celle si ( juste pour essayer sur une image)
    mais ca me renvoye tjs l erreur!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    $query = "insert into bien (biennom,bientype,biendescription,bienprix,
    addlashes bienimage,bienvideo,bienville,biendatecrea,bienreference,biensouscategorie,
    bienimage2,bienimage3,bienimage4,bienimage5,bienimage6,bienimage7,
    bienimage8,bienimage9,bienimage10,bienpiece,bienchambre,biensurfacehab,
    biensurfacesejour,bienexposejour,bienjardin,bienetage,biennbetage,
    biencodeetage,bienanneeconstr,biencuisine,bientypechauff,biennaturechauff,
    biensurfcarre,bienwc,biensalledebain,biensalledeau,bienparkinginterieur,
    bienparkingexterieur,bienbox,biencave,bienascenseur,bienbalcon,
    bienterrasse,bienchargesmens,bientravaux,
    bientaxehab,bientaxefonc,bieninfocompl,biendesign1,biendesign2,biendesign3,biendesign4,
    biendesign5,biendesign6,biendesign7,
    biendesign8,biendesign9,biendesign10,biendesign11,biendesign12,
    biendesign13,biendesign14,biendesign15,bienm1,bienm2,bienm3,bienm4,bienm5,
    bienm6,bienm7,bienm8,bienm9,
    bienm10,bienm11,bienm12,bienm13,bienm14,bienm15,bientextepub) values ('$biennom','$categorie','$biendescription',
    '$bienprix',"."'".addslashes($img1)."'',
    '$vid1','$bienville','$biendatecrea','$bienreference','$biensouscategorie',
    '$img2','$img3','$img4','$img5','$img6','$img7','$img8','$img9','$img10',
    '$bienpiece','$bienchambre','$biensurfacehab','$biensurfacesejour',
    '$bienexposejour','$bienjardin','$bienetage','$biennbetage','$biencodeetage',
    '$bienanneeconstr','$biencuisine','$bientypechauff','$biennaturechauff',
    '$biensurfcarre','$bienwc','$biensalledebain','$biensalledeau',
    '$bienparkinginterieur','$bienparkingexterieur','$bienbox','$biencave',
    '$bienascenseur','$bienbalcon','$bienterrasse','$bienchargesmens',
    '$bientravaux','$bientaxehab','$bientaxefonc','$bieninfocompl','$biendesign1',
    '$biendesign2','$biendesign3','$biendesign4','$biendesign5','$biendesign6',
    '$biendesign7','$biendesign8','$biendesign9','$biendesign10','$biendesign11',
    '$biendesign12','$biendesign13','$biendesign14','$biendesign15','$bienm1',
    '$bienm2','$bienm3','$bienm4','$bienm5','$bienm6','$bienm7','$bienm8',
    '$bienm9','$bienm10','$bienm11','$bienm12','$bienm13','$bienm14','$bienm15',
    '$bientextepub')";

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. [ACCESS][SQL] Problème avec requete SQL ...
    Par mpascolo dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 09/11/2005, 10h54
  2. [SQL]Problème avec ADO - Order by
    Par Dnx dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 03/11/2005, 10h55
  3. [T-SQL] problème avec un trigger
    Par karine77 dans le forum Adaptive Server Enterprise
    Réponses: 3
    Dernier message: 26/09/2005, 10h45
  4. Access/SQL : Problème avec Count
    Par Taurëndil dans le forum Langage SQL
    Réponses: 2
    Dernier message: 13/01/2005, 15h49
  5. [SQL] problème avec les date et les group By
    Par Stef784ever dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/11/2004, 09h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo