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 :

Redimension d'image + insertion en BDD


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 134
    Par défaut Redimension d'image + insertion en BDD
    Bonjour,

    Je tente une redimension d'image plus insertion en BDD, mais ça ne fonctionne pas.

    Le script ne me retourne aucune erreur, mais l'image ne s'affiche pas, et l'image ne vas pas dans la BDD.

    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
    function redimensionner_physique($largeur_maximum,$hauteur_maximum,$taille,$photo_tmp,$photo,&$erreur,&$photo_miniature){
    	$extensions_acceptees = array('image/png','image/gif','image/jpeg');
    	@$information_image = getimagesize($photo_tmp);
     
    	if($taille == 0){
    		$erreur = 'Vous n\'avez choisis aucun fichier.';
    		return $erreur;
    	}
    	elseif($taille > 1048576){
    		$erreur = 'Votre image pèse plus d\'1 mo.';
    		return $erreur;
    	}
    	elseif(!in_array($information_image['mime'],$extensions_acceptees)){
    		$erreur = 'L\'extension de votre image n\'est pas correct. Les extensions acceptées sont png, gif, jpeg et jpg.';
    	}
    	elseif(substr_count($photo,'.') >= 2){
    		$erreur = 'Le nom de la photo envoyé ne peut contenir de "."';
    	}
    	else{
    		if($information_image['mime'] == 'image/gif'){
    			$photo_intermediaire = imagecreatefromgif($photo_tmp);
    		}
    		elseif($information_image['mime'] == 'image/png'){
    			$photo_intermediaire = imagecreatefrompng($photo_tmp);
    		}
    		else{
    			$photo_intermediaire = imagecreatefromjpeg($photo_tmp);
    		}
     
    		$reduction = (($largeur_maximum * 100)/$information_image[0]);
    		$hauteur = (($information_image[1] * $reduction)/100);
     
    		if($hauteur > $hauteur_maximum){
    			$reduction = (($hauteur_maximum * 100)/$information_image[1]);
    			$largeur = (($information_image[0] * $reduction)/100);
    			$photo_miniature = imagecreatetruecolor($largeur,$hauteur_maximum);
    			imagecopyresampled($photo_miniature,$photo_intermediaire,0,0,0,0,$largeur,$hauteur_maximum,$information_image[0],$information_image[1]);		
    			return $photo_miniature;
    		}
    		else{
    			$reduction = (($largeur_maximum * 100)/$information_image[0]);
    			$photo_miniature = imagecreatetruecolor($largeur_maximum,$hauteur);
    			imagecopyresampled($photo_miniature,$photo_intermediaire,0,0,0,0,$largeur_maximum,$hauteur,$information_image[0],$information_image[1]);		
    			return $photo_miniature;
    		}
    	}
    }
     
    									if(isset($_POST['envoyer'])){
    										$largeur_maximum = 200;
    										$hauteur_maximum  = 300;						
    										$taille = $_FILES['photo_profil']['size'];
    										$photo_tmp = $_FILES['photo_profil']['tmp_name'];
    										$photo = $_FILES['photo_profil']['name'];
     
    										redimensionner_physique($largeur_maximum,$hauteur_maximum,$taille,$photo_tmp,$photo,$erreur,$photo_miniature);
     
    										if(!empty($erreur)){
    											echo '
    											<br />
    											<div id="erreur">
    												'.$erreur.'
    											</div>';
    										}
    										else{
    											mysql_query('UPDATE SET Photo_profil ="'.$photo_miniature.'" WHERE Pseudo="'.$compte_utilise.'"');
    											echo '<img src="'.$photo_miniature.'">';
    										}
    									}
    Une idée ?

  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
    Est-ce que tu as fais un minimum de debugage ?
    Par exemple en placant des echo pour suivre le deroulement de ton script.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 134
    Par défaut
    A priori oui, puisque j'ai copié ce code depuis une page déjà codé par mes soins et qui fonctionne. :/

    Je me demande si ça ne vient pas des variables entre parenthèse après le "redimensionner_physique"

  4. #4
    Membre Expert
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Par défaut
    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
     
    if(isset($_POST['envoyer'])){
    $largeur_maximum = 200;
    $hauteur_maximum  = 300;						
    $taille = $_FILES['photo_profil']['size'];
    $photo_tmp = $_FILES['photo_profil']['tmp_name'];
    $photo = $_FILES['photo_profil']['name'];
     
    //c'est ici ton erreur $photo_miniature ??
    $photo_miniature = redimensionner_physique($largeur_maximum,$hauteur_maximum,$taille,$photo_tmp,$photo,$erreur,$photo_miniature);
     
    if(!empty($erreur)){
    echo '<br /><div id="erreur">'.$erreur.'</div>';
    }
    else{
    mysql_query('UPDATE SET Photo_profil ="'.$photo_miniature.'" WHERE Pseudo="'.$compte_utilise.'"');
    }

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 134
    Par défaut
    Salut,

    Excuse moi, je ne comprends pas ce que tu veux dire. ^^'

  6. #6
    Membre Expert
    Avatar de Thes32
    Homme Profil pro
    Développeur PHP, .Net, T-SQL
    Inscrit en
    Décembre 2006
    Messages
    2 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur PHP, .Net, T-SQL

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 379
    Par défaut
    Dans ton code initial tu as juste exécute la fonction sans pour autant sauvegardé la valeur retournée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    redimensionner_physique($largeur_maximum,$hauteur_maximum,$taille,$photo_tmp,$photo,$erreur,$photo_miniature);
    qui devait plutôt être

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $photo_miniature = redimensionner_physique($largeur_maximum,$hauteur_maximum,$taille,$photo_tmp,$photo,$erreur,$photo_miniature);

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 134
    Par défaut
    Merci de ta contribution.

    Malheureusement, aucun changement. :/

Discussions similaires

  1. insertion image dans une BDD SQL server
    Par yamyoung dans le forum Windows Forms
    Réponses: 3
    Dernier message: 14/04/2009, 12h10
  2. Réponses: 5
    Dernier message: 21/01/2007, 20h31
  3. pb double insertion dans BDD
    Par oceane751 dans le forum Requêtes
    Réponses: 3
    Dernier message: 26/12/2005, 10h59
  4. [SGBD] formulaire insertion date Bdd Mysql
    Par Mimisator dans le forum Administration
    Réponses: 7
    Dernier message: 30/11/2005, 10h38
  5. Insertion dans BDD type ACCESS
    Par NeHuS dans le forum ASP
    Réponses: 2
    Dernier message: 20/04/2005, 11h53

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