Sitemin logosunu değiştirmek için bir resim yükleme kodu buldum ve uğraşarak çalışır hale getirdim. Fakat içinden çıkamadığım bir kaç sorunum mevcut. İlk olarak veritabanına kayıt edilen resmin adı ve uzantısı olması gerekirken. Resmin sadece adı ekleniyor. Uzantısını veritabanına kayıt ettiremedim. İkinci sorun ise yüklenen dosyanın belirttiğim dizine yüklenmemesi (bu sorun localhost ile çalıştığımdan olabilir mi?)
Yükleme yaptığım form
Post edildikten sonra kayıt eden eski veriyi silen kodlar
if ($_POST) {
$imgUpload = "../images/";
$imgDirectory = $_FILES["sresim"]["tmp_name"];
$imgFileName = $_FILES["sresim"]["name"];
$imgType = $_FILES["sresim"]["type"];
// $fresim = $_POST['sresim'];
$imgExtension = @substr($imgFileName, -4);
$imgSubsNewName = @substr(@md5(@uniqid(@rand())),0,30);
$imgNewName = $imgSubsNewName.$imgExtension;
$imgSil = mysql_fetch_assoc(mysql_query("SELECT ayarlogo FROM ayarlar WHERE ayarid='1'"));
$imgSill = $imgSil['ayarlogo'];
$imgSilinecek = @unlink($imgUpload.$imgSill);
$fileUpload = @move_uploaded_file($imgDirectory,$imgUpload.$imgNewName);
$logoInsert =mysql_query("update ayarlar set ayarlogo='$imgNewName' where ayarid='1'") or die("Hata: kayıt işlemi gerçekleşemedi.");
if($logoInsert){
echo '
Logo değiştirildi.
';
echo '';
}else{
echo '
-
Üyelik
06.03.2014
-
Yaş/Cinsiyet
33 / E
-
Meslek
Öğrenci
-
Konum
Diğer
-
Ad Soyad
M** B**
-
Mesajlar
658
-
Beğeniler
78 / 125
-
Ticaret
0, (%0)
Merhabalar, PHP'yi iyi bilmediğimden yanlış söylüyor olabilirim. Bununla birlikte şu kod uzantısız eklenmesine sebep oluyor olabilir.
$imgExtension = @substr($imgFileName, -4);
//Bu kod parçası örneğin "resim_adi.jpeg" string ifadesini (yani dosya adı) "resim_adi" olarak değişkene aktarır.
Yine emin değilim, dosya yüklenme problemi için ise önerim şu:
$imgUpload = "../images/"
//Yukarıdaki kod yerine
$imgUpload = $_SERVER['DOCUMENT_ROOT'] . $varsa_alt_klasorlerin_adi
-
Üyelik
07.11.2013
-
Yaş/Cinsiyet
38 / E
-
Meslek
Web&Grafik Tasarım
-
Konum
Samsun
-
Ad Soyad
B** B**
-
Mesajlar
169
-
Beğeniler
16 / 7
-
Ticaret
0, (%0)
Aslın bakarsan şöyle bir saçmalık da mevcut. Aynı kodlar başka yaptığım bir sistem üzerinden çalışıyor. Çok garip ama burada çalıştıramadım.
-
Üyelik
29.09.2015
-
Yaş/Cinsiyet
39 / E
-
Meslek
yazılım geliştirme
-
Konum
İzmir
-
Ad Soyad
M** O**
-
Mesajlar
66
-
Beğeniler
15 / 15
-
Ticaret
3, (%67)
Exor belki konu ile alakalı olabilir, veritabanında resim yolunun yazılığı sutunun karakter genişliğini knt ettiniz mi? belki yetersiz kalıyor olabilir.
-
Üyelik
07.11.2013
-
Yaş/Cinsiyet
38 / E
-
Meslek
Web&Grafik Tasarım
-
Konum
Samsun
-
Ad Soyad
B** B**
-
Mesajlar
169
-
Beğeniler
16 / 7
-
Ticaret
0, (%0)
ikyazilim bu da değil çünkü varchar 255 olarak yaptım. Görselin adı da (f00ea6e2564ecf6af198a810f1dfd9) bu sıkıntım sonuna uzantı eklememesi.
-
Üyelik
29.09.2015
-
Yaş/Cinsiyet
39 / E
-
Meslek
yazılım geliştirme
-
Konum
İzmir
-
Ad Soyad
M** O**
-
Mesajlar
66
-
Beğeniler
15 / 15
-
Ticaret
3, (%67)
Exor hocam siz komple ismi mi md5liyorsunuz $fileUpload = @move_uploaded_file($imgDirectory,$imgUpload.$imgNewName.$imgfilename) şeklinde denermisiniz?
-
Üyelik
07.11.2013
-
Yaş/Cinsiyet
38 / E
-
Meslek
Web&Grafik Tasarım
-
Konum
Samsun
-
Ad Soyad
B** B**
-
Mesajlar
169
-
Beğeniler
16 / 7
-
Ticaret
0, (%0)
ismi komple md5liyorum sonra uzantıyı alıp nokta ile başka bir değişkende birleştiriyorum
-
Üyelik
28.11.2013
-
Yaş/Cinsiyet
30 / E
-
Meslek
Ameliyathane Hemşiresi
-
Konum
Afyon
-
Ad Soyad
I** Ç**
-
Mesajlar
2633
-
Beğeniler
344 / 487
-
Ticaret
12, (%100)
sorun çözülmüştü arkadaş güncellememiş hata yok yazdığı herşey doğru sadece dosya yüklenip yüklenmediği kontrol edilmemiş
dosya yükleme kodundan sonra(move_uploaded_file(tmpdizin,kayityolu,adi);)
if($_FILES["resim"]["size"]>0)
{
//veritabanına kaydetme olayını burda yap
echo "Yüklendi";
}
else
{
echo "Yüklenmedi";
}
Başka biri aynı sorunu yaşarsa çözüm olsun diye yazdım başka bir amacım yoktur
-
Üyelik
07.11.2013
-
Yaş/Cinsiyet
38 / E
-
Meslek
Web&Grafik Tasarım
-
Konum
Samsun
-
Ad Soyad
B** B**
-
Mesajlar
169
-
Beğeniler
16 / 7
-
Ticaret
0, (%0)
@ismail03 Teşekkür ederim ben yazacaktım unutmuşum iyi oldu yazdığın.
-
Üyelik
28.11.2013
-
Yaş/Cinsiyet
30 / E
-
Meslek
Ameliyathane Hemşiresi
-
Konum
Afyon
-
Ad Soyad
I** Ç**
-
Mesajlar
2633
-
Beğeniler
344 / 487
-
Ticaret
12, (%100)
Exor ben çok aradım o yüzden yazdım ha ben yazmışım ha siz yazmışsınız farketmez diye düşünüyorum hocam :)