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 :

Insérer image en MySQL [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé Avatar de agnaou
    Inscrit en
    Février 2009
    Messages
    289
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2009
    Messages : 289
    Par défaut Insérer image en MySQL
    bonsoir tout le monde j'essai d'inserer une imagr dans une base de donnee mais il merenvoie une erreur d'extention meme si j'ai selectionner une bonne extention
    et voici le
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    <?php
      if(isset($_POST['valider'])) {
     
    	 //Indique si le fichier a été téléchargé
    	 if(!is_uploaded_file($_FILES['image']['tmp_name']))
    		echo "Un problème est survenu durant l opération. Veuillez réessayer !";
    	 else {
    		//liste des extensions possibles    
    		$extensions = array('/png', '/gif', '/jpg', '/jpeg');
     
    		//récupère la chaîne à partir du dernier / pour connaître l'extension
    		$extension = strrchr($_FILES['image']['type'], '/');
     
    		//vérifie si l'extension est dans notre tableau            
    		if(!in_array($extension, $extensions))
    			echo 'Vous devez uploader un fichier de type png, gif, jpg, jpeg.';
    		else {         
     
    			//on définit la taille maximale
    			define('MAXSIZE', 300000);        
    			if($_FILES['image']['size'] > MAXSIZE)
    			   echo 'Votre image est supérieure à la taille maximale de '.MAXSIZE.' octets';
    			else {
    				//on se connecte (remplacer les paramètres de connexion)
    				$connexion = mysql_connect("localhost", "root", "") or exit (mysql_error());
    				$database = mysql_select_db("Gest_voyages") or exit (mysql_error());
     
    				//récupération des infos saisies
    				$nom = mysql_escape_string($_POST['nom']);
    				$categorie = mysql_escape_string($_POST['categorie']);
    				$ville = mysql_escape_string($_POST['ville']);
    				$adresse= mysql_escape_string($_POST['adresse']);
    				$tel = mysql_escape_string($_POST['tel']);
    				$fax = mysql_escape_string($_POST['fax']);
    				//Lecture du fichier. On doit utiliser la fonction mysql_escape_string car les données binaires contiennent des caractères spéciaux.
    				$image = mysql_escape_string(file_get_contents($_FILES['image']['tmp_name']));
     
    				//Il ne reste qu'à insérer tout ça dans notre table.
    				mysql_query("INSERT INTO hotels VALUES('','".$nom."', '".$categorie."', '".$ville."', '".$adresse."','".$tel."','".$fax."')") or exit (mysql_error());
    				mysql_close();
     
    				echo 'L insertion s est bien déroulée !';
    			 }
    		  }
    	  }
      }
    ?>
    et merci d'avance pour votre reponse

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Pourquoi tu mets "/" comme séparateur pour l'extension du fichier ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé Avatar de agnaou
    Inscrit en
    Février 2009
    Messages
    289
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2009
    Messages : 289
    Par défaut
    je ne peut montir :le code je le trove comme ca dans une site et je ne sais pas

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    ah j'avais pas fais attention, il cherche dans le type mime et non pas dans l'extension du fichier :

    debug en faisant comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if(!in_array($extension, $extensions))
    echo 'Votre fichier est de type ' . $_FILES['image']['type'] . '<br /> Vous devez uploader un fichier de type png, gif, jpg, jpeg.';
    tu sauras pourquoi les fichiers sont refusés.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre éclairé Avatar de agnaou
    Inscrit en
    Février 2009
    Messages
    289
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2009
    Messages : 289
    Par défaut
    il ma renvoie ca
    Votre fichier est de type image/pjpeg
    Vous devez uploader un fichier de type png, gif, jpg, jpeg.
    et je ne sia pas ou de viens ce /p
    et je vous remercier tellement

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    pjpeg est le type des "progressive jpeg" tu peux ajouter "/pjpeg" dans la liste des formats autorisés.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre éclairé Avatar de agnaou
    Inscrit en
    Février 2009
    Messages
    289
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2009
    Messages : 289
    Par défaut
    meeeeeeeeeerciiiiiiiiii boucoup mais il me rest une autre que je ne conmprend pas tu peut expliquer s'il vou plais
    Column count doesn't match value count at row 1

  8. #8
    Membre éclairé Avatar de agnaou
    Inscrit en
    Février 2009
    Messages
    289
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2009
    Messages : 289
    Par défaut
    je suis désolé mais je suis trompé ente le nombre de colones et nomres de va leur insert.
    et j'ai une goss erreur je crois pour enregistré le chemin d'image
    Erreur de syntaxe près de ''ےطےà\0JFIF\0\0`\0`\0\0ےغ\0C\0 \n \r \Z\Z $.\' \"' à la ligne 1
    svp comment faire pour eviter ce type d'ecriture d'erreur
    et merci d'avence

  9. #9
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Est-ce que tu as bien mis des guillemets autour de la valeur de ton champ dans la requete ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #10
    Membre éclairé Avatar de agnaou
    Inscrit en
    Février 2009
    Messages
    289
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2009
    Messages : 289
    Par défaut
    bonjour sabotage
    j'espaire d'etre en bon santé
    tous d'bord je crois que c oui
    et voila ma requete
    mysql_query("INSERT INTO hotels VALUES('','".$nom."', '".$categorie."', '".$ville."', '".$adresse."','".$tel."','".$fax."','".$image."','A'") or exit (mysql_error());
    mysql_close();

  11. #11
    Membre Expert
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Par défaut
    Et si tu remplace mysql_escape_string() par mysql_real_escape_string() ?

    ça te donne quoi ?

  12. #12
    Membre éclairé Avatar de agnaou
    Inscrit en
    Février 2009
    Messages
    289
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2009
    Messages : 289
    Par défaut
    ca donne ca
    Parse error: parse error in E:\Agence de voyage\validation.php on line 34
    c la preimier ligne contient votre istruction
    et merci d'avance

  13. #13
    Membre Expert
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Par défaut
    Tu peux redonner ton code avec les modif que tu viens de faire ?

  14. #14
    Membre éclairé Avatar de agnaou
    Inscrit en
    Février 2009
    Messages
    289
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2009
    Messages : 289
    Par défaut
    voici le code
    <?php
    if(isset($_POST['valider'])) {

    //Indique si le fichier a été téléchargé
    if(!is_uploaded_file($_FILES['image']['tmp_name']))
    echo "Un problème est survenu durant l opération. Veuillez réessayer !";
    else {
    //liste des extensions possibles
    $extensions = array('/png', '/gif', '/jpg', '/jpeg','/pjpeg');

    //récupère la chaîne à partir du dernier / pour connaître l'extension
    $extension = strrchr($_FILES['image']['type'], '/');

    //vérifie si l'extension est dans notre tableau
    //if(!in_array($extension, $extensions))
    //echo 'Vous devez uploader un fichier de type png, gif, jpg, jpeg.';
    if(!in_array($extension, $extensions))
    echo 'Votre fichier est de type ' . $_FILES['image']['type'] . '<br /> Vous devez uploader un fichier de type png, gif, jpg, jpeg,pjpeg.';

    else {

    //on définit la taille maximale
    define('MAXSIZE', 300000);
    if($_FILES['image']['size'] > MAXSIZE)
    echo 'Votre image est supérieure à la taille maximale de '.MAXSIZE.' octets';
    else {
    //on se connecte (remplacer les paramètres de connexion)
    $connexion = mysql_connect("localhost", "agnaou", "252095") or exit (mysql_error());
    $database = mysql_select_db("Gest_voyages") or exit (mysql_error());

    //récupération des infos saisies
    $nom = mysql_escape_string($_POST['nom']);
    $categorie = mysql_escape_string($_POST['categorie']);
    $ville = mysql_escape_string($_POST['ville']);
    $adresse= mysql_escape_string($_POST['adresse']);
    $tel = mysql_escape_string($_POST['tel']);
    $fax = mysql_escape_string($_POST['fax']);
    //Lecture du fichier. On doit utiliser la fonction mysql_escape_string car les données binaires contiennent des caractères spéciaux.
    $image = mysql_escape_string(file_get_contents($_FILES['image']['tmp_name']));

    //Il ne reste qu'à insérer tout ça dans notre table.
    mysql_query("INSERT INTO hotels VALUES('','".$nom."', '".$categorie."', '".$ville."', '".$adresse."','".$tel."','".$fax."','".$image."','A'") or exit (mysql_error());
    mysql_close();

    echo 'L insertions est bien déroulée !';
    }
    }
    }
    }
    ?>
    et merci

  15. #15
    Membre éclairé Avatar de agnaou
    Inscrit en
    Février 2009
    Messages
    289
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2009
    Messages : 289
    Par défaut
    désolé mais je pense que tu veux ca
    <?php
    if(isset($_POST['valider'])) {

    //Indique si le fichier a été téléchargé
    if(!is_uploaded_file($_FILES['image']['tmp_name']))
    echo "Un problème est survenu durant l opération. Veuillez réessayer !";
    else {
    //liste des extensions possibles
    $extensions = array('/png', '/gif', '/jpg', '/jpeg','/pjpeg');

    //récupère la chaîne à partir du dernier / pour connaître l'extension
    $extension = strrchr($_FILES['image']['type'], '/');

    //vérifie si l'extension est dans notre tableau
    //if(!in_array($extension, $extensions))
    //echo 'Vous devez uploader un fichier de type png, gif, jpg, jpeg.';
    if(!in_array($extension, $extensions))
    echo 'Votre fichier est de type ' . $_FILES['image']['type'] . '<br /> Vous devez uploader un fichier de type png, gif, jpg, jpeg,pjpeg.';

    else {

    //on définit la taille maximale
    define('MAXSIZE', 300000);
    if($_FILES['image']['size'] > MAXSIZE)
    echo 'Votre image est supérieure à la taille maximale de '.MAXSIZE.' octets';
    else {
    //on se connecte (remplacer les paramètres de connexion)
    $connexion = mysql_connect("localhost", "agnaou", "252095") or exit (mysql_error());
    $database = mysql_select_db("Gest_voyages") or exit (mysql_error());

    //récupération des infos saisies
    $nom = mysql_real_escape_string($_POST['nom']);
    $categorie = mysql_real_escape_string($_POST['categorie']);
    $ville = mysql_real_escape_string($_POST['ville']);
    $adresse= mysql_real_escape_string($_POST['adresse']);
    $tel = mysql_real_escape_string($_POST['tel']);
    $fax = mysql_real_escape_string($_POST['fax']);
    //Lecture du fichier. On doit utiliser la fonction mysql_escape_string car les données binaires contiennent des caractères spéciaux.
    $image = mysql_real_escape_string(file_get_contents($_FILES['image']['tmp_name']));

    //Il ne reste qu'à insérer tout ça dans notre table.
    mysql_query("INSERT INTO hotels VALUES('','".$nom."', '".$categorie."', '".$ville."', '".$adresse."','".$tel."','".$fax."','".$image."','A'") or exit (mysql_error());
    mysql_close();

    echo 'L insertions est bien déroulée !';
    }
    }
    }
    }
    ?>

  16. #16
    Membre Expert
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    Par défaut
    Je ne vois pas les modifications que je t'ai demandé de faire.

    Il faut remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $image = mysql_escape_string(file_get_contents($_FILES['image']['tmp_name']));
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $image = mysql_real_escape_string(file_get_contents($_FILES['image']['tmp_name']));

  17. #17
    Membre éclairé Avatar de agnaou
    Inscrit en
    Février 2009
    Messages
    289
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2009
    Messages : 289
    Par défaut
    je ponse ca marche ver la resolustion il me manque seulement un truc sur la permier colum comment faire pour la syntaxe d'insertion sachant qu'il est auto incrimante et si comme ca
    mysql_query("INSERT INTO hotels VALUES(' ','".$nom."', '".$categorie."', '".$ville."', '".$adresse."','".$tel."','".$fax."','".$image."','A')") or exit (mysql_error());il me donne
    Incorrect integer value: ' ' for column 'ref_hotel' at row 1
    et par ca
    mysql_query("INSERT INTO hotels VALUES(,'".$nom."', '".$categorie."', '".$ville."', '".$adresse."','".$tel."','".$fax."','".$image."','A')") or exit (mysql_error());
    ca donne
    Erreur de syntaxe près de ''', '0', '', '','','','ےطےà\0JFIF\0\0\0\0\0\0ےغ\0C\0\n\n\n ' à la ligne 1
    et merci d'avance

  18. #18
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Deux guillemets sans espace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO hotels VALUES('',
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  19. #19
    Membre éclairé Avatar de agnaou
    Inscrit en
    Février 2009
    Messages
    289
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Février 2009
    Messages : 289
    Par défaut
    désolé pour cette retad mais question de travail et esperon que tu dérange pas et voila
    j'ai tester votre solution mais il me renvoie cette erreur
    Incorrect integer value: '' for column 'ref_hotel' at row 1et remplace '' par "" il ya toujours une erreur
    et je tu remercier tellement sabotage

  20. #20
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    ref_hotel c'est bien la premiere colonne ?
    peux-tu voir la structure de ta table ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. ODBC insérer image dans la base MySql
    Par jojo_ol76 dans le forum JDBC
    Réponses: 8
    Dernier message: 25/05/2010, 14h58
  2. [Débutant]insérer une image dans Mysql
    Par olivier94 dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 05/02/2007, 11h08
  3. Stockage d'images dans Mysql?
    Par sessime dans le forum Bases de données
    Réponses: 2
    Dernier message: 11/10/2005, 16h56
  4. stockage d'images dans Mysql
    Par sessime dans le forum Bases de données
    Réponses: 3
    Dernier message: 23/02/2004, 16h08

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