Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

php linklere id verme sorunu??


Dark_Soul

Öne çıkan mesajlar

Selam yine bir php sorunsalı ile karşınızdayım:)

temp klasörümde 30-40 tane dosya var bunların linklerini internet browserında direk göstermek yerine random bir id vermek istiyorum.Mesela:

//localhost/a/temp/DBDesigner4.0.5.6_Setup.exe

Dosyam bu bunun yerine:

//localhost/a/2726215
gibi random bir sayı yaratıp buna tıklayınca kullanıcı dosyayı indirsin istiyorum.



Birde bunu googleda nasıl aratacagımı bilmiyorum,ne bu işlemin adı? Encrypt php links gibi bişeler yazdım tam istedigim şeyi bulamadım.
Link to comment
Sosyal ağlarda paylaş

auto inc. yaparak dosya isimlerini çekilebilir tabide mesela:

...../download.php?id=11 bu a dosyası diyelim adam bunun yerine:

...../download.php?id=12 gibi yazarakten tüm dosyalara erişebilir,bunu istemiyorum işte :),her dosya için random sayı üretmek istiyorum yani deneme yoluyla tüm dosyalara erişimi olmasın istiyorum,çünkü bir sürü kullanıcı ve dosya olacak ama herkesin sadece kendi dosyalarına erişebilmesi lazım.
Link to comment
Sosyal ağlarda paylaş

o zaman şöle yapıcaksın.

yine her pathin bir id si olucak, fakat lakin, sen bu linkleri koyarken, idler le date() i ortak kullanıp bir encryption yaratıcaksın, dolayısıyla herseferinde farklı idler üretilmiş olucak, hem de random deneyerek bulunamayacak. birde bu dl id sini gönderip dl ettirdiğin php ye user control koyarsan, sanırsam olur.

not: herkes sadece kendi dosyasına mı erişicek? o zaman user control yapıcaksın, dosyaların tutulduğu yere bir de user id ekleyip, check edersen olur, daha kolay degil mi sanki öle?
Link to comment
Sosyal ağlarda paylaş

.htaccess dosyasi araciligiyla ayarlayabiliyosun. Request edilen adres once bu dosyada isleniyor; /root/999 -> /root/download.php?id=999 gibi bir isleme donusturebiliyosun ve kullanici tarafinda gozuken sadece /root/999 oluyor.
Her gelen dosya isminin checksum'ini alirsin, daha sonra download.php yine klasorun icindeki dosyalarin tek tek checksum'larini alip kontrol eder, birebir tutan buldugunda da request'e cevap verir. Tabi dogrudan ismini de MD5'e cevirerek de yapabilirsin... Algoritmasi sana kalmis.
Link to comment
Sosyal ağlarda paylaş

aslında bir proje şirketi için upload-download sayfası hazırlıyorum php ile.

upload.php sayfasındaki kod şu şekilde


$path = 'temp/';
$path =$path.basename($_FILES['file']['name']);
$dosya=basename($_FILES['file']['name']);
if(move_uploaded_file($_FILES['file']['tmp_name'], $path)){
echo "<b>".$dosya."</b>".
" dosyasi gonderildi";

$dosya = $filename;
....





nese bundan sonra işte db ye kayıt kodlari geliyor.


birde download.php var burdada adamın upload ettigi dosyalari böle string şeklinde göstermek istiyorum.

Şöyle birşey buldum sanırım her upload işleminden sonra dosya ismine 32 karakterlik bir string atıyor


$hash=hash('md5', $filename);



şimdi her upload edilen dosya için $filename değişkeniyle dosya adına 32 karakterlik string atayıp sonra,download.php de klasördeki dosyalari listeletirsek ......./21212454545222(32 kar. varsayalım) gibi mi gözükecek?
Birde adam buna tıkladıgında sorunsuz indirebilcekmi dosyasını?
Link to comment
Sosyal ağlarda paylaş

Degerleri nasil uretecegin sana kalmis. Sonuc olarak md5 gibi tek tarafli bir gosterim olacak. Ister string'ler yarat md5'ini al, ister random string'ler yarat oyle kullan.

Isi en optimum sekilde soyle halledersin (saniyorum);

users tablosu :
id - username - password - ...

files tablosu :
id - filename - hash

access tablosu :

user_id - file_id ( bu ikisine index veriyosun ucuyo )

Ornek olayda;
/var/www/ : document root'un.
/var/files : dosyalarinin bulundugu dizin. www altinda olmamasi direkt erisimi engellemis durumda.

* belli araliklarla /var/files altindaki dosyalari listeleyip tablonu update ediyosun.

* bir kullanicinin erisimlerinin duzenlediginde access tablonu update ediyosun.

* bir kullanici giris yaptiginda access tablosundan verileri cekip dosyalari hash'lerine gore listeleyip download.php?hash seklinde listeletiyosun.

Simdi diyelimki adam geldi, login olup bir linkte tikladi;

* link tiklaninca gidip hash tablosundan dosya adini/konumunu oku. Dosyayi fopen ile acip belli boyutlarda oku ve ayni anda ekrana bas. Burada fopen'dan once ekrana gerekli header'i basacagin icin dosya ya dirkt acilacak ya da download penceresi cikacak.
Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...