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

Langage PHP Discussion :

[Système] Envoyer le chemin d'accès d'une image dans la bdd [Débutant(e)]


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 46
    Points : 26
    Points
    26
    Par défaut [Système] Envoyer le chemin d'accès d'une image dans la bdd
    Bonjour, je voudrais via mon formulaire envoyer le lien d'image dans ma base de donnée.

    Mon formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    if (isset($_REQUEST['ajouter']))
    		{
    			$date = $date = date("Y-m-j+H:i:s");
    			echo (" <form name='ajoutnews' method='post' action='php/insert.php?ajoutalaune'>
     
    					<label for='titre'>Titre : </label><input type='text' id='titre' name='titre' value='' size='50' /><br />
    					<label for='image'>Image : </label><input name='image' type='file' size='60' id='image' /><br />
    					<label for='descriptifs'>Descriptifs : </label><br /><textarea name='descriptifs' cols='50' rows='20' style='overflow:auto'></textarea>
    					<input type='submit' name='Envoyer' value='Envoyer' />
    					</form> ");
    		}
    Et je souhaiterais inserer recuperer le chemin de l'image que j''insere pour envoyer dans la table : encart_pub dont les champs sont
    id, titre, image, descriptifs.

  2. #2
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2005
    Messages : 161
    Points : 193
    Points
    193
    Par défaut
    Dans ta page insert.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
     
    // Pour recupere les infos postés par le formulaire (method POST)
    $sTitre = $_POST["titre"];
    $sImage = $_POST["image"];
    $sDescriptif = $_POST["descriptifs"];
     
    // Apres tu fais une requete SQL standartd
    $sQuery = "INSERT INTO encart_pub (id, titre, image, descriptifs) VALUES (null, $sTitre, $sImage, $sDescriptif)";
    // pour l'id, je met NULL, en supposant que ton id est autoincrementé, a toi de t'adapter
     
     
    // puis connexion a ta base
    // puis execution de la requete
    // puis deconnexion
    EDITER:
    Par contre, pour des raisons de sécurité, teste la valeur de tes variable avant d'inserer (mysql_escape_string ou je sais plus koi) pour etre sur quels contiennent vraiment quelque chose auqeul tu t'attend

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 46
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par MadCat34
    Dans ta page insert.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
     
    // Pour recupere les infos postés par le formulaire (method POST)
    $sTitre = $_POST["titre"];
    $sImage = $_POST["image"];
    $sDescriptif = $_POST["descriptifs"];
     
    // Apres tu fais une requete SQL standartd
    $sQuery = "INSERT INTO encart_pub (id, titre, image, descriptifs) VALUES (null, $sTitre, $sImage, $sDescriptif)";
    // pour l'id, je met NULL, en supposant que ton id est autoincrementé, a toi de t'adapter
     
     
    // puis connexion a ta base
    // puis execution de la requete
    // puis deconnexion
    EDITER:
    Par contre, pour des raisons de sécurité, teste la valeur de tes variable avant d'inserer (mysql_escape_string ou je sais plus koi) pour etre sur quels contiennent vraiment quelque chose auqeul tu t'attend
    Je peux recuperer le nom de mon image avec $sImage = $_POST["image"]; pour l'inserer dans la base de donnée.

    Sinon j'ai trouvé çà qui marche trés bien pour mettre le fichier dans mon repertoire, il me restera a prendre le chemin de l'image et le mettre dans le champ image de ma table


    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
    <form method="post" enctype="multipart/form-data" action="untitled.php?upload.php">
    <p>
    <input type="hidden" name="MAX_FILE_SIZE" value="100000">
    <input type="file" name="fichier" size="30">
    <input type="submit" name="upload" value="Uploader">
    </p>
    </form>
     
    <?php
     
    if( isset($_POST['upload']) ) // si formulaire soumis
    {
        $content_dir = 'images/'; // dossier où sera déplacé le fichier
     
        $tmp_file = $_FILES['fichier']['tmp_name'];
     
        if( !is_uploaded_file($tmp_file) )
        {
            exit("Le fichier est introuvable");
        }
     
        // on vérifie maintenant l'extension
        $type_file = $_FILES['fichier']['type'];
     
        if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') )
        {
            exit("Le fichier n'est pas une image");
        }
     
        // on copie le fichier dans le dossier de destination
        $name_file = $_FILES['fichier']['name'];
     
        if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
        {
            exit("Impossible de copier le fichier dans $content_dir");
        }
     
        echo "Le fichier a bien été uploadé";
    }
     
    ?>
    Exemple :

    id : 1
    titre : les vacances de janeiro
    image : images/riodejaneiro.jpeg
    descriptifs : Ma copine et moi sur la plage.


    Formulaire : Je remplis les champs.
    titre : les vancances de janeiro
    image : c:/documents and settings/nini/mes documents/riodejaneiro.jpeg
    descriptifs : Ma copine et moi sur la plage.

    donc il faut envoyer l'image dans le repertoire images/, puis ajouter a la base de donnée.


    voila le resultat que je recherche. Merci

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 46
    Points : 26
    Points
    26
    Par défaut Voila c'est fait normalement il me manque des verifications à faire.
    Bon je trouvais comment mettre a jour ma base de donnée, çà donne un résultat pas mal. Il reste des verifications a faire. Si vous pouvez m'aider la dessus n'hesiter pas.

    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
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    if (isset($_REQUEST['alaune']) and !isset($_REQUEST['ajouter']) and !isset($_POST['upload'])) 
    { 	
    		echo ("<a href='admin.php?alaune&amp;ajouter'>Ajouter une news</a>");
    		echo ("<table width='400'><tr><td>Visualiser</td><td>Modifier</td><td>Supprimer</td><td>Date</td><td>Titre</td><td>image</td><td>Descriptifs</td></tr>");
     
    			$sql = "SELECT * FROM alaune ORDER BY date DESC";
    			$query = mysql_query($sql, $connect) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
    			while ($row = mysql_fetch_array($query))
    			{	
    				$id = $row['id'];
    				$date =  $row['date'];
    				$titre = $row['titre'];
    				$image = $row['image'];
    				$descriptifs = $row['descriptifs'];
     
    				echo ("<tr><td>
    <a href='#' onclick='window.open('radio/lecteur.html','radio','width=362, height=130, resizable=no, left=10, top=10, toolbar=no, scrollbar=no, menubar=no, status=no, location=no'); return false;'>Visualiser</a>
    <td><a href=\"admin.php?alaune&amp;modifier=$id\">Modifier</a></td>
    <td><a href=\"php/insert.php?suppralaune=$id\">Supprimer</a></td><td>$date</td><td>$titre</td><td><a href='$image'>$image</a></td><td></td></tr>");
    			}
    }	
     
     
    if (isset($_REQUEST['ajouter']) and !isset($_POST['upload']))
    {
    			$date = $date = date("Y-m-j+H:i:s");
    ?>
    <h4>Ajouter une news</h4>
    <form method="post" enctype="multipart/form-data" action="admin.php?alaune&amp;ajouter&amp;upload">
    <p>
    <input type="hidden" name="MAX_FILE_SIZE" value="1000000">
    <label for="titre">Titre : </label><input type="text" name="titre" size="30"/><br />
    <label for="descriptifs">Descriptifs : </label><br />
    <textarea name="descriptifs" rows="10" cols="60"></textarea><br /> 
    <label for="fichier">Image : </label><input type="file" name="fichier" size="30">
    <input type="submit" name="upload" value="Uploader" />
    </p>
    </form>
    <?php
    }
     
     
    if( isset($_POST['upload']) and  isset($_REQUEST['ajouter'])) // si formulaire soumis
    {
    	$titre = addslashes($_REQUEST['titre']);
    	$descriptifs = addslashes($_REQUEST['descriptifs']);
        $content_dir = 'images/'; // dossier où sera déplacé le fichier
    	$date = date("Y-m-j+H:i:s");
        $tmp_file = $_FILES['fichier']['tmp_name'];
     
        if( !is_uploaded_file($tmp_file) )
        {
            exit("Le fichier est introuvable");
        }
     
        // on vérifie maintenant l'extension
        $type_file = $_FILES['fichier']['type'];
     
        if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') )
        {
            exit("Le fichier n'est pas une image");
        }
     
        // on copie le fichier dans le dossier de destination
        $name_file = $_FILES['fichier']['name'];
     
        if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
        {
            exit("Impossible de copier le fichier dans $content_dir");
        }
     
    		$sql = "INSERT INTO alaune VALUES ('','".$titre."','".$content_dir .$name_file."','".$descriptifs."','".$date."');" ;
    		mysql_query($sql,$connect);
     
    /*header("location:../admin.php?alaune");*/
    }
     
     
    if (isset($_REQUEST['modifier']))
    {
    			echo (" <form name='modifiernews' method='post' action='php/insert.php?modifieralaune'>");
     
    					$id = $_REQUEST['modifier'];
    					$sql = "SELECT * FROM alaune WHERE id=$id;";
    					$query = mysql_query($sql, $connect) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
    					$row = mysql_fetch_array($query);
    					$titre = $row['titre'];
    					$image = $row['image'];
    					$descriptifs = $row['descriptifs'];
    					$date = $row['date'];
    			echo("	$titre, $image , $descriptifs, $date <br />	<input name='id' type='hidden' value='$id' />
    					<label for='titre'>Titre : </label><input type='text' id='titre' name='titre' value='$titre' size='50' /><br />
    					<label for='image'>Image : </label><input name='image' type='file' size='60' value='$image' /><br />
    					<label for='descriptifs'>Descriptifs : </label><br /><textarea name='descriptifs' cols='50' rows='20' style='overflow:auto' value='$descriptifs'></textarea><br />
    					<label for='date'>Date : </label><input type='text' id='date' name='date' value='$date' size='30' />
    					<input type='submit' name='envoyer' value='envoyer' />
    					</form> ");
    }
     
    else 
    	{
    		echo (" Bienvenue sur la page d'administration de votre site ");
    	}	
    ?>
    Et si vous avez d'autres choses à me soumettre poster aussi.

    Avant que j'oublie ceci est pour ajouter maintenant je voudrais modifier la news et je sais pas comment faire pour mettre une valeur par default a mon input file
    comment çà il est remplis par l'image d'avant et si il souhaite changer d'image il pourras le faire.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Moi j'ai réussi à entrer le nom du firchier dans ma base, le problème est qu'il ne garde pas les "\" ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    If (isset ($_POST['val']))
                    {
                    echo $_POST['textfield'].'<br>';
     
                    if ($_POST['textfield'] != "")
                    {
                    mysql_query('UPDATE parametres SET image_param ="'.$_POST['textfield'].'"',$connexion);
                    };
    echo $_POST['textfield'] me donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\Documents and Settings\Bureau\Portail\image.jpg
    Mais dans ma base de données, le champs se retrouve ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:Documents and SettingsBureauPortailimage.jpg
    D'où cela peut-il venir ??

  6. #6
    Invité
    Invité(e)
    Par défaut
    J'ai trouvé, finalement il fallait utilisé la fonction AddSlahes() . Cette fonction place dans la chaine un anti-slash devant chaque caractère spécial ( ', ", \, NULL ).

    Merci à moi pour la solution

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 46
    Points : 26
    Points
    26
    Par défaut

  8. #8
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Citation Envoyé par LittleDevil
    J'ai trouvé, finalement il fallait utilisé la fonction AddSlahes() . Cette fonction place dans la chaine un anti-slash devant chaque caractère spécial ( ', ", \, NULL ).
    Très mauvaise habitude : la fonction mysql_real_escape_string est bien plus adéquate. Toutefois, la perte de vos backslashs ne serait-elle pas due à une (mauvaise) utilisation de la fonction stripslashes auparavant ?

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 46
    Points : 26
    Points
    26
    Par défaut
    Et comment on fait pour limiter la saisie des chiffres dans un champ type="text" d'un formulaire et incluant la touche suppr ou effacer seulement.

  10. #10
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Citation Envoyé par DrOOMMgba
    Et comment on fait pour limiter la saisie des chiffres dans un champ type="text" d'un formulaire et incluant la touche suppr ou effacer seulement.
    Il n'est pas possible de faire directement ce genre de contrôles puisque PHP s'exécute côté serveur : il faut attendre que le client vous renvoie le formulaire avec les données (ie : qu'il soit soumis).

    En PHP, vous pouvez utiliser une expression régulière (preg_match) et/ou la fonction is_numeric pour savoir si le champ contient une valeur numérique.

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

Discussions similaires

  1. [WD-2010] Retrouver le chemin d'accès d'une image insérée
    Par topdawg dans le forum Word
    Réponses: 2
    Dernier message: 04/02/2013, 16h45
  2. Chemin d'acces a une image
    Par boboss123 dans le forum Général Java
    Réponses: 2
    Dernier message: 15/01/2010, 13h06
  3. Réponses: 4
    Dernier message: 02/09/2009, 09h23
  4. Réponses: 2
    Dernier message: 11/06/2008, 13h03
  5. [MySQL] Comment utiliser le chemin d'accès d'une image ?
    Par mealtone dans le forum PHP & Base de données
    Réponses: 16
    Dernier message: 18/08/2006, 11h29

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