• Публикация переписки - можно ли, или нужно спрашивать согласия?

    @dtBlack
    yayashitoya, Вот я только что кинул коллеге переписку с другим сотрудником, я нарушил закон или нет?
    По закону не нарушил, так как это касалось рабочих моментов, а не частной жизни...

    С сакурой конечно возможен вариант, что мой собеседник начнет вспоминать, про первый поцелуй под сливой и тд. тогда конечно публиковать стоит с согласия.
  • Публикация переписки - можно ли, или нужно спрашивать согласия?

    @dtBlack
    yayashitoya, Если было обсуждение цветения Сакуры весной, то публиковать можно. Если обсуждали личную жизнь Ниночки из бухгалтерии или любовные похождения собеседника, то нельзя.
    То есть то что не касается тайны личной жизни можно, то что касается нельзя.
  • Как быть фрилансеру чистым перед законом?

    @dtBlack
    see595, Если есть сомнения читай первоисточники, в твоем случае это ст.226 НК РФ.
    И еще раз повторюсь, ты можешь позвонить на горячую линию в налоговую, именно для этого ее и создавали.
  • Как быть фрилансеру чистым перед законом?

    @dtBlack
    see595,
    Просто, кто то говорил, что юр лицо работая с физиком должен выступать в роли налогового агента и сам удерживать НДФЛ и производить оплату, могу ошибаться и все же где истина, хз.

    Это говорит ст. 226 НК РФ
  • Как быть фрилансеру чистым перед законом?

    @dtBlack
    По закону налоговый агент, это юр. лицо и именно оно должно перечислять НДФЛ и прочие взносы (Пенсионный и тд.). И привлечь физ лицо налоговая за это не должно, так как максимум что должен платить человек явно это 13%, а их уже по договору переводит за человека, компания.

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

    PS: в крайнем случае при сомнениях позвони на горячую линию в налоговую и задай интересующий вопрос.
  • Как вывести посты в разных местах на странице, используя цикл только 1 раз?

    @dtBlack
    SaW, Да, for все же оптимальней чуток. Я написал сообщение, а потом до меня дошло, что я про память забыл... В случае с array_slice у нас будет еще три доп массива.
  • Как вывести посты в разных местах на странице, используя цикл только 1 раз?

    @dtBlack
    1. Теоретически при вызове array_slice затрачивается больше ресурсов чем при вызове for, но разница там если и есть то она ничтожна на трех вызовах.
    2. Далее пойдет удобство и безопасность использования, и тут преимущество на стороне array_slice, так как в случае слишком большого смещения(выбралось не 13, а например всего 5 статей), тебе она вернет пустой массив и все. Если у тебя глушатся варнинги, то можно его сразу пихать в foreach без проверок (но делать так конечно не стоит).
    При использовании for нужно будет проверять количество элементов в массиве, и не запускать цикл.
    По сути опять разница выходит незначительная при нормальном написании кода.
    3. По читабельности кода, код с array_slice будет более читабелен чем с for, но новички просто могут быть не в курсе что такое array_slice, но 99% точно знают что такое for.
    Код для for визуально сложней для восприятия, и в нем проще ошибиться:
    for ($index = 4, $size=count($array) ; ($index < $size && $index <= 7); $index++) {
    
                }


    В итоге особой разницы нет какой из вариантов использовать, я бы выбрал array_slice в нем сложней допустить ошибку при дальнейших модификациях, но если грамотно использовать константы и тп., то выйдет что вообще нет разницы, используй то что тебе визуально больше нравится.
  • Где практиковаться в низкоуровневом программировании и что изучать?

    @dtBlack
    В принципе для уровня, хоби++ и про-- уже есть STM32 и иже с ними по доступным ценам.
    Но конечно, опыт полученный от попыток втиснуть свой код в attiny13 мне кажется будет незаменим...
  • Как разбить csv в массив без fgetcsv?

    @dtBlack
    Neocaridina, А там все просто, в гугле найди любой пример построчного чтения файла, и над каждой строкой уже свои действия.

    Насчет explode - эта функция сработает только для простых файлов CSV, если в файле встречаются символы разделители в теле переменной (экранированные кавычками ), то explode не подойдет, нужна будет регулярка.

    Спецификация:
    1. Каждая строка файла — это одна строка таблицы.
    2. Разделителем (англ. delimiter) значений колонок является символ запятой (,). Однако на практике часто используются другие разделители, то есть формат путают с DSVruen и TSV (см. ниже).
    3. Значения, содержащие зарезервированные символы (двойная кавычка, запятая, точка с запятой, новая строка) обрамляются двойными кавычками ("). Если в значении встречаются кавычки — они представляются в файле в виде двух кавычек подряд.

    То есть если у тебя нет п3, то все намного проще...
  • $_SESSION отчистка кеша требуется?

    @dtBlack
    Евгений, Мне трудно точно указать где в коде тебе нужно внести правку.
    Но у тебя скорее всего реализован паттерн MVC ты сейчас пытаешься изменить шаблон в V (View) а нужно в С (Controller).
    То есть тебе нужно сделать такое поведение контроллера, что бы для страницы fac использовался другой шаблон.

    Route::get('/', function () {
        return view('index');
    });

    То есть шаблон тебе нужно менять перед view или в процессе исполнения view. То есть $_SESSION['skin'] ты должен задать перед тем как это значение будет считано и использовано.
  • CRUD YII2 проблема при удалении записи из таблицы?

    @dtBlack
    OlegBas1996, а у страницы 404 в адресной строке нет url случаем? Как можно, что то подсказать, если информации нет от слова совсем? Еще и в тексте упомянута таблица users, а приводятся ссылки для news?
  • CRUD YII2 проблема при удалении записи из таблицы?

    @dtBlack
    Уточни какую конкретно тебе ошибку выдает, и дай ссылку куда тебя редиректит?
  • Как передавать значение чекбоксов и выбранных файлов на почту?

    @dtBlack
    Максим Варава, такс... пока я победил свою лень...
    1. Не пытайся впихнуть невпихуемое, если у функции mail есть определенный набор полей, то их и нужно передавать, а не пытаться впихнуть туда все что есть.
    2. Тело письма, это строка про Конкатенацию строк можно почитать тут или тут
    3. Не ясно зачем тебе на данном этапе отправка через ajax, лучше бы использовал обычную форму.
    4. Очень непонятная верстка, зачем ты использовал button-ы? Тем более обернутые label? Как правильно работать с тегом label можно прочитать тут
    5. Зачем сохранять почту в скрытом поле формы? Сохрани ее как константу или переменную в коде php, иначе твоя форма будет мечтой спамеров.
    6. Зачем тебе вообще секция с $_GET если ты везде посылаешь данные в $_POST.
  • Как передавать значение чекбоксов и выбранных файлов на почту?

    @dtBlack
    Отправляй одним письмом, а не двумя как сейчас.
    Первая отправка -
    $mail = mail($admin_email, $form_subject, $body, $headers);
    и вторая в самом конце.

    Как прикрепить файл к письму полно информации в интернете, даже на этом сайте будет с десяток ответов. например тут Как добавить отправку файла (скрипт "PHP + AJAX ск...
  • Возникла проблема с запросом к бд, в чем проблема?

    @dtBlack
    Никита Братский, Я очень сильно надеюсь, что это курсовик или учебный проект, а не реальный сайт...
    1. Время жизни сессии настраивается.
    2. Куки могут редактироваться на компьютере. Я авторизуюсь на твоем сайте как user, а потом изменю имя в куках на admin. Что будет тогда?
    3. Твоим правилом про создании сайта должно быть "Пользователь хочет сделать каку, нужно не дать ему этого". Всегда обрабатывай всю инфу пришедшую от пользователя особено если потом воткнешь ее в запрос к бд.
    4. Время жизни авторизации и не должно быть слишком большим. 2-3 часа обычно вполне хватает.
    5. Для работы в качестве логина с почтой нужно изменить запрос на "SELECT * FROM table WHERE `login` = '$login' OR `mail` = '$login'"
    6. А почему что то должно выводиться? Ты куки грохнул которые создал? Добавь секции else с выводом ко всем IF и смотри где прекратилось выполнение.
  • Возникла проблема с запросом к бд, в чем проблема?

    @dtBlack
    Никита Братский, Насчет той ошибки тебе стоило гугл спросить... У тебя сайт отправил уже заголовки, то есть ты уже вывел что то в браузер.

    И вообще зачем тебе куки? Чем сессия не подходит?

    Я вообще себя хакером ощущаю... Так и хочется воткнуть sql инъекцию и авторизовавшиcь как user заменить имя пользователя в куках на admin/

    PS: Почитай про mysqli_real_escape_string
  • Возникла проблема с запросом к бд, в чем проблема?

    @dtBlack
    Никита Братский Хм... не понял.
    В принципе у тебя код не правильно написан. Нет даже самых нужных проверок.

    Еще вопрос в чем соль строки if ($login == $query['login'] or $login == $query['mail']) { ? У тебя ведь всегда $login == $query['login'] см свой запрос и никогда не сработает проверка $login == $query['mail'] см тот же запрос.

    Еще попробуй почитать про редиректы в PHP.

    Чуть более верно твой код будет выглядеть так:
    if (isset($_POST['submit_auth'])) {
        if (!isset($_COOKIE['UserLogin'])) {
            $login = $_POST['login'];
            $password = $_POST['password'];
            $con = mysqli_connect("localhost","login","password","table") or die('Не удалось подключиться');
            $query = mysqli_query($con, "SELECT * FROM table WHERE `login` = '$login'");
            if ($query){//Проверка успешности запроса
                var_dump($query);
                $user_data = $query->fetch_assoc();
                
                if (!empty($user_data)) {//Проверим нашелся ли такой пользователь
                    $hash = $user_data['password'];
                    if (password_verify($password,$hash)) {
                        setcookie('UserLogin', $user_data['login']);
                        echo '<script type="text/javascript">window.location.href="/"</script>';
                    }else{
                        echo "<p class='RU-font-family' style='color:red;'>Вы ввели неверный пароль</p>";
                        print_r($password);
                    }
                }else{
                    echo "<p class='RU-font-family' style='color:red;'>Вы ввели неверные данные</p>";
                    $text = "SELECT * FROM users WHERE login = '$login'";
                    var_dump($text);
                }
            }
        }
    }


    PS: особенно веселая строка print_r($query['password']);
  • Возникла проблема с запросом к бд, в чем проблема?

    @dtBlack
    Шустро ты проверил... Надеюсь понял в чем была ошибка?

    PS: Мой совет - не используй одно имя переменой для разных по сути вещей.
    У тебя по коду выходит, что сначала в $query находится объект mysqli_result, а потом в нем оказывается массив с данными. Это очень сильно усложняет чтение кода и поиск ошибок.
  • Как задать вместо параметра страницу PAGEN_1 - /page1/?

    @dtBlack
    alex921, По приведенным вами данным, ничего решить не выйдет.

    Для вас могу посоветовать залезть в файлик urlrewrite и посмотреть как там реализована ваша пагинация.
    Есть вероятность, что если реализовывали все правильно, то у вас "под капотом" происходит скрытое преобразование с site.ru/catalog/category/page2/ на site.ru/catalog/category/?PAGEN_1=2

    Так же из простого можно на странице куда вы вставляете код из вопроса, вывести дампы массивов $_POST и $_GET и посмотреть что там есть. Делать это нужно не на первой странице само собой, а на 2 и более.
  • Как задать вместо параметра страницу PAGEN_1 - /page1/?

    @dtBlack
    Lander, Все так и будет выглядеть, тут выводят данные только на первой странице. На 45-й пойдет мимо и все.