PHP védett tartalom megnyitása új fülön.

PHP védett tartalom megnyitása új fülön.
2013-12-03T19:42:15+01:00
2013-12-03T21:58:51+01:00
2022-10-15T23:25:56+02:00
suthea
Sziasztok!

Olyan emberke segítségét kérném aki, jártas a védett tartalom kezelésben. Adott egy oldal, adott mappa .htaccess el levédve,(hogy csak hitelesítéssel lehessen elérni az adott url-t)+ hozzá ez a script:

$path = $_GET['fn']; $type = "application/zip"; header("Expires: 0"); header("Pragma: no-cache"); header('Cache-Control: no-store, no-cache, must-revalidate'); header('Cache-Control: pre-check=0, post-check=0, max-age=0'); header("Content-Description: File Transfer"); header("Content-Type: " . $type); header("Content-Length: " .(string)(filesize($path)) ); header('Content-Disposition: attachment; filename="'.basename($path).'"'); header("Content-Transfer-Encoding: binary\n"); readfile($path); // outputs the content of the file exit(); ?>

Ezzel nagyon szépen letölthetővé válik az adott file (anélkül hogy hitelesítést kérne a böngésző), viszont én azt szeretném elérni, hogy a védett mappában lévő fájl egy új fülön nyíljon meg, szintén hitelesítés nélkül, hiszen az maga a bejelentkezés lenne egy login form on, és hogy ne úgy nézzen ki, hogy login után ha bele akar nézni egy file ba akkor megint user+pass -t kér az oldal. :)
plz help!
Mutasd a teljes hozzászólást!
a htaccess....

RewriteEngine on RewriteRule (.*) index.php?file_id=$1 [L]


php-ba meg:

$filename = getFilename($_GET["file_id"]); if ($_SESSION["is_logged_in"]) { readfile($filename); }


???
Mutasd a teljes hozzászólást!

  • ezt a letöltést csak akkor indítsd el ha belépett, belépését meg sessionbe mentve tárold.

    Mutasd a teljes hozzászólást!
  • Nyilvan session ben van tarolva a login ténye, szvsz olvad el meg 1x a problemat, ha masodszorta is ugyanazt mondja akkor biztos rosszul fogalmaztam. :)
    Mutasd a teljes hozzászólást!
  • Akkor miért nem teszel elé egy ujabb logint?

    Persze akkor minek tárolod sessionban az előző logint?
    Mutasd a teljes hozzászólást!
  • Ezzel nagyon szépen letölthetővé válik az adott file (anélkül hogy hitelesítést kérne a böngésző), viszont én azt szeretném elérni, hogy a védett mappában lévő fájl egy új fülön nyíljon meg, szintén hitelesítés nélkül, hiszen az maga a bejelentkezés lenne egy login form on, és hogy ne úgy nézzen ki, hogy login után ha bele akar nézni egy file ba akkor megint user+pass -t kér az oldal. :)


    Egszerre nem akarsz sokat?
    A felhasználónak kell tudnia a fájl nevét a szerveren?

    . . megnézed, hogy honan érkezett... + egy session ellenőrzés, ha minden jó akkor.. . . $local_file = 'ha_tudod_ezen_aneven_vagyok_tarolva_a_szerveren.absdefgh'; $download_file = 'your-download-name.zip'; $download_rate = 1.5; if(file_exists($local_file) && is_file($local_file)) { // send headers header('Cache-control: private'); header('Content-Type: application/octet-stream'); header('Content-Length: '.filesize($local_file)); header('Content-Disposition: filename='.$download_file); flush(); $file = fopen($local_file, "r"); while (!feof($file)) { print fread($file, round($download_rate * 1024)); flush(); sleep(1); } fclose($file); } else { die('Hiba..... bla, ba'); }

    Hogy néz ki a .htaccess fájl?
    Mutasd a teljes hozzászólást!
  • akkor így csinálhatod:

    letolt.php, mellette downloads mappa.

    download mappába teszed a letölthető fájlokat, és a htaccess fájlt hogy kívülről ne engedje a linkelést.

    Amikor letolt.php -nek átadod a letöltendő fájl nevet, a downloads mappából vegye ki a fájlt, ha tényleg be van lépve SESSION -nel.
    Mutasd a teljes hozzászólást!

  • AuthType Basic AuthName "Password Required" AuthUserFile passwords.file AuthGroupFile groups.file
    ez van benne.
    Mutasd a teljes hozzászólást!
  • a htaccess....

    RewriteEngine on RewriteRule (.*) index.php?file_id=$1 [L]


    php-ba meg:

    $filename = getFilename($_GET["file_id"]); if ($_SESSION["is_logged_in"]) { readfile($filename); }


    ???
    Mutasd a teljes hozzászólást!
  • Igen ez működik! Köszi. :) Első körben megoldva. :P
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd