|

<p>PHP İle Veritabana Belge Aktarımı</p>



admin tarafından 2019-08-17 18:04:07 tarihinde yazıldı. Tahmini okunma süresi 1 dakika, 52 saniye. 433 kere görüntülendi.




Disclaimer


The information provided in this blog post is intended for educational and informational purposes only. It is not intended to encourage or promote any illegal or unethical activities, including hacking, cyberattacks, or any form of unauthorized access to computer systems, networks, or data.

Yasal Uyarı
Bu blog yazısında sağlanan bilgiler yalnızca eğitim ve bilgilendirme amaçlıdır. Bilgisayar korsanlığı, siber saldırılar veya bilgisayar sistemlerine, ağlara veya verilere herhangi bir şekilde yetkisiz erişim de dahil olmak üzere herhangi bir yasa dışı veya etik olmayan faaliyeti teşvik etme veya reklamlama amacı taşımaz.
Yasal bilgiler için yasal sayfasını inceleyebilirsiniz .

Merhabalar!

Bu yazımda sizlere PHP ile güvenli bir şekilde belge nasıl yüklenir bunu göstereceğim. Keyifli okumalar dilerim.  

Öncelikle Blob Nedir bunu açıklamamız lazım.

Blob : Verilerin base64 şeklinde veritabana yazılmış halidir. Bu bazı zaafiyetleri engeller. Avantajı bu. Devavantajı ise çok fazla veritaban trafiği ister.

Bu kısa tanımdan sonra kodlara geçelim isterseniz ?

Ilk önce veritabanımızı şu kodla oluşturalım :

CREATE TABLE `god3err_galeri` (
  `id` int(11) NOT NULL,
  `baslik` varchar(64) CHARACTER SET utf8 NOT NULL,
  `ext` varchar(8) CHARACTER SET utf8 NOT NULL,
  `zaman` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
  `data` mediumblob NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4;

Oluşturduktan sonra PHP dosyamıza ilk satırla girelim.

$kabul = array('jpg','png','gif','pdf');

Burada kabul edilen uzantıları girdik ve bunları şimdi kontrol ettirmeliyiz. If döngüleri burada işimize yarayacak.

if(isset($_FILES['resim']) && $_FILES['resim']['error'] == 0){
$uzanti = pathinfo($_FILES['resim']['name'], PATHINFO_EXTENSION);
if (in_array(strtolower($uzanti), $kabul)) {
//Veritaban Işlemleri
} else {
     echo '<script>
	alert("HATA : Dosya Uzantısı");
	window.location = "index.php"
	</script>';
    exit;
}

Bu şekilde kontrolü sağladık. Şimdi veritaban kısmına bakalım ne dersiniz ?

$update = $db->prepare("INSERT INTO galeri(baslik, data, zaman, ext) VALUES (:title, :data, :imgzaman, :ext) ");
$update->bindValue(':title', $_FILES['resim']['name']); //resmin adı
$update->bindValue(':imgzaman', date('Y-m-d H:i:s')); // yüklenme zamanı
$update->bindValue(':ext',  $_FILES['resim']['type']); // uzantıyı aldık
$update->bindValue(':data', file_get_contents($_FILES['resim']['tmp_name'])); //veriyi aldı
$db->beginTransaction();
$update->execute();
$db->commit();

//if döngüsü

if($update){
echo '<script>
alert("Başarılı");
window.location = "index.php"
</script>';
}
 else {
	 echo '<script>
	 alert("Başarısız");
	 window.location = "index.php"
	 </script>';
 }

Ve böylece veritabana belgemizi ve resmimizi aktardık. Sorularınız için yorum kısmını kullanabilirsiniz.

Okuduğunuz için teşekkürler.