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

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

Thread Status:
Not open for further replies.
  1. Buffalon

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

    Joined:
    22 Mar 2008
    Messages:
    241
    Likes Received:
    34
    Reputations:
    8
    Ну впринципе юзаешь phpinfo() и там всё написанно
     
  2. Fuckel

    Fuckel Banned

    Joined:
    16 Jan 2008
    Messages:
    274
    Likes Received:
    59
    Reputations:
    6
    phpinfo() %)) Может foreach провести для $_SERVER? ;) и еще для всех переменных? )
     
  3. Doom123

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

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    $_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']
     
    #3463 Doom123, 7 Jun 2008
    Last edited: 7 Jun 2008
  4. lomerok

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

    Joined:
    23 Apr 2008
    Messages:
    141
    Likes Received:
    8
    Reputations:
    0
    почему мой php нереагирует на то что я изменил в php.ini строку max_execution_time = 120 ; Maximum execution time of each script, in seconds
    ???
     
  5. saha

    saha New Member

    Joined:
    23 Apr 2008
    Messages:
    8
    Likes Received:
    3
    Reputations:
    -3
    Привет всем! я на форуме новенький и в навигации не очень, помогите найти тему как запретить передачу рефера в php?
     
  6. BlackSun

    BlackSun Banned

    Joined:
    1 Apr 2007
    Messages:
    989
    Likes Received:
    1,168
    Reputations:
    446
    ignore_user_abort(1);
    ^- игнорировать закрытие окна пользователем

    @set_time_limit(0);
    ^- работать вечно)


    Поиск находится слева
     
  7. oRb

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

    Joined:
    9 May 2008
    Messages:
    294
    Likes Received:
    582
    Reputations:
    256
    Если у тебя php стоит как модуль, значит ты не перезагрузил сервер. Если как cgi обработчик, наверно, не тот php.ini правишь. (проверь в phpinfo(); )
    А так лучше юзать, то что Blacksun сказал.
    php выполняеться на сервере. Реферер передается клиентом. следовательно, нельзя на php запретить передачу реферера.
     
    #3467 oRb, 8 Jun 2008
    Last edited: 8 Jun 2008
    1 person likes this.
  8. .:EnoT:.

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

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    Ну если только использовать js как на ачате:
    // Открытие ссылки без реферера
    PHP:
    function openEx(url)
    {
      
    window.open();
      
    w.document.write('<meta http-equiv="refresh" content="0;url='+url+'">');
      
    w.document.close();
      return 
    false;
    }
    oRb
    понаркоманим?))
    1.php
    PHP:
    <a href="2.php">Тык</a>
    2.php
    PHP:
    $send "GET /3.php HTTP/1.1\r\n";
        
    $send .= "Host: test1.ru\r\n";
        
    $send .= "Connection: Close\r\n\r\n";
        
    $socket fsockopen('test1.ru'80$errno$errstr30);
        
    fputs($socket,$send);
        while(!
    feof($socket)){
          
    $line .= fgets($socket4096);
        }
        echo 
    $line;
    3.php
    PHP:
    echo getenv('HTTP_REFERER') ? getenv('HTTP_REFERER') : '<br /><b>No referer</b>';
    Выдаст No referer, хотя мы пришли туда со страницы 1.php)))
    Тока не надо опять говорить что я извращенец)))
    :D
     
    2 people like this.
  9. oRb

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

    Joined:
    9 May 2008
    Messages:
    294
    Likes Received:
    582
    Reputations:
    256
    гамно-ворос, канэшна)
    1. js - скрипт. может в далеких 90х он и работал) Вообщем посмотрел я свою базу, после обсуждения моего юзербара. Дык, рефереры схватились (4 виндовских оперы, может эта тема в опере тока прокатывает, собственно ваши проблемы^^)
    2.
    а) Я все же скажу, что ты извращенец) ты набросал подобие "умного" проксика, который кладет под нож сами заголовки.
    б) Обращение же будет с ип сервера, а не со своего ип. Или ты это собрался подымать на своем локалхосте? %)
    в) Вообще стремная тема, легче зайти в настройки браузера и выключить отправку реверера, чем городить такое.
     
  10. .:EnoT:.

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

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    1)Почему же? Работает. Он открывает новое окно, и переходит по ссылке как бы с пустой страницы, реферер не передаётся, хотя иногда он всё же передаётся)))
    2) Пошутил чтоле? :D Я конечно извращенец, но не настолько чтобы такую порнографию поднимать на лохосте. Тот скрипт что я выложил называется "Мы немного идиоты"))

    Короче легче дать ответ мальчику сразу: Реферер кроме как мутными ява-скриптами или другими извращениями типо сокетов и курла не запретить на передачу :)
    Хз я оперу не юзаю, не в курсе можно ли там отключать передачу реферера или нет))
     
  11. BlackSun

    BlackSun Banned

    Joined:
    1 Apr 2007
    Messages:
    989
    Likes Received:
    1,168
    Reputations:
    446
    Чем вам передача реферера то ненравиццо?))
     
  12. .:EnoT:.

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

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    Есть предположим такая страница:
    PHP:
    <div class="abc">
    Какой-то блок текста 1
    </div>
    <
    div class="abc">
    Какой-то блок текста 2
    </div>
    <
    div class="abc">
    Какой-то блок текста 3
    </div>
    <
    div class="abc">
    Какой-то блок текста 4
    </div>
    Регуляркой парсю всё это безобразие:
    Да, я наконец-то нашёл время почитать про регулярки :D
    PHP:
    preg_match("/<div class=\"abc\">(.+)<\/div>/is",$str,$a);
    print_r($a);
    Получаю:
    PHP:
    Array (
    [
    0] =>
    Какой-то блок текста 1
    Какой
    -то блок текста 2
    Какой
    -то блок текста 3
    Какой
    -то блок текста 4
    [1] =>
     
    Какой-то блок текста 1
    Какой
    -то блок текста 2
    Какой
    -то блок текста 3
    Какой
    -то блок текста 4 
    Подставлял U, но находит только первое вхождение)

    А теперь вопрос:
    Как сделать регулярку (или другими способами), чтобы каждый "Какой-то блок текста" был в отдельном массиве, т.е:
    PHP:
    Array ( 
    [
    0] =>Какой-то блок текста 1,
    [
    1] =>Какой-то блок текста 2,
    [
    2] =>Какой-то блок текста 3,
    [
    3] =>Какой-то блок текста 4
    ...etc...)
    Пробовал с preg_match_all(), тоже не помогло.
     
  13. halkfild

    halkfild Members of Antichat

    Joined:
    11 Nov 2005
    Messages:
    365
    Likes Received:
    578
    Reputations:
    313
    тебе нужно конкретнее писать регулярку..

    твое
    собирает абсолютно всё.. посмотри хтмл и ты увидишь, что там много мусора
    нужно конкретнее писать регулярку.

    как вариант:
    PHP:
    <?php

    $str
    =' <div class="abc"> 
    Какой-то блок текста 1 
    </div> 
    <div class="abc"> 
    Какой-то блок текста 2 
    </div> 
    <div class="abc"> 
    Какой-то блок текста 3 
    </div> 
    <div class="abc"> 
    Какой-то блок текста 4 
    </div> '
    ;

    preg_match_all('/<div class="abc">\s\n(([^<]+))<\/div>/si'$str$result);
    $result $result[1];

    echo 
    '<pre>';
    print_r($result); 
    echo 
    '</pre>';
    ?>
    даст результат

     
    _________________________
  14. ch[@]ch

    ch[@]ch Banned

    Joined:
    21 Jun 2007
    Messages:
    1
    Likes Received:
    16
    Reputations:
    -2
    помогите пожалуйста.
    При переходе с сайта на форум,по профилю...выходит ошибка
    PHP:
    Fatal error: Class 'tree' not found in **************************** on line 2

    как это исправить? в этом файле (***) 2 строчка такова
    PHP:
    tree::create(0);  
    помогите пожалуйста,заранее спасибо.
     
  15. Корвин

    Корвин Elder - Старейшина

    Joined:
    26 Feb 2007
    Messages:
    256
    Likes Received:
    31
    Reputations:
    3
    должен быть файл в котором задается этот класс, он должен поидее сверху подключатся к твоему файлу, посмари что нить типа require_once() или include() и внутри одной из этих функций путь к файлу, тебе его нада найти потом посмотрим
     
  16. .:EnoT:.

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

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    Согласен. Только проблема в том что как ты наверно понял, что у меня между тегами <div></div> не только просто блоки текста, там куча других тегов, таблиц. И всё это нужно отпарсить и потом работать уже с каждым в отдельности
    Ну банальный пример:
    PHP:
    $str '<u>

    <table border="1"><tr>
    <td></td>
    <div class="my_class1">Текст1</div>
    <td>Другой какой-то текст1</td>
    </tr></table>
    <img src="img.gif" id="img1" />
    <div id="some_id1">Ещё текст1</div>
    <a href="1.php">Какая-то там ссылка1</a>
    <div id="my_id1">Тоже текст1</div>

    </u>
    <u>

    <table border="1"><tr>
    <td></td>
    <div class="my_class2">Текст2</div>
    <td>Другой какой-то текст2</td>
    </tr></table>
    <img src="img.gif" id="img2" />
    <div id="some_id2">Ещё текст2</div>
    <a href="2.php">Какая-то там ссылка2</a>
    <div id="my_id2">Тоже текст2</div>

    </u>'
    ;
    preg_match_all('/<u>(.+)<\/u>/si'$str$a);
    echo 
    '<pre>';
    print_r($a);
    echo 
    '</pre>';
    И на выходе должно быть что-то вроде:
    PHP:
    Array(
    [
    0]=>my_class1 Текст1 Другой какой-то текст1 img1 some_id1 Ещё текст1 1.php Какая-то там ссылка1 my_id1 Тоже текст1,
    [
    1]=>my_class2 Текст2 Другой какой-то текст2 img2 some_id2 Ещё текст2 2.php Какая-то там ссылка2 my_id2 Тоже текст2,
    ..
    etc..
    )
    Вот в таком духе. Поэтому я и использовал (.+) чтобы получить всю эту ересь в отдельный массив и потом уже с каждым массивом работать, то есть мне отпарсить нужно не только текст, но и все id-шники и классы дивов, ссылок и изображений, ссылки на сами изображения и т.д. вот. Ну проще говоря name, id, классы, src, onclick() и конечно сам текст...
     
  17. VDShark

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

    Joined:
    1 Feb 2007
    Messages:
    260
    Likes Received:
    158
    Reputations:
    62
    Сильно в твою проблему не вникал, но понял следующее: он у тебя все загоняет в один элемент, т.к. по умолчанию регулярки "жадные", т.е. под твою регулярку попадает все, от первогодива класса abc до последнего закрывающего тег див. Поэтому тебе необходимо использовать так называемый модификатор "жадности" (U).

    Т.е. нечто вроде:

    PHP:
    preg_match_all("/<div class=\"abc\">(.+)<\/div>/isU",$str,$a);
    В первом элементе массива $a будет нужный тебе массив :)
     
    1 person likes this.
  18. Корвин

    Корвин Elder - Старейшина

    Joined:
    26 Feb 2007
    Messages:
    256
    Likes Received:
    31
    Reputations:
    3
    у меня есть менюшка которая в цикле генерица, мне очень нужно сохранить уже сгенеренный код в файлик, типа как если бы открыть через браузер, и када все прогрузится скопировать то что в источнике получилось, только мне это нужно не открывая браузер чтобы скрипт сгенерил код страницы а потом сохранил его, такое возможно?


    я попробовал после кода который генерит страницу засунуть file_get_contents и путь там указал к этому же файлу только с припиской урла сайта, чтобы типа он потом сам на себя зашол и скопировал код, но так не вышло....=(
     
    #3478 Корвин, 9 Jun 2008
    Last edited: 9 Jun 2008
  19. mff

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

    Joined:
    12 Mar 2008
    Messages:
    2,074
    Likes Received:
    701
    Reputations:
    227
    Люди, подскажите почему сессия не стартует?
    Тупо пишу:
    PHP:
    session_start();
    Выдает ошибку:
    PHP:
    Warningsession_start() [function.session-start]: Cannot send session cache limiter headers already sent (output started at C:\www\sites\rfo\public.php:7in...
     
  20. groundhog

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

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    Смотри public.php строку 7 - там какая-то инструкция уже начала вывод. Сессии посылаются в хидерах, поэтому вызов session_start() должен предшествовать началу вывода любой информации.
     
Thread Status:
Not open for further replies.