Autor | Zpráva | ||
---|---|---|---|
serverteam.sk Profil |
Ahojte při menším slibu mi nedošlo že to asi neudělám
Problém: Potřebuji vytvořit systém který by zkontroloval kód a podle kódu stáhnul .rar soubor Příklad : bude asi 50 uživatelů kterým pošlu unikátní kód a když ten kód napíšou stáhne se soubor s obsahem určeným přímo pro ně jde to vůbec? (jedná se o důležitá data) PS: prosím nějaký kód bez použití MySQL Napadl mě kód : if ($password == 12345){ echo "ZDE SE ZAPOČNE STAHOVÁNÍ SOUBORU"; } else { echo "<meta http-equiv='refresh' content='0; url=/' />"; } } else { echo "<meta http-equiv='refresh' content='0; url=/' />"; } |
||
Jzikes Profil |
#2 · Zasláno: 22. 9. 2015, 07:12:02
Ahoj,
jde to.. :) Za tu podmínku stačí dát readfile($path); Do proměnné $path potom dáš cestu k souboru, který chceš stáhnout. Pak musíš nastavit v hlavičce, že nechceš soubor zobrazovat, ale chceš ho stáhnout. To z hlavy nedám, ale je to popsané zde: php.net/manual/en/function.readfile.php
-jz |
||
juriad Profil |
#3 · Zasláno: 22. 9. 2015, 09:05:41
serverteam.sk:
Zkusím to trošku zobecnit a učesat: <?php # umístění, kde jsou ty soubory $filesLocation = __DIR__ . '/files/'; # seznam hesel a souborů, ke kterým patří $files = array( '12345' => 'soubor1.jpg', '23456' => 'soubor2.jpg', '34567' => 'soubor3.jpg' ); if ($_POST) { # pokud byl odeslán formulář if (isset($_POST['password']) && isset($files[$_POST['password']])) { # pokud uživatel zadal heslo a zadané heslo odpovídá nějakému souboru # pošleme mu ten soubor se správnými hlavičkami $file = $files[$_POST['password']]; # aby soubor byl nabídnut ke stažení a měl výchozí název header('Content-Disposition: attachment; filename=' . $file); $finfo = finfo_open(FILEINFO_MIME_TYPE); $mime = finfo_file($finfo, $filesLocation . $file); # aby prohlížeč nabídl otevření ve známém programu header('Content-Type: ' . $mime); finfo_close($finfo); # aby prohlížeč znal velikost a mohl ukázat progressbar header('Content-Length: ' . filesize($filesLocation . $file)); readfile($filesLocation . $file); } else { # pokud uživatel nezadal heslo nebo je nesprávné # přesměrujeme zpět na sebe, aby se zobrazil formulář na heslo header('Location: '.$_SERVER['PHP_SELF']); } } else { # uživatel ještě neodeslal formulář (třeba přišel na stránku poprvé nebo na ní byl přesměrován) # zobrazíme formulář echo <<<END Zadej heslo: <form method="POST"> <input type="password" name="password"> <input type="submit" value="Odeslat"> </form> END; } # na konci skriptu nepiš ? > |
||
serverteam.sk Profil |
ok děkuji funguje (sice mi při stahování padá server ale co se dá od freehostingu čekat )
|
||
Časová prodleva: 9 let
|
0