+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5
  1. #1
    Nouveau Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juin 2006
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme

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

    Informations forums :
    Inscription : juin 2006
    Messages : 128
    Points : 31
    Points
    31

    Par défaut Double entrée dans la base

    Bonjour,

    Cela plusieurs jours que je planche sur un petit soucis avec un script d’actualitée, je tourne donc vers vous pour que vous puissiez m'aider ^^
    Le script me génère deux entrées dans la BDD quand je poste l'actu avec une image. une entrée avec l'image uppé, et une avec la variable redéfinie avec l'image 'noview'.
    (alors que si je post une actu sans image pas de soucis le script ne fais bien qu'une seul entrée )

    Fonctionnement :
    Je peux poster un actualité avec ou sans image.

    Avec image :
    si il y'a une image, je la up, j'en crée une miniature, et j'enregistre dans la BDD.

    Sans image :
    je remplace l'array de variable $img, par une image définie 'noview', et j'enregistre dans la BDD

    Code :
    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
     
    $caract  = array('À','Á','Â','Ã','Ä','Å','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï','Ð','Ñ','Ò','Ó','Ô','Õ','Ö','Ù','Ú','Û','Ü','Ý','à','á','â','ã','ä','å','ç','è','é','ê','ë','ì','í','î','ï','ñ','ò','ó','ô','õ','ö','ù','ú','û','ü','ý','ÿ');
    $replace  = array('À','Á','Â','Ã','Ä','Å','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï','Ð','Ñ','Ò','Ó','Ô','Õ','Ö','Ù','Ú','Û','Ü','Ý','à','á','â','ã','ä','å','ç','è','é','ê','ë','ì','í','î','ð','ñ','ò','ó','ô','õ','ö','ù');
    $title = str_replace($caract, $replace, ucfirst(strtolower(($_POST['title']))));
    $news = str_replace($caract, $replace, $_POST['news']);
    $active = $_POST['active'];
    $img=($_FILES['mon_image']);
    $category = $_POST['category'];
     
    if($action == 'add'){
    	// Ajout sans photo
    	if(!empty($img)){
    		$img='noview.png';
    		mysql_connect($sql_host,$sql_user,$sql_pass) or die("Erreur de connexion au serveur...<br />". mysql_error());
    		mysql_select_db($sql_data) or die("Erreur de connexion a la base de donnees...<br />". mysql_error());
    		mysql_query("INSERT INTO br_news VALUES('', '$active', '$category', '$title', '$img','$news', '" . time() . "')") or die("Erreur d'enregistrement dans la base de donnee...<br />". mysql_error());
    		mysql_close();
    		echo '<i><a href="list_actu.php" class="lien">< Retour</a></i><br />';
    	}	
     
     
     
    //Ajout avec photo
    	$dir = '../images/actu/';
    	$dir_mini = '../images/actu/mini/';
    	$ratio = 300;
    	if (empty($_FILES['mon_image']['tmp_name'])) {
    		// si oui, on affiche un petit message d'erreur
    		$erreur = 'Aucun fichier envoye.';
    	}
    	else {
    		$tableau = @getimagesize($_FILES['mon_image']['tmp_name']);
    		if ($tableau == FALSE) {
    			unlink($_FILES['mon_image']['tmp_name']);
    			$erreur = 'Votre fichier n\'est pas une image.';
    		}
    		else {
    			if ($tableau[2] == 2 || $tableau[2] == 3) {
    				if (is_file('../images/gallerie/'.$_FILES['mon_image']['name'])) $file_upload = '_'.$_FILES['mon_image']['name'];
    				else $file_upload = $_FILES['mon_image']['name'];
     
    				copy ($_FILES['mon_image']['tmp_name'], $dir.'/'.$file_upload);
     
     
    				if ($tableau[2] == 2) {
     
    					$src = imagecreatefromjpeg($dir.'/'.$file_upload);
    					if ($tableau[0] > $tableau[1]) {
    						$im = imagecreatetruecolor(round(($ratio/$tableau[1])*$tableau[0]), $ratio);
    						imagecopyresampled($im, $src, 0, 0, 0, 0, round(($ratio/$tableau[1])*$tableau[0]), $ratio, $tableau[0], $tableau[1]);
    					}
    					else {
    						$im = imagecreatetruecolor($ratio, round(($ratio/$tableau[0])*$tableau[1]));
    						imagecopyresampled($im, $src, 0, 0, 0, 0, $ratio, round($tableau[1]*($ratio/$tableau[0])), $tableau[0], $tableau[1]);
    					}
    					// on copie notre fichier g?n?r? dans le r?pertoire des miniatures
    					imagejpeg ($im, $dir_mini.'/'.$file_upload);
    				}
    				elseif ($tableau[2] == 3) {
    					$src = imagecreatefrompng($dir.'/'.$file_upload);
    					if ($tableau[0] > $tableau[1]) {
    						$im = imagecreatetruecolor(round(($ratio/$tableau[1])*$tableau[0]), $ratio);
    						imagecopyresampled($im, $src, 0, 0, 0, 0, round(($ratio/$tableau[1])*$tableau[0]), $ratio, $tableau[0], $tableau[1]);
    					}
    					else {
    						$im = imagecreatetruecolor($ratio, round(($ratio/$tableau[0])*$tableau[1]));
    						imagecopyresampled($im, $src, 0, 0, 0, 0, $ratio, round($tableau[1]*($ratio/$tableau[0])), $tableau[0], $tableau[1]);
    					}
    					imagepng ($im, $dir_mini.'/'.$file_upload);
    				}
     
    				$img=$file_upload;
     
    				mysql_connect($sql_host,$sql_user,$sql_pass) or die("Erreur de connexion au serveur...<br />". mysql_error());
    				mysql_select_db($sql_data) or die("Erreur de connexion a la base de donnees...<br />". mysql_error());
    				mysql_query("INSERT INTO br_news VALUES('', '$active', '$category', '$title', '$img','$news', '" . time() . "')") or die("Erreur d'enregistrement dans la base de donnee...<br />". mysql_error());
    				mysql_close();				
    				exit();
     
    				echo '<i><a href="list_actu.php" class="lien">< Retour</a></i><br />';
    			}
    			else {
    				unlink($_FILES['mon_image']['tmp_name']);
    				$erreur = 'Votre image est d\'un format non supporte.';
    			}
    		}
    	}

    Merci pour votre aide & passer de bonnes fêtes

  2. #2
    Rédacteur/Modérateur
    Avatar de jreaux62
    Homme Profil pro Jérôme Réaux
    Webdesigner
    Inscrit en
    août 2008
    Messages
    5 404
    Détails du profil
    Informations personnelles :
    Nom : Homme Jérôme Réaux
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Arts - Culture

    Informations forums :
    Inscription : août 2008
    Messages : 5 404
    Points : 10 396
    Points
    10 396

    Par défaut

    Bonjour,
    "Si tu suis le chemin qui s'appelle « plus tard », tu arriveras à la place qui s'appelle « jamais »."
    François Camille Prévot (1910-1996), instituteur puis Directeur d'école et... mon grand-père.
    "Ce qui se conçoit bien s'énonce clairement. Et les mots pour le dire arrivent aisément."
    Nicolas Boileau-Despréaux (1636-1711).
    Mes tutos DVP
    Gestion-Affichage de Nouvelles
    Affichage en tableau HTML
    Fonctions de redimensionnement d'images

  3. #3
    Nouveau Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juin 2006
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme

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

    Informations forums :
    Inscription : juin 2006
    Messages : 128
    Points : 31
    Points
    31

    Par défaut

    @jreaux62, il ne manquerait pas quelque chose à ta réponse ?

    Si je met,
    le script ne m'enregistre pas la l'actualité sans image car Array n'est pas vide :
    Code :
    array(5) { ["name"]=> string(0) "" ["type"]=> string(0) "" ["tmp_name"]=> string(0) "" ["error"]=> int(4) ["size"]=> int(0) }

  4. #4
    Rédacteur/Modérateur
    Avatar de jreaux62
    Homme Profil pro Jérôme Réaux
    Webdesigner
    Inscrit en
    août 2008
    Messages
    5 404
    Détails du profil
    Informations personnelles :
    Nom : Homme Jérôme Réaux
    Âge : 47
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Arts - Culture

    Informations forums :
    Inscription : août 2008
    Messages : 5 404
    Points : 10 396
    Points
    10 396

    Par défaut

    Je pense que tu as mis le doigt dessus, sans en prendre conscience :
    $img (autrement dit $_FILES['mon_image']) n'est jamais empty !
    Donc : qu'il y ait une image à télécharger ou pas, tu crées l'image "noview".

    C'est la position même de tes tests (if...) qu'il faut revoir.

    Perso, je m'y prend autrement :
    1/ INSERT en BdD des valeurs "text" (+ image "noview.png", par défaut)
    2/ récupération du dernier id inséré : mysql_insert_id()
    3/ traitement "file" : image uploadée ? on modifie (UPDATE) le champ image en BdD.

    N.B. mysql_ est obsolète : lui préférer mysqli_ ou PDO.
    "Si tu suis le chemin qui s'appelle « plus tard », tu arriveras à la place qui s'appelle « jamais »."
    François Camille Prévot (1910-1996), instituteur puis Directeur d'école et... mon grand-père.
    "Ce qui se conçoit bien s'énonce clairement. Et les mots pour le dire arrivent aisément."
    Nicolas Boileau-Despréaux (1636-1711).
    Mes tutos DVP
    Gestion-Affichage de Nouvelles
    Affichage en tableau HTML
    Fonctions de redimensionnement d'images

  5. #5
    Nouveau Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    juin 2006
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme

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

    Informations forums :
    Inscription : juin 2006
    Messages : 128
    Points : 31
    Points
    31

    Par défaut

    Citation Envoyé par jreaux62 Voir le message
    C'est la position même de tes tests (if...) qu'il faut revoir.
    Exact c'est good j'avais pas tilter que je pouvais imbriquer autrement. merci

    Citation Envoyé par jreaux62 Voir le message
    Perso, je m'y prend autrement :
    1/ INSERT en BdD des valeurs "text" (+ image "noview.png", par défaut)
    2/ récupération du dernier id inséré : mysql_insert_id()
    3/ traitement "file" : image uploadée ? on modifie (UPDATE) le champ image en BdD.
    A mon goût faire un Insert, puis un Update, cela viens à faire des opérations au serveur pour rien, si on peut lui insérer directement les bonnes valeurs

    Citation Envoyé par jreaux62 Voir le message
    N.B. mysql_ est obsolète : lui préférer mysqli_ ou PDO.
    Tout dépend de la vétusté de l'installation, et sa c'est pas moi qui gère mais merci comme même ^^

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •