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 d'image avec insertion du chemin dans bdd [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    263
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 263
    Points : 113
    Points
    113
    Par défaut Upload d'image avec insertion du chemin dans bdd
    Bonjour a tous j'ai crée un formulaire ou les utilisateur peuvent uploader une photos, cette photo est stoqué dans un dossier, mais j'aimerai aussi stoquer le chemin de cette photo dans la bdd dans l'enregistrement de l'utilisateur...

    Y a t'il une fonction qui le fait automatiquemt?

    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
    <div id="conteneur">
     
     
    <form method="post" target="contenu" action="traitement_n_membre.php" name="membre" enctype="multipart/form-data">
     
     
    <P> Changer son image portrait : 
      <input type="file" name="photo" /></p>
     
     
    <P> Changer son Nom et Prenom : 
      <input name="nom" type="text" value='<?php echo  $_SESSION[mysql_real_escape_string(htmlentities(htmlspecialchars(addslashes('nom'))))];?>'/></p>
     
     
    <P> Changer son statut :
     
     
    <select name="statut">
       <option value="p" <?php if($_SESSION['statut'] == 'p') echo 'selected="selected"'; ?>>Président(e)</option>
       <option value="vp" <?php if($_SESSION['statut'] == 'vp') echo 'selected="selected"'; ?>>Vice président(e)</option>
       <option value="t" <?php if($_SESSION['statut'] == 't') echo 'selected="selected"'; ?>>Trésorier(e)</option>
       <option value="ta" <?php if($_SESSION['statut'] == 'ta') echo 'selected="selected"'; ?>>Trésorier(e) adjoint(e)</option>
       <option value="s" <?php if($_SESSION['statut'] == 's') echo 'selected="selected"'; ?>>Secrétaire</option>
       <option value="sa" <?php if($_SESSION['statut'] == 'sa') echo 'selected="selected"'; ?>>Secrétaire adjoint(e)</option>
       <option value="m" <?php if($_SESSION['statut'] == 'm') echo 'selected="selected"'; ?>>Membre</option>
       </select> </p>
     
     
     
     
    <P> Changer son CV : 
      <textarea name="texte" cols="" rows=""><?php echo $_SESSION[mysql_real_escape_string(htmlentities(htmlspecialchars(addslashes('texte'))))];?></textarea></p>
     
     
     
    <P> Changer son texte secondaire : 
      <textarea name="texte2" cols="" rows=""><?php echo $_SESSION[mysql_real_escape_string(htmlentities(htmlspecialchars(addslashes('texte2'))))];?></textarea></p>
     
     
    <input type="hidden" name="action" value="ajout_edit_membre" />
     
     
     
    <INPUT TYPE="submit" VALUE="Ajouter">
     
    </form>
     
     
    </div>

    Mon script:


    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
    case "ajout_edit_membre" :
     
    		require_once('connec_bdd.php');
     
     
     
    				$requete = "SELECT * FROM utilisateur WHERE id_user = ' ".$_SESSION['id_user']." ' ";
     
     
    		$result = mysql_query($requete) or die(mysql_error());
     
     
    				$row=false;
     
    		while ($row = mysql_fetch_array($result)) 
     
     
    		if(!$row);
     
    				$type=$_FILES['photo']['type'];
     
     
    				if(($type!="image/jpeg")&&($type!="image/pjpeg")&&($type!=""))
    		{
     
    		echo "Erreur le fichier que vous telecharger n'est pas dans le bon format";
     
    				echo '<SCRIPT LANGUAGE="JavaScript">
    										function redirect() {
    							window.location="edit_membre.php"
    						}
    						setTimeout("redirect()",3000); 		  </SCRIPT>';
     
     
    		}
    		else
     
     
    			{
     
    		$image_destination = "../images/photo_membres/membre.jpg";
     
    						$resultat1 = move_uploaded_file($_FILES['photo']['tmp_name'],$image_destination);
     
    						$nom=mysql_real_escape_string(htmlentities(htmlspecialchars(addslashes($_POST['nom']))));
     
    						$statut=mysql_real_escape_string(htmlentities(htmlspecialchars(addslashes($_POST['statut']))));
     
    						$texte=mysql_real_escape_string(htmlentities(htmlspecialchars(addslashes($_POST['texte']))));
     
    						$texte2=mysql_real_escape_string(htmlentities(htmlspecialchars(addslashes($_POST['texte2']))));
     
     
     
    				$requete = "UPDATE utilisateur set nom='".$nom."', statut='".$statut."', texte='".$texte."', texte2='".$texte2."' WHERE id_user = ' ".$_SESSION['id_user']." ' ";
     
    				$resultat = mysql_query($requete) or die(mysql_error());
     
    				if($resultat == TRUE)
     
    		{
     
    		echo "L'insertion a bien été effectué";
     
    		echo '<SCRIPT LANGUAGE="JavaScript">
    								function redirect() {
    					window.location="edit_membre.php"
    				}
    				setTimeout("redirect()",3000); 		  </SCRIPT>';
     
    		}
     
    		else
     
    		{
     
    		echo "L'insertion a échoué";
     
    		echo '<SCRIPT LANGUAGE="JavaScript">
    								function redirect() {
    					window.location="edit_membre.php"
    				}
    				setTimeout("redirect()",3000); 		  </SCRIPT>';
     
            }				
     
     
    		}
     
    		break;

    Merci d'avance!!!

  2. #2
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mai 2008
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2008
    Messages : 56
    Points : 57
    Points
    57
    Par défaut
    Oui la fonction qui le fait tout seul c'est : move_uploaded_file

    Par contre je trouve ca marrant d'ajouter des anti-slashes sur un variable pour ensuite les enlever avec htmlspecialchars pour ensuite re-convertir le tout entités html avec htmlentities puis pour re rajoutes des anti-slashes avec mysql_real_escape_string qui ne sert pas vu que tes caractères a échapper son déjà en entités html. (Au passage mysql_real_escape_string s'utilise pour envoyer vers une bdd et htmlentities pour de l'affichage).

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    263
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 263
    Points : 113
    Points
    113
    Par défaut
    Effectivment, j'ai fait n'importe quoi, c'est nouveau pour moi et j'me suis un peu beaucoup melangé les pinceaux...

    J'ai rectifiée mon code et j'pense que c'est plus censé...

    Par contre comme tu a pu le constater j'utilise deja la fonction move_uploaded_file pour faire l'upload d'image, j'ai regardé un peu dans certaine doc, mais je ne vois pas comment je peux faire pour qu'elle m'inscrive dans ma table le chemin de la photo...

    Peux tu m'expliquer?

    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
    case "ajout_edit_membre" :
     
    		require_once('connec_bdd.php');
     
     
     
    				$requete = "SELECT * FROM utilisateur WHERE id_user = ' ".$_SESSION['id_user']." ' ";
     
     
    		$result = mysql_query($requete) or die(mysql_error());
     
     
    				$row=false;
     
    		while ($row = mysql_fetch_array($result)) 
     
     
    		if(!$row);
     
    				$type=$_FILES['photo']['type'];
     
     
    				if(($type!="image/jpeg")&&($type!="image/pjpeg")&&($type!=""))
    		{
     
    		echo "Erreur le fichier que vous telecharger n'est pas dans le bon format";
     
    				echo '<SCRIPT LANGUAGE="JavaScript">
    										function redirect() {
    							window.location="edit_membre.php"
    						}
    						setTimeout("redirect()",3000); 		  </SCRIPT>';
     
     
    		}
    		else
     
     
    			{
     
    		$image_destination = "../images/photo_membres/membre.jpg";
     
    						$resultat1 = move_uploaded_file($_FILES['photo']['tmp_name'],$image_destination);
     
    						$nom=mysql_real_escape_string($_POST['nom']);
     
    						$statut=mysql_real_escape_string($_POST['statut']);
     
    						$texte=mysql_real_escape_string($_POST['texte']);
     
    						$texte2=mysql_real_escape_string($_POST['texte2']);
     
     
     
    				$requete = "UPDATE utilisateur set nom='".$nom."', statut='".$statut."', texte='".$texte."', texte2='".$texte2."' WHERE id_user = ' ".$_SESSION['id_user']." ' ";
     
    				$resultat = mysql_query($requete) or die(mysql_error());
     
    				if($resultat == TRUE)
     
    		{
     
    		echo "L'insertion a bien été effectué";
     
    		echo '<SCRIPT LANGUAGE="JavaScript">
    								function redirect() {
    					window.location="edit_membre.php"
    				}
    				setTimeout("redirect()",3000); 		  </SCRIPT>';
     
    		}
     
    		else
     
    		{
     
    		echo "L'insertion a échoué";
     
    		echo '<SCRIPT LANGUAGE="JavaScript">
    								function redirect() {
    					window.location="edit_membre.php"
    				}
    				setTimeout("redirect()",3000); 		  </SCRIPT>';
     
            }				
     
     
    		}
     
    		break;
    Merci d'avance!!!

  4. #4
    Inactif
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 179
    Points : 202
    Points
    202
    Par défaut
    Renseigne-toi sur mysql_real_escape_string, htmlentities/htmlspecialchars et addslashes au lieu de les emboîter dans tous les sens n'importe comment en espérant te protéger...

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    263
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 263
    Points : 113
    Points
    113
    Par défaut
    C'est s'que j'disais juste le poste au dessus...

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    263
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 263
    Points : 113
    Points
    113
    Par défaut
    J'ai reussi, bon pas avec la fonction vu qu'elle m'envoyait juste une valeur, mais ca fonctionne, si jamais vous avez la solution avec la fonction, je suis quand meme preneur de voir une autre méthode...

    Mon script pour ceux que sa intéresse:

    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
    case "ajout_edit_membre" :
     
    		require_once('connec_bdd.php');
     
     
     
    				$requete = "SELECT * FROM utilisateur WHERE id_user = ' ".$_SESSION['id_user']." ' ";
     
     
    		$result = mysql_query($requete) or die(mysql_error());
     
     
    				$row=false;
     
    		while ($row = mysql_fetch_array($result)) 
     
     
    		if(!$row);
     
    				$type=$_FILES['photo']['type'];
     
     
    				if(($type!="image/jpeg")&&($type!="image/pjpeg")&&($type!=""))
    		{
     
    		echo "Erreur le fichier que vous telecharger n'est pas dans le bon format";
     
    				echo '<SCRIPT LANGUAGE="JavaScript">
    										function redirect() {
    							window.location="edit_membre.php"
    						}
    						setTimeout("redirect()",3000); 		  </SCRIPT>';
     
     
    		}
    		else
     
     
    			{
     
    			$user = $_SESSION['nom'];
     
    		$image_destination = "../images/photo_cv/$user.jpg";
     
    						$photo = move_uploaded_file($_FILES['photo']['tmp_name'],$image_destination);
     
    						$nom=mysql_real_escape_string($_POST['nom']);
     
    						$statut=mysql_real_escape_string($_POST['statut']);
     
    						$texte=mysql_real_escape_string($_POST['texte']);
     
    						$texte2=mysql_real_escape_string($_POST['texte2']);
     
     
     
    				$requete = "UPDATE utilisateur set nom='".$nom."', statut='".$statut."', texte='".$texte."', texte2='".$texte2."', photo='".$image_destination."' WHERE id_user = ' ".$_SESSION['id_user']." ' ";
     
    				$resultat = mysql_query($requete) or die(mysql_error());
     
    				if($resultat == TRUE)
     
    		{
     
    		echo "L'insertion a bien été effectué";
     
    		echo '<SCRIPT LANGUAGE="JavaScript">
    								function redirect() {
    					window.location="membres.php"
    				}
    				setTimeout("redirect()",3000); 		  </SCRIPT>';
     
    		}
     
    		else
     
    		{
     
    		echo "L'insertion a échoué";
     
    		echo '<SCRIPT LANGUAGE="JavaScript">
    								function redirect() {
    					window.location="edit_membre.php"
    				}
    				setTimeout("redirect()",3000); 		  </SCRIPT>';
     
            }				
     
     
    		}
     
    		break;

  7. #7
    Inactif
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 179
    Points : 202
    Points
    202
    Par défaut
    Ton mysql_real_escape_string passe le aussi sur les $_SESSION.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    263
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 263
    Points : 113
    Points
    113
    Par défaut
    Tu parle a cet endroit la?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    			$user = $_SESSION['nom'];
     
    		$image_destination = "../images/photo_cv/$user.jpg";

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    263
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 263
    Points : 113
    Points
    113
    Par défaut
    Citation Envoyé par sielfried Voir le message
    Ton mysql_real_escape_string passe le aussi sur les $_SESSION.
    Quelqu'un aurai une idée de quel variable de Session parlait Sielfried?

  10. #10
    Inactif
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 179
    Points : 202
    Points
    202
    Par défaut
    Ben toutes celles que tu passes dans mysql_query.

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    263
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 263
    Points : 113
    Points
    113
    Par défaut
    Ok, donc la dans mon contexte actuelle je passe de:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $user = $_SESSION['nom'];
    a

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $user = mysql_real_escape_string($_SESSION['nom']);

    Est'c'que j'ai bien comprie?

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

Discussions similaires

  1. [CKEditor] Upload d'images avec FCKeditor
    Par ludo74 dans le forum Bibliothèques & Frameworks
    Réponses: 17
    Dernier message: 04/06/2010, 16h39
  2. Réponses: 2
    Dernier message: 18/03/2007, 19h02
  3. [CKEditor] Upload d'image avec FCKeditor
    Par frutix dans le forum Bibliothèques & Frameworks
    Réponses: 3
    Dernier message: 01/03/2007, 19h31
  4. [VB6] Problème avec insertion d'icônes dans menu
    Par marsup54 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 02/03/2006, 21h38
  5. [Upload] uploader une image avec move_uploades_file
    Par pod1978 dans le forum Langage
    Réponses: 6
    Dernier message: 31/01/2006, 13h50

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