Скачивание файла после введения кода

Тема в разделе "PHP", создана пользователем oocamba, 6 май 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. oocamba

    oocamba Писатель

    Регистр.:
    4 окт 2009
    Сообщения:
    5
    Симпатии:
    0
    На сайте хочу организовать такую вещь.
    Кнопка на скачивание. Посетитель нажимает. Пишется ему "введите пароль" Если он знает и вводит, то скачивет файл, если не знает, не скачивается.
    На сайте будет около 60 файлов. пароли все разные, могу их мануально ввести.
    Как сделать кнопку, которая спросит пароль и если он совпадет, даст скачать?

    У меня сайт на dle, но это, я думаю, неважно. Может, есть что-то готовое уже?
     
  2. zss

    zss Постоялец

    Регистр.:
    22 июн 2007
    Сообщения:
    55
    Симпатии:
    6
    Создать форму с полем для пароля и проверять
    принятое значение этого поля:
    Код:
    <?php
    $pass=htmlspecialchars($_POST["pass"]);
    if($pass=="parol")
    {
       echo("<p><a href='file.doc'>Файл для скачивания</a></p>\n");
    }
    ?>
    <form method="post">
    введите пароль:<input type="password" name="pass">
    <input type="submit" value="OK">
    </form>
    
     
  3. sergioFerro

    sergioFerro Писатель

    Регистр.:
    11 май 2008
    Сообщения:
    7
    Симпатии:
    0
    Думаю что ссылку не гут давать под паролем а лучше спрашивать пасс прямо на скачиваемый файл. К примеру ссылка вида ./download.php?file=file1
    В коде:
    download.php:
    PHP:
    array fileAuth = array (
              
    'file1' => array('user1''pass1');
              
    'file2' => array('user2''pass2');
    );
    if (!isset(
    $_GET['file'])
            || 
    $_SERVER['PHP_AUTH_USER'] != $fileAuth[$_GET['file']][0]
            || 
    $_SERVER['PHP_AUTH_PW'] != $fileAuth[$_GET['file']][1]) {
        
    header('WWW-Authenticate: Basic realm="My Realm"');
        
    header('HTTP/1.0 401 Unauthorized');
        echo 
    'Соси **й';
        exit;
    } else {
        echo 
    file_get_contents('/DIR/TO/FILE/'.$_GET['file']);
    }
     
Статус темы:
Закрыта.