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

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

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

    apolon47 Banned

    Joined:
    13 Apr 2009
    Messages:
    119
    Likes Received:
    14
    Reputations:
    4
    htmlspecialchars_decode
     
    1 person likes this.
  2. programming

    programming New Member

    Joined:
    26 Aug 2009
    Messages:
    190
    Likes Received:
    3
    Reputations:
    0
    Появилась проблема(или не проблема).
    Есть один скрипт, запускаю на локалке. Работает он долго, пишет данные в БД. Работает всё исправно, но после минут 10 работы в браузере выдаётся сообщение о скачке PHP файла скрипта! Как такое можно предотвратить?
    Вначале скрипта стоит естественно set_time_limit(0);
     
  3. apolon47

    apolon47 Banned

    Joined:
    13 Apr 2009
    Messages:
    119
    Likes Received:
    14
    Reputations:
    4
    покажи код
     
  4. Omegа

    Omegа Member

    Joined:
    16 Dec 2009
    Messages:
    27
    Likes Received:
    11
    Reputations:
    5
    А когда скачиваешь - там код php скрипта или уже обработанный html код?
    P.S. Если добавить в начале скрипта ignore_user_abort(true); то не придётся сидеть с постоянно включенным браузером - он будет работать и после того, как ты его закроешь.
     
    1 person likes this.
  5. programming

    programming New Member

    Joined:
    26 Aug 2009
    Messages:
    190
    Likes Received:
    3
    Reputations:
    0
    В скачанном файле вот, что лежит:
    Code:
    0
    Просто цифра 0.
     
  6. Fliplab

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

    Joined:
    29 Jul 2008
    Messages:
    123
    Likes Received:
    20
    Reputations:
    3
    class idea
    {
    var $EK = array();
    var $DK = array();
    function MulInv($x)
    {
    if($x < 2) return $x;
    $t1 = 0x10001 / $x;
    $y = 0x10001 % $x;
    if( $y == 1 ) return (1-$t1) & 0xffff;
    $t0 = 1;
    do
    {
    $q = $x / $y;
    $x = $x % $y;
    $t0 += $q * $t1;
    if($x == 1) return $t0;
    $q = $y / $x;
    $y = $y % $x;
    $t1 += $q * $t0;
    } while($y != 1);
    return (1-$t1) & 0xffff;
    }
    function mul($x, $y)
    {
    do
    {
    if(($_t16 = ($y)))
    {
    if(($x = ($x) & 0xffff))
    {
    $_t32 = $x * $_t16;
    $x = $_t32 & 0xffff;
    $_t16 = $_t32 >> 16;
    $x = (($x)-$_t16) + ($x<$_t16?1:0);
    }
    else
    {
    $x = 1 - $_t16;
    }
    }
    else
    {
    $x = 1 - $x;
    }
    } while(0);
    return $x;
    }
    function init_key($key, $size)
    {
    for($i=0; $i < $size; $i++)
    {
    $this->EK[$i] = $key[$i];
    }
    for($i=0; $i < 8; $i++)
    {
    $this->EK[$i] = ($this->EK[$i] << 8) | ($this->EK[$i] >> 8);
    }
    for($i=1; $i < 6; $i++)
    {
    $this->EK[($i*8)+0] = ($this->EK[(($i-1)*8)+1] << 9) | ($this->EK[(($i-1)*8)+2] >> 7);
    $this->EK[($i*8)+1] = ($this->EK[(($i-1)*8)+2] << 9) | ($this->EK[(($i-1)*8)+3] >> 7);
    $this->EK[($i*8)+2] = ($this->EK[(($i-1)*8)+3] << 9) | ($this->EK[(($i-1)*8)+4] >> 7);
    $this->EK[($i*8)+3] = ($this->EK[(($i-1)*8)+4] << 9) | ($this->EK[(($i-1)*8)+5] >> 7);
    $this->EK[($i*8)+4] = ($this->EK[(($i-1)*8)+5] << 9) | ($this->EK[(($i-1)*8)+6] >> 7);
    $this->EK[($i*8)+5] = ($this->EK[(($i-1)*8)+6] << 9) | ($this->EK[(($i-1)*8)+7] >> 7);
    $this->EK[($i*8)+6] = ($this->EK[(($i-1)*8)+7] << 9) | ($this->EK[(($i-1)*8)+0] >> 7);
    $this->EK[($i*8)+7] = ($this->EK[(($i-1)*8)+0] << 9) | ($this->EK[(($i-1)*8)+1] >> 7);
    }
    $this->EK[48] = ($this->EK[41] << 9) | ($this->EK[42] >> 7);
    $this->EK[49] = ($this->EK[42] << 9) | ($this->EK[43] >> 7);
    $this->EK[50] = ($this->EK[43] << 9) | ($this->EK[44] >> 7);
    $this->EK[51] = ($this->EK[44] << 9) | ($this->EK[45] >> 7);
    $this->DK[51] = $this->MulInv($this->EK[3]);
    $this->DK[50] = -$this->EK[2];
    $this->DK[49] = -$this->EK[1];
    $this->DK[48] = $this->MulInv($this->EK[0]);
    for($i=0; $i < 7; $i++)
    {
    $this->DK[47-$i*6] = $this->EK[$i*6+5];
    $this->DK[46-$i*6] = $this->EK[$i*6+4];
    $this->DK[45-$i*6] = $this->MulInv($this->EK[$i*6+9]);
    $this->DK[43-$i*6] = -$this->EK[$i*6+8];
    $this->DK[44-$i*6] = -$this->EK[$i*6+7];
    $this->DK[42-$i*6] = $this->MulInv($this->EK[$i*6+6]);
    }
    $this->DK[5] = $this->EK[47];
    $this->DK[4] = $this->EK[46];
    $this->DK[3] = $this->MulInv($this->EK[51]);
    $this->DK[2] = -$this->EK[50];
    $this->DK[1] = -$this->EK[49];
    $this->DK[0] = $this->MulInv($this->EK[48]);
    }
    function DecryptECB($inData)
    {
    $x1 = ($x1>>8) | ($x1<<8);
    $x2 = ($x2>>8) | ($x2<<8);
    $x3 = ($x3>>8) | ($x3<<8);
    $x4 = ($x4>>8) | ($x4<<8);
    for($i=0; $i < 7; $i++)
    {
    $x1 = $this->Mul($x1, $this->DK[($i*6)+0]);
    $x2 += $this->DK[($i*6)+1];
    $x3 += $this->DK[($i*6)+2];
    $x4 = $this->Mul($x4, $this->DK[($i*6)+3]);
    $s3 = $x3;
    $x3 = $x3 ^ $x1;
    $x3 = $this->Mul($x3, $this->DK[($i*6)+4]);
    $s2 = $x2;
    $x2 = $x2 ^ $x4;
    $x2 += $x3;
    $x2 = $this->Mul($x2, $this->DK[($i*6)+5]);
    $x3 += $x2;
    $x1 = $x1 ^ $x2;
    $x4 = $x4 ^ $x3;
    $x2 = $x2 ^ $s3;
    $x3 = $x3 ^ $s2;
    }
    $x1 = $this->Mul($x1, $this->DK[48]);
    $x3 += $this->DK[49];
    $x2 += $this->DK[50];
    $x4 = $this->Mul($x4, $this->DK[51]);
    $x1 = ($x1 >> 8) | ($x1 << 8);
    $s2 = ($x3 >> 8) | ($x3 << 8);
    $x3 = ($x2 >> 8) | ($x2 << 8);
    $x4 = ($x4 >> 8) | ($x4 << 8);
    $x2 = $s2;
    }
    }
     
    #14546 Fliplab, 23 Mar 2010
    Last edited: 23 Mar 2010
  7. DevidStein

    DevidStein New Member

    Joined:
    17 Feb 2010
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    Спасибо.
     
  8. LStr1ke

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

    Joined:
    29 Jul 2009
    Messages:
    801
    Likes Received:
    145
    Reputations:
    73
    Я надеюсь, ты понимаешь, что нужно будет еще и от XSS фильтровать ))
     
  9. DevidStein

    DevidStein New Member

    Joined:
    17 Feb 2010
    Messages:
    7
    Likes Received:
    0
    Reputations:
    0
    Кнешна понимаю.
     
  10. SeNaP

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

    Joined:
    7 Aug 2008
    Messages:
    378
    Likes Received:
    69
    Reputations:
    20
    Помогите разобраться с шаблонизатором
    есть main.tpl
    в нём находится
    PHP:
    <span class="breadcrumbs pathway" style="font-size:1.2em;">{<?php print $module?>}</span>
    {cotegory} и {FAQ}
    и есть еще index.php
    В нём находится
    PHP:
    $module $_GET['mod'];
    switch(
    $module)
    {
    case 
    'rules':
    case 
    'registration':
    case 
    'info':
    case 
    'about':
    case 
    'stat':
    case 
    'auth':
    case 
    'login':
    case 
    'out':
    case 
    'search':
    case 
    'forgot':
    case 
    'whois':
    case 
    'category':
    case 
    'faq':
    case 
    'news':
    break;
    default:
    $module 'top100';
    break;
    }
    }
    $tpl    = new Template//инициируем класс 
    $tpl->dir ROOTPATH.'/'.$topclass->version().'/'//задаём местоположение папки с шаблонами 
    $tpl->load_template('main.tpl'); //загружаем каркас 

    $tpl->set('{category}'$tpl->sub_load_template('category.tpl')); 
    $tpl->set('{FAQ}'$tpl->sub_load_template('faq.tpl')); 
    $tpl->set('{'.$module.'}'$tpl->sub_load_template($module.'.tpl')); 

     
    $tpl->compile('main'); //собираем шаблон 
    eval (' ?' '>' $tpl->result['main'] . '<' '?php '); //выводим результат работы, с возможностью вставки пхп кода в tpl 
    $tpl->global_clear(); //очищаем все переменные для возможно следующего шаблона 
    {category} и {FAQ} благополучно заменяются, а вот
    {<?php print $module; ?>} не хочет , просто выводит содержание переменной $module в фигурных скобках
    Помогите пожалуйста разобраться
     
    #14550 SeNaP, 23 Mar 2010
    Last edited: 23 Mar 2010
  11. SeNaP

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

    Joined:
    7 Aug 2008
    Messages:
    378
    Likes Received:
    69
    Reputations:
    20
    А как тогда с этим бороться?
    class скручен с DLE
    PHP:
    public function load_template($tpl_name) { 
        
    $time_before $this->get_real_time(); 
            if (
    $tpl_name == '' || !file_exists($this->dir DIRECTORY_SEPARATOR $tpl_name)) { die ("Невозможно загрузить шаблон: "$tpl_name); return false;} 
            
    $this->template file_get_contents($this->dir DIRECTORY_SEPARATOR $tpl_name); 
            if ( 
    stristr$this->template"{include file=" ) ) { 
                
    $this->template preg_replace"#\\{include file=['\"](.+?)['\"]\\}#ies","\$this->sub_load_template('\\1')"$this->template); 
            } 
            
    $this->copy_template $this->template
        
    $this->template_parse_time += $this->get_real_time() - $time_before;
        return 
    true
        } 
     
  12. Omegа

    Omegа Member

    Joined:
    16 Dec 2009
    Messages:
    27
    Likes Received:
    11
    Reputations:
    5
    SeNaP, у тебя много что непонятно.
    Попробуй заменить
    Code:
    $tpl->set('{'.$module.'}', $tpl->sub_load_template($module.'.tpl'));
    На это
    Code:
    $module = $tpl->sub_load_template($module.'.tpl');
     
  13. Fliplab

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

    Joined:
    29 Jul 2008
    Messages:
    123
    Likes Received:
    20
    Reputations:
    3
    Может всётаки кто поможет с алгоритмом idea? либо даст готовый ?срочно и очень надо
     
  14. Leopard

    Leopard New Member

    Joined:
    29 May 2008
    Messages:
    15
    Likes Received:
    0
    Reputations:
    0
    Есть желание научится делать нормальный дизайн для сайтов. Подскажите как рисовать для веба в фотошопе, где этому можно поучиться. Можно ли использовать gimp 2.
    зы только пожалуйста НЕ нужно давать ссылки на гугл, мне не интересно фотки ретушировать...
     
  15. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    "Готовый" и "срочно надо" - это mcrypt или openssl
     
  16. Fliplab

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

    Joined:
    29 Jul 2008
    Messages:
    123
    Likes Received:
    20
    Reputations:
    3
    krypt3r читай внимательнее, написанно же русским языком что mcrypt не предлагать
     
  17. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Fliplab, читайте внимательнее. Кроме mcrypt, я предложил openssl. Либо берёте любой сишный код и переписываете на PHP.
     
  18. programming

    programming New Member

    Joined:
    26 Aug 2009
    Messages:
    190
    Likes Received:
    3
    Reputations:
    0
    Нужно осуществить такую вещь:
    Есть скрипт1 и скрипт2. Скрипт1 начинает работу, в середине скрипт1 обращается к скрипту 2(курлом), запускается скрипт2. Как сделать, чтобы скрипт1 продолжил работу только после окончания работы скрипт2?
     
  19. programming

    programming New Member

    Joined:
    26 Aug 2009
    Messages:
    190
    Likes Received:
    3
    Reputations:
    0
    Точно. Большое спасибо.
     
  20. programming

    programming New Member

    Joined:
    26 Aug 2009
    Messages:
    190
    Likes Received:
    3
    Reputations:
    0
    Так.. А если скрипт будет одновременно использован сразу несколькими юзерами?
     
Thread Status:
Not open for further replies.