[php] Новичкам: задаем вопросы

Discussion in 'PHP' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. RedBull@12

    RedBull@12 Elder - Старейшина

    Joined:
    5 Nov 2006
    Messages:
    121
    Likes Received:
    21
    Reputations:
    5
    да именно про хедеры я и говорю. какие заголовки нужно прописать?
     
  2. mailbrush

    mailbrush Well-Known Member

    Joined:
    24 Jun 2008
    Messages:
    1,997
    Likes Received:
    996
    Reputations:
    155
    http://php.net/mail
     
  3. Fepsis

    Fepsis Elder - Старейшина

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    Друзья, подскажите какой командой страницу перезагрузить на PHP..?!? :(
     
  4. .:EnoT:.

    .:EnoT:. Сексуальное чудовище

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    PHP:
    $head =  "Date: " date("D, d M Y H:i:s") . " UT\r\n"// <<<<<<<<<<
    $head .= "Subject: =?Utf-8?B?" base64_encode($subject) . "=?=\r\n";
    $head .= "X-Mailer: The Bat! (v3.99.3) Professional\r\n";
    $head .= "X-Priority: 3\r\n";
    $head .= "Reply-To: " $from "\r\n";
    $head .= "MIME-Version: 1.0\r\n";
    $head .= "From: =?Utf-8?B?" base64_encode($text_from) . "=?= <" $from ">\r\n";
    $head .= "To: " $to " <" $to ">\r\n";  
    $head .= "Content-Type: text/html; charset=\"utf-8\"\r\n";
    $head .= "Content-Transfer-Encoding: 8bit\r\n\r\n";
    $head .= $message "\r\n";


    Ну если только так...
    PHP:
    <?php
    if (isset($_POST['refresh'])) header('location:' basename(__FILE__));
    ?>
    <form action="" method="post">
    <input type="submit" name="refresh" value="Refresh">
    </form>
     
    #9824 .:EnoT:., 1 May 2009
    Last edited: 1 May 2009
    2 people like this.
  5. Fepsis

    Fepsis Elder - Старейшина

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    А чтобы автоматом перезагружалась..??! Имеется скрипт, он должен выполниться, а после страница автоматом должна перезагрузиться.. (Цикл не катит, нужна именно перезагрузка страницы)
     
  6. roddik

    roddik Member

    Joined:
    14 Jan 2009
    Messages:
    117
    Likes Received:
    13
    Reputations:
    0
    Code:
    echo '<script type="text/javascript">setTimeout("location.href = \'...\';",0);</script>'
     
    1 person likes this.
  7. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    http://www.mediacollege.com/internet/javascript/page/reload.html
     
  8. Fepsis

    Fepsis Elder - Старейшина

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    Неа, не проканало... А как нить средствами самого php можно..?!?
     
  9. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    UTF-8
     
    1 person likes this.
  10. eLWAux

    eLWAux Elder - Старейшина

    Joined:
    15 Jun 2008
    Messages:
    860
    Likes Received:
    616
    Reputations:
    211
    в базе установи кодировку utf8_general_ci.
    и в скрипте сразу после конекта:
    Code:
    @mysql_query('SET NAMES cp1251;');
    и в index.php:
    Code:
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
     
    1 person likes this.
  11. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    ну попробуй добавить это:

    Accept-Encoding: deflate

    и

    User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.2)
     
    #9831 Pashkela, 2 May 2009
    Last edited: 2 May 2009
  12. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    header('Content-Length: 213133');

    обычно в самом конце. Еще возможно надо указать язык, чарсет и т.д.
     
  13. .:EnoT:.

    .:EnoT:. Сексуальное чудовище

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    Смешные вы) Научитесь юзать курл...и спрашивается нахер он тут нужен? Курлом получать данные, а потом ф-цией readfile() их считывать, бред:)

    Всё это легче реализовать через fopen(), тем более при закачке с удалённых хостов. readfile тут может отказаться очень неблагонадёжной функцией. Тем более если решишь сделать скачку по кускам, докачку и т.д....
    Во-вторых, заголовки не точные. Mime-тип audio/mpeg, Transfer-Encoding нужно ставить binary

    Ну и дальше через цикл всё закачивается.

    PHP:

    <?php

    $link 
    'http://bla-bla.ru/1.mp3';
    if (
    $openFile = @fopen($link'rb')) {
        
    $fileInfo stream_get_meta_data($openFile);
        
    preg_match('#Content-Length:\s([0-9\S]*)#i'join(' '$fileInfo['wrapper_data']), $outSize);
        
    $size = !empty($outSize[1]) ? $outSize[1] : '';
        
    preg_match('#Last-Modified:\s(.*)\sGMT#i'join(' '$fileInfo['wrapper_data']), $outMod);
        
    $lastMod = !empty($outMod[1]) ? $outMod[1] : '';
        
        
    header('HTTP/1.1 200 OK');
        
    header('Content-Length: '.$size);
        
    header('Content-Type: audio/mpeg');
        
    header('Last-Modified: '.$lastMod);
        
    header('Content-Disposition: attachment; filename="имя_файла.мп3";');
        
    header('Cache-Control: private');
        
    header('Content-Transfer-Encoding: binary');
        
    header('Accept-Ranges: bytes');      
        
        while (!
    feof($openFile) && !connection_status()) {
            echo 
    fread($openFile1024);
            
    flush();
            
    ob_flush();
        }

    }

    ?>

    З.Ы. какой ещё порядок заголовков? Вы чего?
     
  14. .:EnoT:.

    .:EnoT:. Сексуальное чудовище

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    Я как раз-таки понял твою проблему, показал как получить длину файла и как по-нормальному отдать его браузеру
     
  15. .:EnoT:.

    .:EnoT:. Сексуальное чудовище

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    тяжёлый случай...
    Тебе заголовки нужны были, вот тебе заголовки, смотри.

    А про readfile() это просто пример того, что при закачке с удалённых хостов не нужно её использовать. Это просто как совет...но тебе на пользу кажись не пойдёт...
     
    1 person likes this.
  16. Fepsis

    Fepsis Elder - Старейшина

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    Может у кого-нить есть офлайн версия мануала http://ru.php.net/manual/ru/index.php..
    Просто сейчас с интернетом проблемы... Или посоветуйте другой справочник, так чтобы удобный был, ну типа поиск по функциям и т.д...)
     
    1 person likes this.
  17. erihtoney

    erihtoney Member

    Joined:
    3 Mar 2009
    Messages:
    91
    Likes Received:
    73
    Reputations:
    20
    2 people like this.
  18. .:EnoT:.

    .:EnoT:. Сексуальное чудовище

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    Ну какбэ isset
    PHP:
    if (isset($_SERVER['PHP_AUTH_USER'])) echo 'ок';
    else echo 
    'не алё';
    или на худой конец вот так array_key_exists
    PHP:
    if (array_key_exists('PHP_AUTH_USER'$_SERVER)) echo 'ок';
    else echo 
    'не алё';
    или print_r($_SERVER); и смотреть что имеем
     
    3 people like this.
  19. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    PHP:
    <?php
      
    if (!isset($_SERVER['PHP_AUTH_USER'])) {
        
    header('WWW-Authenticate: Basic realm="My Realm"');
        
    header('HTTP/1.0 401 Unauthorized');
        echo 
    'Текст, отправляемый в том случае,
        если пользователь нажал кнопку Cancel'
    ;
        exit;
      } else {
        echo 
    "<p>Hello {$_SERVER['PHP_AUTH_USER']}.</p>";
        echo 
    "<p>Вы ввели пароль {$_SERVER['PHP_AUTH_PW']}.</p>";
      }
    ?>
    http://ru2.php.net/features.http-auth

    как заставить работать в CGI:

    http://www.besthostratings.com/articles/http-auth-php-cgi.html
     
    #9839 Pashkela, 2 May 2009
    Last edited: 2 May 2009
  20. oRb

    oRb Elder - Старейшина

    Joined:
    9 May 2008
    Messages:
    294
    Likes Received:
    582
    Reputations:
    256
    Nightmarе, HTTP-Аутентификация работает если пхп прикручен, как модуль Apache'a. Если как cgi-обработчик - тогда никак.
    Сделал небольшое сравнение. Вывел массив $_SERVER на 2х серваках (1 - модуль, 2 - cgi)
    В первом случае REQUEST_URI, SCRIPT_NAME совпадали. Во втором SCRIPT_NAME - путь до пхп. + во втором случае был еще 1 параметр: [REDIRECT_HANDLER] => php-cgi.

    Можно еще посмотреть в phpinfo параметр Server API.

    + если модуль, тогда есть функции для работы с сервером Apache
    http://ru.php.net/manual/ru/ref.apache.php
    Те можно просто проверить через function_exists.
     
    1 person likes this.
Thread Status:
Not open for further replies.