Mitenkä PHP:llä saisi tehtyä sellaisen scriptin jolla voisi estää sivun ulkoatulevat imurointi linkitykset. Imurointi linkit omalle sivulle tulisi tyyliin ?download_file=peli.zip tai ?download_file=34 (jolloin tiedostoilla olisi "ID" jonka avulla ne haettaisiin) . Ja jos joku tulisi oman sivun ulkopuolelta tähän linkkiin näytettäisiin teksti tyyliin "Ulkoalinkitys estetty!"?
No itellä oli tommonen melkeen valmiina. Tää koodinpätkä laskee siis myös jokaisen filun latauskerrat.
<?php //linkki, jolta yritetään ladata $url = $_SERVER['HTTP_REFERER']; //avainsana, joka täytyy löytyä linkkisivulta $asana = "0101030" if(!ereg($asana, $url)) die ("<h1>Hahaa! Yritit ladata vieraasta linkistä</h1>"); $file = $_GET['filu']; //tästä eteenpäin voi poistaa jos ei käytä laskuria //säilytä viimeinen header()-rivi $hak = "Download_hakemistosi/"; //lisätään hitti dat-tiedostoon $laskutied = "latauslaskuri/".$file.".dat"; if(!file_exists($laskutied)) { touch($laskutied); chmod($laskutied,0777); } $kahva = fopen($laskutied, "r"); $c = fread($kahva, filesize($laskutied)); fclose($kahva); $c++; $a = fopen($laskutied, "w"); fputs($a, $c); fclose($a); //ohjataan käyttäjä sivulle header("Location: ".$hak.$file); ?>
Käyttö:
http://cgi.evtek.fi/~k0101030/sivut/
Loistavaa! Kiitos oikeen paljon... En kyllä ole vielä testannut...
AJV: miksi et laita kaikkia koodeja koodivinkkeihin, vaan tarvii aina kysyä ja ne olis mukava muutenki olla sivuston sillee... :S
Tai htaccessilla, hot linking:
http://www.pikseli.biz/blog/archive/2003/10/21/
Koodivinkeissä täytyy pyrkiä sentään joku laatu säilyttämään. Täällä foorumissa voi kaikenlaista potaskaa julkaista, kun ainakaan toistaiseksi täällä ei ole automaattista koodinpätkien laadunvalvontaa.
joo, mutta tämä on yksi parhaimmista (minun mielestäni) perus koodeista ja vielä kun tietäisin tota noin ohjeet niin ei mittää järkiä!
No eli nimeät ton tiedoston vaikka load.php. Sitten samaan hakemistoon tuon kanssa luot hakemiston "latauslaskuri". Sitten määrität noi muuttujat kuntoon tossa load.php:ssä ja käytät sitä linkittämällä siihen esim. <a href="load.php?filu=foo.txt">foo.txt</a>.
edit: Muista laittaa latauslaskuri-hakemiston oikeudet kuntoon, että scripti voi sinne kirjottaa!!
Joo-o, paitsi kaikki selaimet ei lähetä tuota $_SERVER['HTTP_REFERER'] -muuttujan sisältämää tietoa...
Paljon järkevämpää on tehdä joka kerta uniikki id kun sivu päivitetään, sen perusteella sitten hakea. 1000x parempi kuin tuo.
Linkkejä ei voi mitenkään kopioida, koska ne vanhentuisivat heti.
Aihe on jo aika vanha, joten et voi enää vastata siihen.