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 :

Upload fichier dans la base [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 439
    Par défaut Upload fichier dans la base
    Bonjour, j'ai un petit probleme avec mon script php d'upload de fichier, j'essai de upload une impage via un formulaire mais l'upload ne marche pas je n'arrive pas a comprendre pourquoi voila le code

    Le fichier up.php
    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
    48
    49
    50
    51
    52
    <?
    // Taille maximum
    $MAX_FILE_SIZE = 150000;
     
    // Dossier de destination du fichier
    $folder = "/photos/";
     
    // Tableau array des différents types
    $allowed_types = array('image/bmp', 'image/gif', 'image/pjpeg', 'image/jpeg', 'image/jpg', 'multipart/x-zip', 'video/msvideo');
     
    // Variables récupérée par methode POST du formulaires
    $fname = $HTTP_POST_FILES['fichier']['name'];
    $ftype = $HTTP_POST_FILES['fichier']['type'];
    $fsize = $HTTP_POST_FILES['fichier']['size'];
    $ftmp = $HTTP_POST_FILES['fichier']['tmp_name'];
    $date = time();
     
     
    $tab = array ('jpg', 'gif', 'png');
    $indice = rand(0, count($tab) - 1);
     
     
    $date0 = "$date.$tab[$indice]";
    $date1= $date0;
    // Diverses test afin de savoir si :
    // Le format de fichier correspond à notre tableau array
    if(!in_array($ftype, $allowed_types)){$error = 1;}
     
    // La taille du fichier n'est pas dépassée
    if($fize > $MAX_FILE_SIZE){$error = 2;}
     
    // Le fichier n'existe pas déjà
    if(file_exists($folder."m_".$date1)){$error = 3;}
     
    // Si tout va bien, c'est bien déroulé
    if(move_upload_file($ftmp,''.$folder.''.$date1.'')) {$error = 0;}
     
    // Switch servant simplement à la gestion des erreures
    switch($error){
    case'0':
    break;
    case'1':
    echo("Format de fichier incorrecte.");
    break;
    case'2':
    echo("Fichier trop volumineux.");
    break;
    case'3':
    echo("Fichier déjà existant.");
    break;
    }
    ?>
    et voilà le formulaire

    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    <?
    $action = $_GET['action'];
     
     if ($action == confirm)
    {
    if (!empty($_POST['test1'])) { 
    $texte = htmlentities($_POST['test1']);
    $titre = htmlentities($_POST['titre']);
    $date = time();
     
    $resulm = mysql_query("select * from fun_blog where adresse='$webcon'");
    $quer=mysql_fetch_array($resulm);
     
    $idblog=$quer['id'];
     
    $fichier = $_POST['fichier'];
    if (!empty($fichier)){
     
    include("up.php");
     
    $image = "http://www.wemboo.com/photos/$date1";
     }
     
    $query = mysql_query("INSERT INTO fun_article (id, idblog, titre, article, date, maj, email, images) 
    values('', '$idblog', '$titre', '$texte', '$date', '0', '$email', '$image')");
     
     
     
     
    } else { ?>
     
    Vous devez Ecrire un texte, le champs Article ne doit pas rester vide
    <?
    } }
    else { ?>
     
     
     
     
     
     
     
     
     
     
    <script type="text/javascript" src="fonction.js"></script>
     
    <form id="ecrire" name="ecrire" enctype="multipart/form-data" onSubmit="return verif_formulaire_ecrire()"; action="?mod=ecrire&action=confirm" method="POST">
    Titre : <font color="red">*</font><br>
    <input type="text" name="titre" size="40"><p>
    Images<br>
    <input type="file" name="fichier" size="40"> <input type="button" value="Aperçu " onclick="voir()">
    <p>
    Ton Article : <font color="red">*</font><br>
    <textarea id="test1" name="test1" style="height: 170px; width: 500px;">
    </textarea><script language="JavaScript">
      generate_wysiwyg('test1');
    </script>
     
     
    <input type="submit" name="submit" value="Envoyer">
    </form>
     
    <font color="red">*</font> = Champs Obligatoires
    <? } ?>

    Merci d'avance de votre aide

  2. #2
    Membre éprouvé
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2007
    Messages
    112
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2007
    Messages : 112
    Par défaut
    Je n'ai pas regardé ni testé ton code de manière approfondie, mais déjà une erreur de frappe que j'ai vue :

    fize au lieu de fsize

    Et aussi quelques maladresses :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $date0 = "$date.$tab[$indice]";
    /*
    $date0 = $date.".".$tab[$indice];
    il me semble un peu plus lisible et plus propre
    */

    Quelques erreurs de sécurité !!!!! Passe tes champs avec la fonction mysql_real_escape_string() avant de les insérer dans une requête !!!

    Enfin, juste pour te dire qu'à 4h du mat, pas la motiv de me plonger dans ton code. Demain soir peut être sauf si qqn trouve d'ici là.

    Un petit conseil pour toi comme pour d'autres, avoir un serveur en local en paramétrant php.ini pour qu'il affiche toutes les erreurs et avertissements permet de déceler ces etourderies assez rapidement !

  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 439
    Par défaut
    J'ai trouver ou était mon probleme, cela ne vient aps du script d'upload mais du formulaire j'ai essayer sans mettre de condition cela marche bien quand le champs de type file est remplis sinon cela me met fichier introuvable quand je met le champs vide

    ce que je voudrai faire c'est si le champs est rempli cela inclu le fichier up.php et donc ajoute la photo sur le ftp ainsi que l'url de l'image s'ajoute dans la bdd


    voila mon formulaire

    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    <?
    $action = $_GET['action'];
     
     if ($action == confirm)
    {
    if (!empty($_POST['test1'])) { 
    $texte = htmlentities($_POST['test1']);
    $titre = htmlentities($_POST['titre']);
    $date = time();
     
    $resulm = mysql_query("select * from fun_blog where adresse='$webcon'");
    $quer=mysql_fetch_array($resulm);
     
    $idblog=$quer['id'];
     
    $fichier = $_POST['fichier'];
     
    if ($fichier != "") {
    include("up.php");
     
    $image = "http://www.wemboo.com/photos/$date1";
     
    }
     
    $query = mysql_query("INSERT INTO fun_article (id, idblog, titre, article, date, maj, email, images) 
    values('', '$idblog', '$titre', '$texte', '$date', '0', '$email', '$image')");
     
     
     
     
    } else { ?>
     
    Vous devez Ecrire un texte, le champs Article ne doit pas rester vide
    <?
    } 
    }
     
    else { ?>
     
     
     
     
     
     
     
     
     
     
    <script type="text/javascript" src="fonction.js"></script>
     
    <form id="ecrire" name="ecrire" enctype="multipart/form-data" onSubmit="return verif_formulaire_ecrire()"; action="?mod=ecrire&action=confirm" method="POST">
    Titre : <font color="red">*</font><br>
    <input type="text" name="titre" size="40"><p>
    Images<br>
    <input type="file" name="fichier" id="fichier" size="40"> <input type="button" value="Aperçu " onclick="voir()">
    <p>
    Ton Article : <font color="red">*</font><br>
    <textarea id="test1" name="test1" style="height: 170px; width: 500px;">
    </textarea><script language="JavaScript">
      generate_wysiwyg('test1');
    </script>
     
     
    <input type="submit" name="submit" value="Envoyer">
    </form>
     
    <font color="red">*</font> = Champs Obligatoires
    <? } ?>

    le probleme vient donc de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $fichier = $_POST['fichier'];
     
    if ($fichier != "") {
    include("up.php");
     
    $image = "http://www.wemboo.com/photos/$date1";
     
    }
    j'ai aussi essayer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if ($fichier{
    include("up.php");
     
    $image = "http://www.wemboo.com/photos/$date1";
     
    }
    et aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (!empty($_POST['fichier']) {
    include("up.php");
     
    $image = "http://www.wemboo.com/photos/$date1";
     
    }
    mais aucun ne marche, je n'arrive pas a comprendre pourquoi

  4. #4
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 439
    Par défaut
    Le probleme est resolu merci quand a ceux qui on essayé de m'aider

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/08/2014, 12h28
  2. Réponses: 2
    Dernier message: 21/05/2010, 20h57
  3. Upload de fichier dans une base de données MySQL
    Par miko2009 dans le forum W4 Express
    Réponses: 1
    Dernier message: 07/01/2009, 19h16
  4. [PostgreSQL] [PostGreSQL] Upload de fichier dans une base de données
    Par ZIED dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 18/01/2008, 15h01
  5. uploader un fichier dans une base SQL server
    Par Flamby38 dans le forum ASP.NET
    Réponses: 9
    Dernier message: 25/09/2007, 17h16

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