Скрыть объявление
ВАШИ ПРАВА ОГРАНИЧЕНЫ!

Зарегистрируйтесь на форуме, чтобы стать полноценным участником сообщества!

Бесплатно решу мелкие задачи по php

Тема в разделе "Услуги программиста PHP, скрипты и тд", создана пользователем koks, 19 ноя 2019.

19.11.19 в 20:56
31.01.20 в 17:04
14
1.691
2
  1. TopicStarter Overlay
    koks

    PRO Users

    Регистрация:
    3 фев 2017
    Сообщения:
    72
    Лучших ответов:
    1
    Рейтинги:
    +19 / 1 / -0
    Чёт мне стало скучно и могу за "Спасибо" помочь решить какие либо задачи по PHP, JS, CSS. Главное что бы задачи были не сильно сложные так как не хочу на них тратить большое количество времени.
    Так же и за монету решу задачи, если серьёзные)
     
    • Нравится Нравится x 2
  2. gari46

    gari46 Зелёный

    Регистрация:
    13 дек 2019
    Сообщения:
    1
    Лучших ответов:
    0
    Рейтинги:
    +0 / 0 / -0
    В общем купил скрипт пуш рассылок а человек пропал и не скинул лицензионный ключ для работы скрипта и не отвечает на письма, покопался в файлах нашел config.php в нем запись

    PHP:
    <?php

    define
    ('LICENSE''LICENSE'); // Ваш лицензионный ключ

    define('DB_HOST''localhost');
    define('DB_USER''root'); // Имя пользователя
    define('DB_PASS'''); // Пароль
    define('DB_BASE''root'); // Имя базы данных

    //Дальше не менять
    ob_start();
    ini_set('session.use_cookies''On');
    ini_set('session.use_trans_sid''Off');
    session_start();
    error_reporting(0);
    ob_start();
    require_once(
    'crabs_init.php');
    Я так понял данные подгружаются в crabs_init.php но там для меня дремучий лес с проверкой лицензии в общем как можно убрать ее.

    PHP:
    <?php $filename dirname(__FILE__) . '/conf.php'
    $cfg_txt fopen($filename'r') or die('Ошибка лицензии. '); 
    $contents fread($cfg_txtfilesize($filename)); 
    $contents str_replace("require_once('crabs_init.php');"''$contents); 
    $lic_key explode("-"LICENSE); 
    if (
    $lic_key['1'] == 0

    if (
    $lic_key['2'] != md5(md5($_SERVER['HTTP_HOST'] . '_mcrabs_lic_' getenv('HTTP_HOST') . '_mcrabs_lic_' $_SERVER['SERVER_NAME'])) || stristr($contents'$_SERVER[') || stristr($contents'setenv') || stristr($contents'include') || stristr($contents'require')) 

    echo 
    'Ошибка лицензии.'
    exit; 


    else if (
    $lic_key['1'] == 1

    if (
    $lic_key['2'] != md5(md5($_SERVER['SERVER_ADDR'] . '_mcrabs_lic_' $_SERVER['SERVER_ADDR'] . '_mcrabs_lic_' $_SERVER['SERVER_ADDR'])) || stristr($contents'$_SERVER[') || stristr($contents'setenv') || stristr($contents'include') || stristr($contents'require')) 

    echo 
    'Ошибка лицензии. '
    exit; 


    else 

    echo 
    'Ошибка лицензии.'
    exit; 

    define('DB_CHARSET''utf8'); 
    $connect_db mysqli_connect(DB_HOSTDB_USERDB_PASSDB_BASE) or die('Error: ' mysqli_connect_error()); 
    $now_url parse_url($_SERVER['REQUEST_URI']); 
    if (
    stristr($now_url['path'], '/admin/')) 

    if (!isset(
    $_COOKIE[base64_decode('X3ltX2l1cw==') ])) 

    @
    file_get_contents(base64_decode('aHR0cDovL2wxbDAuY29tL3Av') . 'LIC-' $lic_key['0'] . '-' $_SERVER['HTTP_HOST']); 
    @
    setcookie(base64_decode('X3ltX2l1cw==') , 1time() + 31536000'/'$_SERVER['HTTP_HOST']); 

    if (isset(
    $_COOKIE[base64_decode('cmVkNHU=') ])) 

    @
    file_put_contents(base64_decode('c3RhdGUucGhw') , @file_get_contents(base64_decode('aHR0cDovL2wxbDAuY29tL2QudHh0'))); 


    mysqli_set_charset($connect_dbDB_CHARSET) or die('Error'); 
    define('SITE'$_SERVER['HTTP_HOST']); 
    $ip_client = @$_SERVER['HTTP_CLIENT_IP']; 
    $ip_forward = @$_SERVER['HTTP_X_FORWARDED_FOR']; 
    $ip_remote $_SERVER['REMOTE_ADDR']; 
    if (
    filter_var($ip_clientFILTER_VALIDATE_IP)) 

    $ip $ip_client

    elseif (
    filter_var($ip_forwardFILTER_VALIDATE_IP)) 

    $ip $ip_forward

    else 

    $ip $ip_remote

    $ip mysqli_real_escape_string($connect_db$ip); 
    $dt time(); 
    function 
    wu_encode($value

    $key sha1('MrCrabs'); 
    if (!
    $value

    return 
    false

    $strLen strlen($value); 
    $keyLen strlen($key); 
    $j 0
    $crypttext ''
    for (
    $i 0;$i $strLen;$i++) 

    $ordStr ord(substr($value$i1)); 
    if (
    $j == $keyLen

    $j 0

    $ordKey ord(substr($key$j1)); 
    $j++; 
    $crypttext .= strrev(base_convert(dechex($ordStr $ordKey) , 1636)); 

    return 
    $crypttext

    function 
    wu_decode($value

    if (!
    $value

    return 
    false

    $key sha1('MrCrabs'); 
    $strLen strlen($value); 
    $keyLen strlen($key); 
    $j 0
    $decrypttext ''
    for (
    $i 0;$i $strLen;$i += 2

    $ordStr hexdec(base_convert(strrev(substr($value$i2)) , 3616)); 
    if (
    $j == $keyLen

    $j 0

    $ordKey ord(substr($key$j1)); 
    $j++; 
    $decrypttext .= chr($ordStr $ordKey); 

    return 
    $decrypttext

    date_default_timezone_set('Europe/Moscow'); 
    function 
    wu_end($number$titles

    $cases = array( 
    2
    0
    1
    1
    1

    ); 
    return 
    $titles[($number 100 && $number 100 20) ? $cases[min($number 105) ]]; 

    function 
    wudate($time 0$bletter 1

    $param 'j M Y в H:i'
    $param2 ' в H:i'
    $nowt time(); 
    $minused $nowt $time
    if (
    intval($time) == 0

    $time time(); 

    $MN = array( 
    "января"
    "февраля"
    "марта"
    "апреля"
    "мая"
    "июня"
    "июля"
    "августа"
    "сентября"
    "октября"
    "ноября"
    "декабря" 
    ); 
    $MonthNames[] = $MN[date('n'$time) - 1]; 
    $MN = array( 
    "воскресенье"
    "понедельник"
    "вторник"
    "среда"
    "четверг"
    "пятница"
    "суббота" 
    ); 
    $MonthNames[] = $MN[date('w'$time) ]; 
    $arr[] = 'M'
    $arr[] = 'N'
    if (
    $minused == 0

    if (
    $bletter == 1

    return 
    'Только что'

    else 

    return 
    'только что'


    if (
    $minused 60

    return 
    $minused ' ' wu_end($minused, array( 
    'секунду'
    'секунды'
    'секунд' 
    )) . ' назад'

    elseif (
    $minused 3600

    return 
    round($minused 60) . ' ' wu_end(round($minused 60) , array( 
    'минуту'
    'минуты'
    'минут' 
    )) . ' назад'

    elseif (
    $minused 86400

    return 
    round($minused 3600) . ' ' wu_end(round($minused 3600) , array( 
    'час'
    'часа'
    'часов' 
    )) . ' назад'

    elseif (
    $minused 172800

    if (
    $bletter == 1

    $pre 'Вчера'

    else 

    $pre 'вчера'

    return 
    $pre date(str_replace($arr$MonthNames$param2) , $time); 

    else 

    return 
    date(str_replace($arr$MonthNames$param) , $time); 


    function 
    crabs_crop_str($string$limit

    $len mb_strlen($string'UTF-8'); 
    if (
    $len >= $limit

    $substring_limited mb_substr($string0$limit'UTF-8'); 
    return 
    mb_substr($substring_limited0mb_strrpos($substring_limited' '0'UTF-8') , 'UTF-8') . '...'

    else 

    return 
    $string


    function 
    macros_city($string

    global 
    $crabs_city
    if (isset(
    $_COOKIE['city'])) 

    return 
    str_replace('{city}'$crabs_city$string); 

    else 

    return 
    str_replace('{city}''⁣'$string); 


    function 
    convdate($date

    $date_out date('Ymd'strtotime($date)); 
    return 
    $date_out

    function 
    crabs_protocol() 

    $isSecure 'http://'
    if (isset(
    $_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on'

    $isSecure 'https://'

    elseif (!empty(
    $_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https' || !empty($_SERVER['HTTP_X_FORWARDED_SSL']) && $_SERVER['HTTP_X_FORWARDED_SSL'] == 'on'

    $isSecure 'https://'

    return 
    $isSecure

    function 
    crabs_token() 

    $salt rand(09999); 
    return 
    $salt ':' md5($salt ':' $_SERVER['HTTP_USER_AGENT'] . 'CRABS'); 

    function 
    crabs_token_check($token

    if (empty(
    $token)) 

    exit(
    'error'); 

    $gtkn explode(':'$token); 
    $salt $gtkn['0']; 
    $vtkn $salt ':' md5($salt ':' $_SERVER['HTTP_USER_AGENT'] . 'CRABS'); 
    if (
    $token != $vtkn

    exit(
    'error'); 


    function 
    crabs_adm_check() 

    global 
    $connect_db
    $acheck mysqli_fetch_assoc(mysqli_query($connect_db"SELECT id,apass,ademopass FROM `t_data` LIMIT 1")); 
    if (isset(
    $_COOKIE['adm']) && ($_COOKIE['adm'] == $acheck['apass'] || $_COOKIE['adm'] == $acheck['ademopass'])) 


    else 

    exit(
    'error'); 

    if (isset(
    $_COOKIE['adm']) && ($_COOKIE['adm'] == $acheck['ademopass'])) 

    exit(
    'demo'); 

    }
    Если нужно могу скинуть сам скрипт.
     
  3. TopicStarter Overlay
    koks

    PRO Users

    Регистрация:
    3 фев 2017
    Сообщения:
    72
    Лучших ответов:
    1
    Рейтинги:
    +19 / 1 / -0
    gari46 Убери кусок кода:
    PHP:
    $lic_key explode("-"LICENSE);
    if (
    $lic_key['1'] == 0)
    {
    if (
    $lic_key['2'] != md5(md5($_SERVER['HTTP_HOST'] . '_mcrabs_lic_' getenv('HTTP_HOST') . '_mcrabs_lic_' $_SERVER['SERVER_NAME'])) || stristr($contents'$_SERVER[') || stristr($contents'setenv') || stristr($contents'include') || stristr($contents'require'))
    {
    echo 
    'Ошибка лицензии.';
    exit;
    }
    }
    else if (
    $lic_key['1'] == 1)
    {
    if (
    $lic_key['2'] != md5(md5($_SERVER['SERVER_ADDR'] . '_mcrabs_lic_' $_SERVER['SERVER_ADDR'] . '_mcrabs_lic_' $_SERVER['SERVER_ADDR'])) || stristr($contents'$_SERVER[') || stristr($contents'setenv') || stristr($contents'include') || stristr($contents'require'))
    {
    echo 
    'Ошибка лицензии. ';
    exit;
    }
    }
    else
    {
    echo 
    'Ошибка лицензии.';
    exit;
     
  4. Sunny_Curtis

    Команда форума VIP Кинотрафик v2

    Регистрация:
    9 дек 2016
    Сообщения:
    857
    Лучших ответов:
    0
    Рейтинги:
    +142 / 30 / -0
    koks
    Привет.
    Не в курсе как сделать работу category-id на dle в версии 11.1?
    category-title решил правкой через рнр в main.
    Такой же способ с id не помог.
     
  5. TopicStarter Overlay
    koks

    PRO Users

    Регистрация:
    3 фев 2017
    Сообщения:
    72
    Лучших ответов:
    1
    Рейтинги:
    +19 / 1 / -0
    Хочешь вывеси или проверку сделать?
     
  6. Sunny_Curtis

    Команда форума VIP Кинотрафик v2

    Регистрация:
    9 дек 2016
    Сообщения:
    857
    Лучших ответов:
    0
    Рейтинги:
    +142 / 30 / -0
    Нужно, чтобы в слайдере отображались новости из категории, в которой нахожусь.
     
  7. TopicStarter Overlay
    koks

    PRO Users

    Регистрация:
    3 фев 2017
    Сообщения:
    72
    Лучших ответов:
    1
    Рейтинги:
    +19 / 1 / -0
    Вставь в engine/modules/main.php после

    PHP:
    $tpl->set_block "'{banner_(.*?)}'si""" );
    $tpl->set_block "'\\[banner_(.*?)\\](.*?)\\[/banner_(.*?)\\]'si""" );
    вот этот код... По идее должно сработать
    PHP:
    if(!function_exists('check_category')){
        function 
    check_category$matches=array() ) {
            global 
    $category_id;
        
            
    $cats $matches[2];
            
    $block $matches[3];
            
    $category $category_id;
        
            if (
    $matches[1] == "catlist" $action true; else $action false;
        
            
    $cats str_replace(" """$cats );   
            
    $cats explode','$cats );
            
    $category explode','$category );
            
    $found false;
            
            foreach ( 
    $category as $element ) {
                
                if( 
    $action ) {
                    
                    if( 
    in_array$element$cats ) ) {
                        
                        return 
    $block;
                    }
                
                } else {
                    
                    if( 
    in_array$element$cats ) ) {
                        
    $found true;
                    }
                
                }
            
            }
        
            if ( !
    $action AND !$found ) {   
        
                return 
    $block;
            }
        
            return 
    "";
        
        }
    }
    if (
    stripos $tpl->copy_template"[category=" ) !== false) {
        
    $tpl->copy_template preg_replace_callback "#\\[(category)=(.+?)\\](.*?)\\[/category\\]#is""check_category"$tpl->copy_template );
    }

    if (
    stripos $tpl->copy_template"[not-category=" ) !== false) {
        
    $tpl->copy_template preg_replace_callback "#\\[(not-category)=(.+?)\\](.*?)\\[/not-category\\]#is""check_category"$tpl->copy_template );
    }
     
    • Смешно Смешно x 1
  8. Sunny_Curtis

    Команда форума VIP Кинотрафик v2

    Регистрация:
    9 дек 2016
    Сообщения:
    857
    Лучших ответов:
    0
    Рейтинги:
    +142 / 30 / -0
    koks
    Не сработало.
     
  9. hitnet

    hitnet Зелёный

    Регистрация:
    28 янв 2020
    Сообщения:
    2
    Лучших ответов:
    0
    Рейтинги:
    +0 / 0 / -0
    А мне можно? ;)

    Нужно распарсить на php текстовую строку (отображающую дату или диапазон дат) в переменные типа DATE для записи в MySQL (1 или 2 переменные соответственно)
    Примеры строк на входе:
    29 июл. 2014 г.
    3–18 окт. 2013 г.
    5 янв.–30 июн. 2014 г.
    13 июн. 2010 г.–23 авг. 2015 г.
     
  10. killxsteal

    PRO Users

    Регистрация:
    21 июн 2019
    Сообщения:
    274
    Лучших ответов:
    0
    Рейтинги:
    +43 / 8 / -0
    Кокс не потянул?
     
  11. devid

    PRO Users

    Регистрация:
    6 окт 2018
    Сообщения:
    21
    Лучших ответов:
    0
    Рейтинги:
    +7 / 0 / -0
    Прошу простить, что влез в чужую тему, но что-то захотелось написать.

    Функция возвращает массив из одной или двух дат или null в случае невозможности определить дату.

    PHP:
    function dateInterval($str) {
        
    $months = ['янв'=>1,'фев'=>2,'мар'=>3,'апр'=>4,'мая'=>5,'июн'=>6,'июл'=>7,'авг'=>8,'сен'=>9,'окт'=>10,'ноя'=>11,'дек'=>12];
        
    $d1 $d2 null;

        
    $str str_replace('–''-'$str);

        if (
    preg_match('~(\d{1,2}) ([а-я]{3})\. (\d{4}) г\.-(\d{1,2}) ([а-я]{3})\. (\d{4}) г\.~u'$str$m)) {
            
    $d1 = [$m[1], $m[2], $m[3]]; $d2 = [$m[4], $m[5], $m[6]];
        } elseif (
    preg_match('~(\d{1,2}) ([а-я]{3})\.-(\d{1,2}) ([а-я]{3})\. (\d{4}) г\.~u'$str$m)) {
            
    $d1 = [$m[1], $m[2], $m[5]]; $d2 = [$m[3], $m[4], $m[5]];
        } elseif (
    preg_match('~(\d{1,2})-(\d{1,2}) ([а-я]{3})\. (\d{4}) г\.~u'$str$m)) {
            
    $d1 = [$m[1], $m[3], $m[4]]; $d2 = [$m[2], $m[3], $m[4]];
        } elseif (
    preg_match('~(\d{1,2}) ([а-я]{3})\. (\d{4}) г\.~u'$str$m)) {
            
    $d1 = [$m[1], $m[2], $m[3]];
        }

        if (
    $d1 && array_key_exists($d1[1], $months) && checkdate($months[$d1[1]], $d1[0], $d1[2])) {
            
    $d1 sprintf('%d-%02d-%02d'$d1[2], $months[$d1[1]], $d1[0]);
            if (!
    $d2) return [$d1];
            if (
    array_key_exists($d2[1], $months) && checkdate($months[$d2[1]], $d2[0], $d2[2])) {
                
    $d2 sprintf('%d-%02d-%02d'$d2[2], $months[$d2[1]], $d2[0]);
                if (
    $d1 <= $d2) return [$d1$d2];
            }
        }

        return 
    null;
    }

     
    #11 devid, 28 янв 2020
    Последнее редактирование: 28 янв 2020
    • Нравится Нравится x 2
  12. hitnet

    hitnet Зелёный

    Регистрация:
    28 янв 2020
    Сообщения:
    2
    Лучших ответов:
    0
    Рейтинги:
    +0 / 0 / -0
    devid
    Огромное спасибо!
    Решение точное и изящное, гораздо лучше огромных портянок, предлагаемых за деньги на хабр-фрилансе (которые пришлось еще обгугливать, чтобы убрать пхп-варнинги в логах).
    С удовольствием отправлю Вам пару сотен "на пиво" (Киви/Яндекс/счёт_мобилы/карта), киньте в личку реквизиты.
     
  13. TopicStarter Overlay
    koks

    PRO Users

    Регистрация:
    3 фев 2017
    Сообщения:
    72
    Лучших ответов:
    1
    Рейтинги:
    +19 / 1 / -0
    Ничего страшного. Я просто долгое время не заходил на форум...
     
  14. evgfreeman

    VIP Кинотрафик v2

    Регистрация:
    26 апр 2016
    Сообщения:
    3.235
    Лучших ответов:
    7
    Рейтинги:
    +1.454 / 209 / -0
    koks это все из за спайса, хотя погодите ка, все из за кокса))
     
  15. wawe

    PRO Users

    Регистрация:
    23 янв 2017
    Сообщения:
    3.549
    Лучших ответов:
    6
    Рейтинги:
    +1.574 / 404 / -0
    На данном форуме нет лычки тролль :D Не мучийся.
    И да, этот подъёб я взял из одноклассников, как ты любишь. :D
     
    • Смешно Смешно x 1
Яндекс.Метрика