Tek tıklamalı link nasıl yapılır?

kivancxd

Femtopat
Katılım
6 Eylül 2022
Mesajlar
45
Daha fazla  
Cinsiyet
Erkek
Web sitem üzerinden satış yapıyorum, cPanel üzerinden indir klasöründe indirilecek dosyalar bulunmakta lakin farklı şahıslarda URL'ye girerek indirebiliyor. Şöyle bir şey düşündüm lakin var mı bilmiyorum. Mantık şöyle; satacağım ürünü (.ZIP dosyası) bir siteye upload edeceğim bana ana linki verecek, ben de ürünümün indirme bağlantısını o yapacağım siteden müşteri "indir" butonuna bastığı anda o linke tıklamış olacak ve farklı tek kullanımlık bir linkten indiriyor gösterecek indirim başladıktan sonra o URL gidecek. Böyle bir site biliyorsanız yardımcı olabilir misiniz? Pek PHP bilmiyorum giriş yapmalı sistemi beceremedim.
 
Doyayi istedigin upload sitesine upload et daha sonra indir indirdikten sonra indirilenlere git tarayiciya dosyaya sağ tik yap linki kopyala de ve artik o linke basıldığında otomatik dosyayi indirecek.
 
Doyayi istedigin upload sitesine upload et daha sonra indir indirdikten sonra indirilenlere git tarayiciya dosyaya sağ tik yap linki kopyala de ve artik o linke basıldığında otomatik dosyayi indirecek.
Dediğim bu değil hocam ürünü 25 liradan satıyorum, kullanıcı ürünü satın alıyor indirmek istediğinde ona bir link oluşturacak otomatik.
 
Web sitem üzerinden satış yapıyorum, cPanel üzerinden indir klasöründe indirilecek dosyalar bulunmakta lakin farklı şahıslarda URL'ye girerek indirebiliyor. Şöyle bir şey düşündüm lakin var mı bilmiyorum. Mantık şöyle; satacağım ürünü (.ZIP dosyası) bir siteye upload edeceğim bana ana linki verecek, ben de ürünümün indirme bağlantısını o yapacağım siteden müşteri "indir" butonuna bastığı anda o linke tıklamış olacak ve farklı tek kullanımlık bir linkten indiriyor gösterecek indirim başladıktan sonra o URL gidecek. Böyle bir site biliyorsanız yardımcı olabilir misiniz? Pek PHP bilmiyorum giriş yapmalı sistemi beceremedim.
Web hostinginizde yeterli alan varsa kendiniz dosyayı kendi sitenize yükleyin.
 
Web sitem üzerinden satış yapıyorum, cPanel üzerinden indir klasöründe indirilecek dosyalar bulunmakta lakin farklı şahıslarda URL'ye girerek indirebiliyor. Şöyle bir şey düşündüm lakin var mı bilmiyorum. Mantık şöyle; satacağım ürünü (.ZIP dosyası) bir siteye upload edeceğim bana ana linki verecek, ben de ürünümün indirme bağlantısını o yapacağım siteden müşteri "indir" butonuna bastığı anda o linke tıklamış olacak ve farklı tek kullanımlık bir linkten indiriyor gösterecek indirim başladıktan sonra o URL gidecek. Böyle bir site biliyorsanız yardımcı olabilir misiniz? Pek PHP bilmiyorum giriş yapmalı sistemi beceremedim.
Dosyayı sunucunda tutacaksın, bir kez indirildikten sonra dosya yolunu değiştirecek veya dosyayı sileceksin. Bu şekilde dosyayı aynı linkten sadece 1 kez indirebilecek.

site.com/klasor/dosyaadi.zip

Bu dosyanın linkini bir butona koydun ve 1 kere tıklandı, PHP olarak arka planda dosya indirildiğinde

site.com/klasor/yenidosyaadi.zip

yapacaksın. Ya da dosyayı sunucudan sileceksin.
Eğer doğru anladıysam bu şekilde çözebilirsin.
 
Anladığım kadarıyla bir dosyayı sadece bir kere indirmeye izin veren harici bir servis arıyorsunuz. Bildiğim böyle bir servis yok. PHP ile de yapılabilir fakat çok basit bir şey değil. Dosyayı kendiniz manuel olarak okutup PHP ile yollayıp sonradan gönderildi diye kaydetmeniz ve onu kontrol etmeniz gerekiyor.

Şöyle bir mantıkla yapılabilir. Kendi PHP hostunuzdaki dosyaya doğrudan link vermeden gerekli kontrolleri yaptıktan sonra PHP ile dosyayı gönderebilirsiniz. Doğrudan link vermemek önemli yoksa yine indirme sayısına limit koyamazsınız.

Şuradaki mantığı inceleyebilirsiniz:

Header'lar ile PHP ile HTML sayfası değil dosya oluşturduğumuzu belirtiyoruz

Ob_clean ve flush ile gönderme işlemine başlıyoruz

Filesize'a göre gönderilecek dosya parça boyutlarını belirliyoruz. Dosya yine kullanıcıya tek parça gidecek fakat RAM'e yük binmemesi için chunk mantığı ile parça parça yolluyoruz.

fopen ile dosyayı açıp fread ile parça parça okuyup ob_flush, flush komutları ile parça parça gönderiyoruz.

Tüm işlemler bitince de record_download gibi bir fonksiyon ile dosyayı indirildi olarak işaretliyoruz.

Tabii php scriptinin başında da eğer dosya işaretli ise kullanıcıya göndermeme kontrolü de ekleyebiliriz.

Bu işaretleme, kontrol mekanizması için veritabanında bir alan kullanabilir. Lisans anahtarı gibi bir şey ekleyebilirsiniz. Gönderme işlemi tamamlanınca da veritabanında kullanıldı diye işaretlersiniz.

Böylece dosyanın birden kez indirilmesini engelleyebilirsiniz. Tabii yine de indirilen dosyanın sonra tekrardan dağıtımını engelleyemezsiniz. O bambaşka bir konu çok da mümkün değil.
 
Tek kullanimlik TTL bazli token uzerinden download linki ureteceksin, kaynak download edildikten sonra sistem bunu silecek. Concurrency saglayip ayni anda 2 kisinin download etmesini onleyeceksin.
 
Dosyayı sunucunda tutacaksın, bir kez indirildikten sonra dosya yolunu değiştirecek veya dosyayı sileceksin. Bu şekilde dosyayı aynı linkten sadece 1 kez indirebilecek.

site.com/klasor/dosyaadi.zip

Bu dosyanın linkini bir butona koydun ve 1 kere tıklandı, PHP olarak arka planda dosya indirildiğinde

site.com/klasor/yenidosyaadi.zip

Yapacaksın. Ya da dosyayı sunucudan sileceksin.
Eğer doğru anladıysam bu şekilde çözebilirsin.

Hocam bu şekilde sorunumu çözdüm, butona isim değiştirme ekledim, her indirme sonrası yeni dosya adına geçiyor böylece sorun ortadan kalkıyor. Teşekkür ederim.
 

Technopat Haberler

Yeni konular

Geri
Yukarı