私はphpが初めてで、写真をアップロードし、そこから写真を削除し、写真を編集する必要があるシステムを設計しようとしています。私は move_uploaded_file(); を使用しました。写真をアップロードします。そして unlink(); 写真を削除するには、フォームによる写真のアップロードと削除が正常に行われました。しかし、編集のどこが間違っていたのかわかりません.私の問題は、編集フォームで、編集する新しい写真を提供していないことです.mysqlテーブルが更新されています.しかし、新しい写真が提供されると、フォームが機能しません.. . これが私がやったことです.. 送信部分で:
<?php
$product=get_product_by_id($_GET['pid']);/*is a function to get product from database*/
?>
<form enctype="multipart/form-data" action="edit_product.php?pid=<?php echo urlencode($_GET['pid']); ?>" method="post">
<p>Product name:
<input type="text" name="name" value="<?php echo $product['name']?>" id="name" />
</p>
<p>Actual Photo:
<input type="file" name="photo" >
</p>
<p>Thumbnail Photo:
<input type="file" name="thumb" >
</p>
<p>Visible:
<input type="radio" name="visible" value="0" /> No
<input type="radio" name="visible" value="1" /> Yes
</p>
<input type="submit" name="submit" value="Edit Product" />
</form>
受信部分:
if (isset($_POST['submit'])) {
$id = mysql_prep($_GET['pid']);
$name = mysql_prep($_POST['name']);
$visible = mysql_prep($_POST['visible']);
if(empty($_POST['photo'])){
$query = "UPDATE products SET
name = '{$name}',
visible = {$visible}
WHERE id = {$id}";
}
else{
$product=get_product_by_id($id);
//echo $product['photo'];
$target = "images/products/";
$target=$target . $product['photo'];
$target2 = "images/product_thumbs/";
$target2=$target2 . $product['thumb'];
unlink($target);
unlink($target2);
$photo=$_POST['name'].".jpg";
$photo = mysql_prep($photo);
$thumb=$_POST['name']."_thumb.jpg";
$thumb = mysql_prep($thumb);
$target = "images/products/";
$target = $target .$name.".jpg";
$target2 = "images/product_thumbs/";
$target2 = $target2 .$name."_thumb.jpg";
move_uploaded_file($_FILES['photo']['tmp_name'], $target);
move_uploaded_file($_FILES['thumb']['tmp_name'], $target2);
$query = "UPDATE products SET
name = '{$name}',
photo = '{$photo}',
thumb = '{$thumb}',
visible = {$visible}
WHERE id = {$id}";
}
}