Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP imurointi toisella nimellä

JimLazy [03.10.2007 09:26:07]

#

Hep! Olisko kellään yksinkertaista komentojonoa miten esim. abc.hot -nimisen tiedoston sisältö voidaan lukea vaikka "file_get_contents" -käskyllä (tai jotenkin muuten) ja vaihtaa sen nimi "lennosta" muotoon def.zip ja sen jälkeen antaa downloadina käskyllä:

readfile("$filename");
exit();

jolloin lataaja näkisi lataavansa def.zip -tiedoston eikä saisi tietää että sen serverillä oleva nimi onkin muutettu abc.hot -nimiseksi.

Tämä siksi, että voisi jakaa tiettyä tiedostoa vain hallitusti, esim sähköpostiosoitteen perusteella ja estää hallitsematon joukkolataus???

Terv JimLazy eli JussiLaiska

Olga [03.10.2007 10:15:26]

#

Ainakin niin varmasti homma onnistuu, että kopioit tiedoston uudelle nimelle, suoritat haluamasi toimenpiteet (readfilet ja muut) ja kunhan sitten jossain välissä muistat poistaa tuon temppitiedoston, ei tule kovalevykään täyteen :) Toki poistaminen tulee tehdä vasta sitten, kun olet varma ettei tiedoston lataus ole enää kesken. Voihan tuo olla, että nimen "muuttaminen" onnistuu myös otsaketietoja (Content-Disposition, filename) muuttamalla, mutta tuo on ihan arvailua.

Grez [03.10.2007 10:23:55]

#

<?php
// We'll be outputting a ZIP
header('Content-type: application/zip');

// It will be called def.zip
header('Content-Disposition: attachment; filename="def.zip"');

// The ZIP source is in abc.hot
readfile('abc.hot');
?>

(Lähes suora kopio sivulta https://www.php.net/header )

JimLazy [03.10.2007 12:37:28]

#

Suurkiitokset Grez! Ja Olga myös.
Kääntelin tuota samaa asiaa, mutta tottakai just väärinpäin.
Grez'in ohjeessa on se hyvä puoli, ettei tarvi miettiä noita temppien poistoja.
Toimii niinkun junan vessa (ennen Intercityä)
Hyvät jatkot molemmille!

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta