UPDATE et image resize PHP/PDO
Bonjour à tous,
Débutant en PHP/PDO, j'ai conçu un code me permettant de modifier un ou plusieurs articles encodé dans une base de données.
Ces articles comprennent un ou plusieurs textes, une image et un pdf.
La difficulté que je rencontre est lors de l'UPDATE. Celui-ci fonctionne très bien pour le ou les textes mais pour les images et pdf's c'est autre chose.
Une fois l'UPDATE appliqué les images et pdf's sont modifés non pas sur l'article voulu mais sur le dernier encodé alors que le ou les textes se modifient bien sur l'article voulu ????
Ci-dessous vous trouverez le code en question pour l'UPDATE ainsi que le script resize.php
Auriez-vous une idée, une solution pour arranger le problème.
En vous remerciant à l'avance
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 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152
|
<?php
include "db-link.php";
include "class/resize.php";
if(isset($_POST['adouc_modifOk'])){
$_GET['id'] = $_POST['id'];
$valide = TRUE;
if((empty($_FILES["nameImg"]["name"]) && $_FILES["nameImg"]["name"] == "")){
$error = "<p style='background-color:red;padding:10px;text-align:center;color:#fff'>Veuillez re-sélectionner votre image afin d'éviter une erreur du système.</strong></p>";
$valide = TRUE;
} elseif($valide){
$error = "<p style='background-color:green;padding:10px;text-align:center;color:#fff'>Votre article a bien été modifié.</p>";
if(!empty($_FILES["nameImg"]["name"])){$db->exec('UPDATE classic SET img = ""');}else{}
if(!empty($_FILES["namePdf"]["name"])){$db->exec('UPDATE classic SET pdf = ""');}else{}
$req = $db->prepare("UPDATE classic SET description = :descriptionPrep,fonctionnement = :fonctionnementPrep
WHERE id = {$_GET['id']}");
$req->execute(array(
'descriptionPrep' => $_POST['description'],
'fonctionnementPrep' => $_POST['fonctionnement'],
));
$req1 = $db->query("SELECT MAX(id) AS imgNum FROM classic");
$identif1 = $req1->fetch(PDO::FETCH_ASSOC);
@$number1 = $identif1[imgNum];
$rep1 = dirname(__FILE__)."/../img/produits/classic/";
$file_tmp = $_FILES['nameImg']['tmp_name'];
$dest_file = './../img/produits/classic/'.$number1.".jpg";
resize_image($file_tmp,$dest_file);
$finalName1 = $number1.$_FILES['nameImg']['tmp_name'];
$finalName2 = $number1."-dellan.pdf";
move_uploaded_file($_FILES["nameImg"]["name"], $rep1.$finalName1);
move_uploaded_file($_FILES["namePdf"]["tmp_name"], $rep1.$finalName2);
}
}
$q = $db->query("SELECT * FROM classic WHERE id={$_GET['id']}");
$data = $q->fetch();
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>ADMIN - Modification Classic</title>
<link rel="stylesheet" href="css/reset.css">
<link rel="stylesheet" href="css/style.css">
<script src="js/tinymce/tinymce.min.js"></script>
<script>tinymce.init({
forced_root_block : "",
force_br_newlines : true,
force_p_newlines : false,
width : '100%',
language : 'fr_FR',
selector:'textarea',
plugins: "textcolor colorpicker",
toolbar: "forecolor backcolor fontsizeselect charmap undo redo styleselect bold italic link image alignleft aligncenter alignright"
});
</script>
</head>
<body>
<?php include "class/class_menu.php";?>
<div id="content">
<div id="content-right">
<div class="error">
<p>
<?php if(isset($error)) {echo $error;} else { false; } ?> <!-- Message d'erreur -->
</p>
</div>
<div id="title_admin">
<p>Modification</p>
</div>
<form enctype="multipart/form-data" action="ad_classic_modif.php" method="post">
<?php
$sql = $db->query("SELECT * FROM classic WHERE id={$_GET['id']}");
$data = $sql->fetch();
echo "<h1>Modifiez votre description: </h1><textarea style='height:250px;' placeholder='Votre texte ici' name='description'>".nl2br($data['description'])."</textarea>";
echo "<h1>Modifiez votre fonctionnement: </h1><textarea style='height:250px;' placeholder='Votre texte ici' name='fonctionnement'>".nl2br($data['fonctionnement'])."</textarea>";
?>
<br><br>
Image JPG :<input type="file" name="nameImg"/><br>
Image PDF :<input type="file" name="namePdf"/><br>
<input type="hidden" name="id" value="<?php echo $data['id'] ?>">
<input type="hidden" name="adouc_modifOk" value="1" /><br>
<input type="submit" value="Enregistrer"/>
</form><br>
</div>
</div>
<div id="clear"></div>
<script type="text/javascript" src="js/jquery-1.10.2.min.js"></script>
<script type="text/javascript" src="js/animate.js"></script>
<script type="text/javascript" src="js/lightbox.js"></script>
<script>
window.onload = function(){
document.getElementById('onglets').style.display = 'block';
document.getElementById('onglets').onclick = function(e){
var actuel = e ? e.target : window.event.srcElement;
if (!/li/i.test(actuel.nodeName) || actuel.className.indexOf('actif') > -1) {
return;
}
var allOnglets = document.getElementById('onglets').getElementsByTagName('li'),
i = allOnglets.length;
while(i--){
if(allOnglets[i] == actuel){
allOnglets[i].className += ' actif';
}
else{
allOnglets[i].className = allOnglets[i].className.replace('actif', '');
if(String.trim){
allOnglets[i].className.trim();
}
}
}
setDisplay();
}
setDisplay();
}
function setDisplay(){
var allOnglets = document.getElementById('onglets').getElementsByTagName('li'),
allContenus = document.getElementById('contenu').getElementsByTagName('div'),
i = allOnglets.length;
while(i--){
if(allOnglets[i].className.indexOf('actif') == -1){
allContenus[i].style.display = 'none';
}
else{
allContenus[i].style.display = 'block';
}
}
}
</script>
</body>
</html> |
resize.php
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
|
<?php
function resize_image($my_img,$folder){
$src_im = imagecreatefromjpeg($my_img);
$size = getimagesize($my_img);
$src_w = $size[0];
$src_h = $size[1];
$dst_w = 800;
$dst_h = round(($dst_w / $src_w) * $src_h);
$dst_im = imagecreatetruecolor($dst_w,$dst_h);
imagecopyresampled($dst_im,$src_im,0,0,0,0,$dst_w,$dst_h,$src_w,$src_h);
if (imagejpeg($dst_im,$folder)){
imagedestroy($dst_im);
imagedestroy($src_im);
return true;
}
else {
imagedestroy($dst_im);
imagedestroy($src_im);
return false;
}
}
?> |