Рубель - форум об интернет заработке.

Объявление

Самые уважаемые пользователи форума.

    Информация о пользователе

    Привет, Гость! Войдите или зарегистрируйтесь.


    Вы здесь » Рубель - форум об интернет заработке. » Компьютер и программы » Вчера дегустировал свежее ядро


    Вчера дегустировал свежее ядро

    Сообщений 21 страница 31 из 31

    21

    alsk написал(а):

    Вот я какой БЫЛ.

    А сейчас какой?

    alsk написал(а):

    Вопрос: КАК ВЫ ПОНИМАЕТЕ ЭТУ КАРТИНКУ?

    А что не так с этими клумбами?

    Lebeda написал(а):

    А у нас сейчас солнышко светит.

    Ужас. У нас 2 недели жарило под 37 градусов тепла. Сегодня дождичек был, я прямо балдел.

    0

    22

    Tehnik написал(а):

    А сейчас какой?

    А что не так с этими клумбами?

    Ужас. У нас 2 недели жарило под 37 градусов тепла. Сегодня дождичек был, я прямо балдел.

    Сейчас я 100% не такой как вчера ;%:)))
    ---

    Клумбы были куплены по очень завышенным ценам. И уже рассыпались. Если присмотреться к ним то видно, что они покусаны.

    Ну а миски алюминиевые кажись дают за решётками. <= Тоже не понятно(?)

    0

    23

    Tehnik написал(а):

    Я про хостинг. )))

    ааа, это как? Я на гх уже 100пудово не буду хоститься (или хостериться). ну их...

    0

    24

    Чиновники часто так делают, покупают дешёвые вещи по громадной цене. За такое да, сажать должны. Полиции надо работать лучше.
    Бегать любишь? У нас такая жара, что даже мусор вынести страшно, пока идёшь вся вспотеешь.  :unsure:
    Гиперхост тебе не нравится?

    0

    25

    https://forumupload.ru/uploads/0019/49/e2/212/t676846.png

    0

    26

    вот так вот  :cool:

    0

    27

    Ну если паузу ставить, то разобраться можно.  %-)

    0

    28

    Lebeda написал(а):

    Ну если паузу ставить, то разобраться можно.

    паузу... хм-м... но ведь лучше смотреть на скорости х2.

    В процедурщине там полный абсолютный ипец. А в оопе

    Код:
    //применить скин
        case 7:
            $skinid = $_POST['skinid'];
            $ref=$_POST['ref'];
            if(!$vld->is_post_vars_set($skinid,$ref)){
                $rd->rd2_404();                 //позже блокировать
            }
            $vld->is_post_id_valid($skinid);    //позже блокировать
            
            $q = 'select skinid from skin where skinid=?';
            if(!Sql::is_int_in_tbl($q, $skinid)){
                $e->er(44);     //НЕТ СКИНА
            }
            OneSkin::set_skin();
            //ВСЁ? неа не всё.
            //теперь всё. иду спать.
            break;
    
    // + к этому методы из класса
    
        public static function set_skin() {
            $ust = new UserStatus();
            $rd = new Redirect();
    //незалогин - устан в сессии и всё
            if (!$ust->is_user_loged()) {
                OneSkin::set_skin_in_session();
                $rd->go_2url($_POST['ref']);
            } else {            //шобы не было ложной ошибки при обновлении уже установл скина
                if ($_SESSION['skinid_usopt'] == $_POST['skinid']) {
                    $rd->go_2url($_POST['ref']);
                }
                OneSkin::set_skin_for_loged_user();
                OneSkin::set_skin_in_session();
                $rd->go_2url($_POST['ref']);
            }
        }
        private static function set_skin_in_session() {
            $_SESSION['skinid_usopt'] = $_POST['skinid'];
        }
    
        private static function set_skin_for_loged_user() {
            $e = new Err();
            $ddb = $_SESSION['ddb'];
            $q = 'update usopt set skinid_usopt=? where uid_usopt=?';
            $rawdata = $ddb->prepare($q);
            $qr = new Qresult();
            $qr->prep($rawdata);
            $res = $rawdata->bind_param('ii', $_POST['skinid'], $_SESSION['uid']);
            $qr->bindpar($res);
            $res = $rawdata->execute();
            $qr->exec($res);
            $x = $qr->affrow($rawdata);
            $rawdata->close();
            if ($x != 1) {
                $e->er(47);     //не удалось сменить скин
            }
        }
    
    
    

    А вот чыто в процедурщине было

    старый код

    /**
    * установить скин и обновить каунтеры
    * баг!!! ВОЗМОЖНА ПОВТОРНАЯ УСТАНОВКА СКИНА И +1 КАУНТЕР СКИНОВ
    * ОБНАРУЖЕН 2017-02-25
    * решение: сделать перезагрузку профиля, чтобы в сессии был реальный скин
    * @param $ddb конект к бд
    * @param  $skinid
    * @return
    */
    function set_skin($ddb, $skinid) {

        if (isset($_SESSION['uid'])) {
    //2017-02-26 перезагрузить профиль, чтобы не было проблем с рачетом скин_каунтеров
            load_us_profile($ddb, $_SESSION['uid'], "r");

    //если залогинен, обновить скинИДЩ в usopt
    //но сначала проверить может меняют один и тот же скин
            if ($_SESSION['skinid_usopt'] == $skinid) {
    //если меняют тот самый скин, редирект, потому что скин тот же самый
                header("Location: /newskins-pg1/");
    //            header("Location: /show.php?wsh=8&pg=1");
                exit;
    //и таким способом не будет лишних запросов
            }

    //
    //обновить и расчитать каунтеры и тоже их обновить
            $q = 'update usopt set skinid_usopt=? where uid_usopt=?';

            $rawdata = mysqli_prepare($ddb, $q);
            qres('prep', $rawdata, $ddb);
    //связываем параметры с метками

            $res = mysqli_stmt_bind_param($rawdata, 'ii', $skinid, $_SESSION['uid']);
    //привязка параметров
            qres('bindpar', $res, $ddb);
            $res = mysqli_stmt_execute($rawdata); //query exec
            qres('exec', $res, $ddb);
            $x = affrow($rawdata, $ddb);
            mysqli_stmt_close($rawdata);
    //$x сколько строк обновлено
            if ($x != 1) {
    //не удалось обновить: сообщить об этом
                er(47);
    //не вдалось змінити тему оформлення
            }

    //получить ДВА скин_каунтА скинов

            $q = 'SELECT min(CASE skinid WHEN ? THEN skin_count END) oldskcount, min(CASE skinid WHEN ? THEN skin_count END) newskcount FROM skin';
    //первая колонка - теуущий (то есть тот что БЫЛ. Выше я уже "поменял" скин)
    //вторая колонка - новый
            $rawdata = mysqli_prepare($ddb, $q);

            qres('prep', $rawdata, $ddb);
    //связываем параметры с метками

            $res = mysqli_stmt_bind_param($rawdata, 'ii', $_SESSION['skinid_usopt'], $skinid);
    //2017-02-25
    //сессСкинИД=1 (НЕапктуальный), СкинИД=3 (постЗначение)
    //ВОТ ТУТ И СЛУЧИЛАСЬ ОШИБКА
    //
    //привязка параметров
            qres('bindpar', $res, $ddb);
            $res = mysqli_stmt_execute($rawdata); //query exec
            qres('exec', $res, $ddb);
            $x = numrow($rawdata, $ddb);
    //$x сколько строк вернул селект
    //
    //$x=3;
            if ($x != 1) {
                mysqli_stmt_close($rawdata);
                crit_err($ddb, 'q. ret. not 1 record in send:7 get too skin_counters in set_skin');
    //2017-02-27
    //при возникновении этой ошибки повторное обновление страницы обновляет скин
    //в usopt но не обновляет каунтеры.
    //при повторном обновлении страницы СессСкинИД уже будет изменен перезагрузкой профиля вначале фунции.
    //И так как Скин будет один и тот же, исполнение кода до каунтеров не дойдет.
    //Ошибки после повторного обовления страницы не будет.
    //
    //НО каунтеры не обновятся при первой смене скина. Применить транзакцию?
            }

    //связываем переменные с результатами запроса
            $res = mysqli_stmt_bind_result($rawdata, $oldsk_count, $newsk_count);
            qres('bindres', $res, $ddb);
            $res = mysqli_stmt_fetch($rawdata);
            qres('fetch', $res, $ddb);
            mysqli_stmt_close($rawdata);

    //echo "$oldsk_count | $newsk_count";
    //echo '<br>';
            $oldsk_count = $oldsk_count - 1;
    //2017-02-25
    //0 был потому что в бд скинкаутер только +число
    //
    //нужно вначале вытягивать реально используемый скин из usopt
            $newsk_count = $newsk_count + 1;

    //echo "old $oldsk_count | new $newsk_count";
    //var_dump($_SESSION);
    //записать новые значения скин_каунтов
            $q = 'update skin set skin_count=? where skinid=?';
            $rawdata = mysqli_prepare($ddb, $q);
            qres('prep', $rawdata, $ddb);
    //связываем параметры с метками

            $res = mysqli_stmt_bind_param($rawdata, 'ii', $oldsk_count, $_SESSION['skinid_usopt']);
    //сначала обновить тот что был

            qres('bindpar', $res, $ddb);
            $res = mysqli_stmt_execute($rawdata); //query exec
            qres('exec', $res, $ddb);
    //echo "old $oldsk_count | new $newsk_count";
    //потом обновить каунт того что установили
            $res = mysqli_stmt_bind_param($rawdata, 'ii', $newsk_count, $skinid);
    //сначала обновить тот что был

            qres('bindpar', $res, $ddb);
            $res = mysqli_stmt_execute($rawdata); //query exec
            qres('exec', $res, $ddb);
            mysqli_stmt_close($rawdata);
        }//если залогинен
    //     
    //установить сесс переменную и редирект на первую страницу всех скинов.
        $_SESSION['skinid_usopt'] = $skinid;
        header("Location: /newskins-pg1/");
    //    header("Location: /show.php?wsh=8&pg=1");
        exit;
    //ВСЁ!
        return;
    }

    +еще

    /**
    * Запсись о скине существует в бд? Если нет то ошибка 44 или crit_err
    * Если есть, то return TRUE
    * @param $ddb конект к бд
    * @param  $skinid
    * @return true OR er44
    */
    function is_skin_exist($ddb, $skinid) {
        $q = 'select skinid from skin where skinid=?';
        $rawdata = mysqli_prepare($ddb, $q);

        qres('prep', $rawdata, $ddb);
    //связываем параметры с метками

        $res = mysqli_stmt_bind_param($rawdata, 'i', $skinid);
    //привязка параметров
        qres('bindpar', $res, $ddb);
        $res = mysqli_stmt_execute($rawdata); //query exec
        qres('exec', $res, $ddb);
        $x = numrow($rawdata, $ddb);
    //$x сколько строк вернул селект
    ///////////////////////////////
        mysqli_stmt_close($rawdata);
    //$x=1;
        if ($x == 0) {
    //теми овормлення не знайдено
            er(44);
    //exit;
        } elseif ($x == 1) {
            return(TRUE);
        } else {
    // $x !=0 $x!=1
            crit_err($ddb, 'err in check_skin_exist x !=0 and != 1');
        }
    }

    А ТЕПЕРЬ ВОПРОС: ГДЕ ПРОЩЕ ДОПУСТИТЬ ОШИБКУ И ГДЕ ЛЕГЧЕ ЕЕ ИСПРАВИТЬ?
    И ЕЩЕ ВОПРОС: ГДЕ СЛОЖНЕЕ ДОПУСТИТЬ ОШИБКУ И ГДЕ ТРУДНЕЕ ЕЕ ИСПРАВИТЬ?

    Та я понимаю что вопрос немножко (вообще) не по адресу, но... вдруг кто-то чё-то ...

    Отредактировано alsk (10-07-2021 11:36:23)

    0

    29

    Я ничего не понял.

    0

    30

    Tehnik написал(а):

    Я ничего не понял.

    Та я понимаю что вопрос немножко (вообще) не по адресу, но... вдруг кто-то чё-то ...

    Значит не нужно понимать, значит мне тут нечего больше делать.

    0

    31

    Старый код проще читать. Хотя мне и то, и то, сложно.

    0


    Вы здесь » Рубель - форум об интернет заработке. » Компьютер и программы » Вчера дегустировал свежее ядро