- Mesajlar
- 579
Resim ekleme local de oluyor, hostindg de olmuyor.
aceba nerde hata yapıyorum.
aceba nerde hata yapıyorum.
Kod:
<?php
//Veritabanı bağlantı dosyamızı çekiyoruz
require_once("vtbaglan.php");
//Fonksiyonlar dosyamızı çekiyoruz
require_once("fonksiyonlar.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />
<title>PHP ve MySQL Resim Upload</title>
</head>
<body>
<?php
/*
Bir string değişken oluştururp bu değişken sayesinde başka sayfa oluşturup
işlem yapacağımıza tek bir sayfada string değişkenimiz sayesinde işlem yapabiliriz.
Ayrıca bu string değişken başka sayfalara taşınıp kullanılabilir.
*/
$i = $_GET['i']; //Bir string değişken oluşturuyoruz
switch($i){
case "": //$i string değişkeni boş ise yani sayfaya ilk girildiğinde
?>
<h3>Resim Upload Formu...</h3>
<form action="resimekle.php?i=upload" method="post" enctype="multipart/form-data">
<label>Resim: <input name="file_resim" type="file" /></label>
<br /><br />
<input type="submit" value="Yükle!" />
</form>
<h3>Yüklenen Resimler...</h3>
<?php
echo '<table width="500" border="1">'; //Reesimlerimizi listelemek için bir tablo oluşturduk
$resim_cek = mysql_query("SELECT * FROM resimler ORDER BY id DESC"); //Resimleri en son eklenenden başlayarak çekmemiz için gerekli mysql kodumuz
while($resim_cek_yeni = mysql_fetch_array($resim_cek)){ //while döngüsü ile resimlerimizi listeliyoruz
$id = $resim_cek_yeni['id']; //Resmin id'sini alıyoruz
$gy_al = getimagesize($resim_cek_yeni['resim_url']); //Resmin genişlik ve yüksekliğini alıyoruz
//Resimlerimizi tablonun satırlarına ekleyip listeliyoruz
echo '
<tr>
<td width="150"><a href="'.$resim_cek_yeni['resim_url'].'"><img src="'.$resim_cek_yeni['resim_url'].'" width="150" height="150" border="0" /></a></td>
<td width="334" valign="top">
<b>Boyutu:</b> '.$resim_cek_yeni['resim_boyutu'].'<br />
<b>Türü:</b> '.$resim_cek_yeni['resim_turu'].'<br />
<b>Eklenme:</b> '.$resim_cek_yeni['eklenme'].'<br />
<b>Genişlik ve Yükseklik:</b> '.$gy_al[0].' x '.$gy_al[1].'<br /><br />
Resimi <a href="resimekle.php?i=sil&id='.$id.'">Silin</a> veya <a href="'.$resim_cek_yeni['resim_url'].'">Büyütün</a>
</td>
</tr>';
}
echo '</table>';
break;
case "upload": //$i isminde oluşturduğumuz string değişkenin değeri yani upload yapmamız için gerekli kodlamaların bulunduğu değişken
//Resim Upload aracından verileri alıyoruz
$resim_isim = $_FILES["file_resim"]["name"]; //Resmin ismini çekiyoruz
$resim_turu = $_FILES["file_resim"]["type"]; //Resmin türü. Örn; JPEG, PNG, GIF vs.
$resim_boyut_orj = $_FILES["file_resim"]["size"]; //Resmin orjinal boyutunu alıyoruz
$resim_boyut_str = strBoyut($_FILES["file_resim"]["size"]); //Resmin dönüştürülmüş boyutunu alıyoruz
$resim_kaynak = $_FILES["file_resim"]["tmp_name"]; //Resmin hangi kaynaktan geldiğini alıyoruz
$resim_hedef = "resimler/"; //Resmin yükleneceği yolu bir değişkene atadık
$eklenme_tarih = date("d.m.Y"); //Bir tarih formatı oluşturduk
if($resim_kaynak == ""){ //Eğer resmin kaynağı boş iste yani hiç resim seçilmemiş ise hata mesajı verdiriyoruz
echo '<script type="text/javascript">alert("Üzgünüz! Bir resim seçmelisiniz.");</script>';
echo '<meta http-equiv="refresh" content="0;URL=resimekle.php">';
}elseif(($resim_turu != "image/jpeg") and ($resim_turu != "image/png") and ($resim_turu != "image/gif")){ //Eğer seçilen resimlerin türü JPEG, PNG veya GIF değilse bir hata mesajı verdiriyoruz
echo '<script type="text/javascript">alert("Seçtiğiniz dosya jpeg, png ve gif formatlarında olmalıdır!");</script>';
echo '<meta http-equiv="refresh" content="0;URL=resimekle.php">';
}elseif($resim_boyut_orj > 960000){
echo '<script type="text/javascript">alert("Resim boyutu çok büyük maximum 960kb boyutunda resim yükleyebilirsiniz!");</script>';
echo '<meta http-equiv="refresh" content="0;URL=resimekle.php">';
}else{ //Eğer resim seçilmişse ve türüde uygunsa resmi hem sunucumuza yüklüyoruz(upload) hemde veritabanımıza kaydediyoruz
$rasgele_isim = rand(1,10000); //1 ile 10.000 sayıları arasında rasgele bir sayı üretiyoruz
//Resmi sunucuya yüklememiz(upload) için gereken php kodumuz ayrıca rasgele ürettiğimiz sayı ile resmimizin yanına ürettiğimiz sayıyı ekleyip aynı resimden olma ihtimalini yok ediyoruz
$resim_upload = move_uploaded_file($resim_kaynak,$resim_hedef.'/'.$rasgele_isim . "-" . $resim_isim);
//Veritabanına kaydedilirken sadece resmin ismi değilde resmin yolu, rasgele sayı ürettiğimiz kodumuz ile resmin ismini birleştirerek veritabanına kaydetmemiz için yeni bir değişken oluşturduk
$resim_isim_yeni = "resimler/" .$rasgele_isim. "-".$resim_isim."";
$kaydet = mysql_query("INSERT INTO resimler (resim_url,resim_boyutu,resim_turu,eklenme) VALUES ('$resim_isim_yeni','$resim_boyut_str','$resim_turu','$eklenme_tarih')"); //Veritabanına eklememiz için gereken mysql kodumuz
if($kaydet){ //Eğer işlem başarılı olursa onay mesajı verdiriyoruz
echo '<script type="text/javascript">alert("Resim başarıyla eklendi.");</script>';
echo '<meta http-equiv="refresh" content="0;URL=resimekle.php">';
}else{ //Eğer bir sorun olursa hata mesajı verdiriyoruz
echo '<script type="text/javascript">alert("Hata! Resim eklenemedi.");</script>';
echo '<meta http-equiv="refresh" content="0;URL=resimekle.php">';
}
}
break;
case "sil":
$id = $_GET['id']; //Resimleri listelerken çektiğimiz resmin id'si
$silincek_resim = mysql_query("SELECT * FROM resimler WHERE id=$id"); //Silincek resmin ismini çekmek için gerekli mysql kodumuz
$silincek_resim_yeni = mysql_fetch_array($silincek_resim); //Silincek resmin ismini çekmek için mysql_fetch_array() fonksiyonumuzu kullanıyoruz
$resim_sil = mysql_query("DELETE FROM resimler WHERE id=$id"); //Resmi silmek için gerekli mysql kodumuz
if($resim_sil){ //Eğer resim başarıyla silinirse onay mesajı verdiriyoruz
echo '<script type="text/javascript">alert("Resim başarıyla silindi.");</script>';
echo '<meta http-equiv="refresh" content="0;URL=resimekle.php">';
@unlink($silincek_resim_yeni['resim_url']); //Resmi sunucudan silmek için gerekli fonksiyonumuz
}else{ //Eğer resim silinirken bir sorun olursa hata mesajı verdiriyoruz
echo '<script type="text/javascript">alert("Hata! Resim silinemedi.");</script>';
echo '<meta http-equiv="refresh" content="0;URL=resimekle.php">';
}
break;
}
?>
</body>
</html>