Ответы пользователя по тегу PHP
  • Как сделать меню с двигающимися пунктами?

    @ipokos
    это все должно двигаться относительно друг друга

    это как?

    чтоб добавлять туда элементы динамически

    добавлять или выводить ранее добавленные?

    Если нужно вывести простое меню из БД, получаете выборку с линками и тайтлами для меню.
    Перебираете в цикле формируя html контент. При необходимости кешируете что бы каждый раз не дергать БД
    Ответ написан
    Комментировать
  • Как интегрировать информационную систему аттестации сотрудников на существующий сайт учреждения?

    @ipokos
    Возможно ли написать систему на php

    Зависит от задачи. Если нужно написать что-то на Java или на C, то PHP наверно не подойдет
    ну если сервер поддерживает php... то почему нет

    включить как раздел сайта (ссылку) на внешнюю программу?

    смотрите как в существующей системе реализован роутинг (на чем написано)
    (если это не самописный велик, то наверно все +- не древние cms и фреймворки поддерживают возможность модульного расширения)

    это будет как поддомен основного сайта?

    а кто знает-то как вы напишите..

    > Примитивный пример.
    Есть сайт domain.com
    Вы в корень положили файл certificate.php и в нем описали логику,
    и в нужном месте оставили ссылку на domain.com/certificate.php
    p.s. но так не делается! это только пример что ненужно мудрить что то с доменами или т.п.
    Ответ написан
  • Как вывести совпадения из 2 массивов?

    @ipokos
    array_unique(array_intersect($array, $array2))
    Но как вам писали выше, лучше делить такой объем...
    а так, при тесте на 100к элементов в массивах (только числа), выполнение занимает около 1мб памяти
    Ответ написан
  • Как сделать уведомление пользователя при изменение значение переменной?

    @ipokos
    ajax - это способ передачи данных (т.е. логика обработчика не изменится, будете вы его использовать или нет)
    Как сделать уведомление пользователю при изменение значение переменной?

    /* получаете переменную которая у пользвателя и ту с которой сравниваете, ну и собственно сравниваете */
    if($userVar != $systemVar){ 
        return $notice;
    }

    И мне надо что бы он с интервалом 10 - 15 сек., делал запрос ajax


    function yourAjaxRequest(){
     // описываете ajax запрос
    }
    // задаете вызываемую функцию и интервал частоты запросов в мс (в примере 15 сек)
    setInterval( yourAjaxRequest, 15000 );


    но почему-то мне кажется что сложность не в этом...
    Ответ написан
    1 комментарий
  • Что лучше использовать для чтения файла в данном случае?

    @ipokos
    Подскажите пожалуйста, какой лучше будет выбрать язык,

    исходя из вопроса, проект либо переделывается с нуля или вообще не готов?

    особенно волнует момент со временем, как его правильно для каждого блока вывести

    А все остальное тогда понятно и ясно?

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

    @ipokos
    Если в htaccess определять язык браузера и исходя из этого переключать?
    RewriteEngine on
    # редирект на русскоязычную версию сайта для русских и украинской браузеров
    RewriteCond %{REQUEST_URI} ^/$ [NC]
    RewriteCond %{HTTP:Accept-Language} (ru|uk) [NC]
    RewriteRule .* http://fish.izjum.com/ru.html [R=302,L]
    # редирект на англоязычную версию сайта для всех остальных языков
    RewriteCond %{REQUEST_URI} ^/$ [NC]
    RewriteRule .* http://fish.izjum.com/en.html [R=302,L]
    Ответ написан
  • Каким образом можно создать фоновый процесс на сайте?

    @ipokos
    Из описания неясно как это должно работать.
    Как один из вариантов:
    1)
    по нажатию кнопки на сайте
    записать данные в отдельную таблицу.

    2) поставить cron задачу на нужное
    через некоторое время
    , например каждый час, минуту ну или т.п.

    3)
    даже если пользователь перешёл на другую страницу или закрыл сайт.
    cron будет дергать нужный вам скрипт. В нем получаете данные что понажимали пользователи и их обрабатываете.
    Ответ написан
    Комментировать
  • Нужно ли как-то обрабатывать данные из GET запросов?

    @ipokos
    нужно ли как то обрабатывать данные которые я получаю от пользователя в виде GET запроса

    Да. и POST тоже. И вообще все что может отправить или сделать пользователь нужно проверять.

    И если да, то как?

    - Проверки делаете по возможности на клиенте (что б лишний раз не дергать бд и все остальное, если пользователь напихал чего то не того)
    - проверки на сервере, т.к. запрос может быть отправлен без клиента.

    Что именно проверять, зависит от того что ждете.
    если ждете id и это может быть только число, проверяете на число или приводите к нему
    ... и т.п.
    Очищать от мусора как вариант так
    trim(stripslashes(htmlspecialchars( $yourVarible )));
    Ответ написан
    1 комментарий
  • Как прописать путь сохранения готового файла экспорта из бд в excel (PHPExcel)?

    @ipokos
    при экспорте сохраняется в ту папку в которой находится сам файл.

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

    Что вы имеете в виду
    Можно ли сделать так, чтобы пользователь сам указывал куда ему сохранить готовый результат?
    ?

    Если вам нужно дать доступ к файлу, вы его сохраняете в нужной директории
    $writer->save('dir/folder/download/export_file.xlsx');

    а пользователю даете только ссылку на загрузку, например
    your_site.loc/dir/folder/download/export_file.xlsx
    А куда пользователь будет сохранять, это уже его дело
    Ответ написан
    Комментировать
  • Как исправить ошибку после обновление ubuntu?

    @ipokos
    Что приходит в foreach на 24 строке в файле convert.php ?
    PHP Warning:  Invalid argument supplied for foreach() in /home/convert.php on line 24
    Ответ написан
  • Чем модель отличается от контроллера, и что для чего используется в примерах?

    @ipokos
    что работу с бд лучше проводить в модели

    не лучше, а правильно.

    это я что-то неправильно понимаю

    неясно как ответить

    или статьи некорректны

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

    Модель - работает с сущностью БД. Например у вас есть таблица пользователей. Для нее вы создаете модель Customer. Все необходимые операции при выборке или т.п., например JOIN-ы, вы делаете в модели, а в контроллере, вы получаете только доступ к объекту этой модели и дальше с ней работаете
    Ответ написан
    Комментировать
  • Как изменить часть текста в массиве php?

    @ipokos
    А по каким критериям вопрос оценен "средней" сложности?
    В 1 записи находится несколько предложений.

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

    Ну а дальше например определить кол-во элементов массива, и в цикле рандомно менять местами
    Ответ написан
  • Где можно найти человека, который готов давать задания на php+yii2?

    @ipokos
    наилучший вариант - это +- выучить интересующий стек и пойти джуном на самую минимальную зп, или искать кто возьмет стажёром бесплатно. Главное команда, код-ревью и обратная связь
    Ответ написан
  • Почему не добавляется запись в гостевую книгу?

    @ipokos
    исходя из проверки:
    if ((strlen($name) <3) || (strlen($comment) < 3 )) $success = false;

    полагаю что длина имени или комментария меньше 3х символов

    п.с. а к чему тег PHPMYADMIN ?
    Ответ написан
  • Как правильно подключится к БД в ООП?

    @ipokos
    Пишу класс для подключения к БД и дальнейшего вывода информации.

    Это отлично, но хотел бы предложить для начала освоить синтаксис ООП, т.к. должно быть хотя бы базовое понимание, а после этого написать простой класс, понять что такое объект, как обращаться к его методам, как работать с несколькими объектами, как и для чего разделять область видимости методов и свойств, а только потом уже писать что то более сложное (подключение к БД)

    выскакивает ошибка Missing argument 1 for DB::__construct()

    Обращения к свойствам текущего объекта, происходит так:
    $this->host // обращение к $host
    $this->user // обращение к $user
    ...

    т.е. в вашем примере кода, можно сделать так
    public function __construct() {
                $this->connection = new mysqli($this->host, $this->user, $this->password, $this->db_name);
    
                if( !$this->connection ) {
                    throw new Exception('error');
                }
            }


    ну и само собой что конфиги для подключения к БД делать public.. скажем не нужно.
    Область видимости свойств (переменных)
    Ответ написан
    Комментировать
  • Где хранить неизменяемые списки значений?

    @ipokos
    В БД хорошо тем что можно сделать более универсальным и расширяемым (изменять со стороны пользователя и т.д.)
    Но если в проекте эти значения вообще меняться не будут, тогда конфиг отлично подойдет
    Ответ написан
    Комментировать
  • Как построить архитектуру веб-сервиса на PHP?

    @ipokos
    Возможно, это всё не нужно и лучше использовать готовые решения, а не велосипед?

    А в чем вообще цель писать велосипед (Кроме единственной цели, научится) ?
    (ну и еще вариант, если у вас настолько уникальный функционал, что такого и близко нигде не используется)
    В остальных случаях готовое решение лучше, как минимум по таким причинам:
    - их делает не один человек
    - уделяется огромное время на расширяемость и универсальность
    - больше тестируется приложение
    - больше времени на микрооптимизацию
    Если взять несколько популярных фреймворков, то какой вообще смысл изобретать велосипед? (кроме того, как уже писал выше - научится)
    Ответ написан
    4 комментария
  • Как проверить входящие данные на сервере?

    @ipokos
    empty(0); // true
    empty(null); // true
    empty(''); // true
    empty(array()); // true

    Если какие то из этих значений вы ожидаете на входе, то посмотрите еще как вариант эти:
    isset, is_null

    еще как вариант, можно приводить к типу:
    if((bool)$x[0]){ // null, 0, '' - приведет к false
    }
    Ответ написан
  • Как в PHP решаем проблему поиска по ключу и извлечения значения?

    @ipokos
    Получить значение:
    $arr['id']['test'] // 1
    $arr['id']['test2'] // 2

    Если нужно проверить наличие ключа
    array_key_exists('test', $arr['id']); // true
    array_key_exists('test123', $arr['id']); // false
    Ответ написан
    Комментировать
  • Что делать если this добавляет домен к ссылке а она и так с домен как убрать ошибку?

    @ipokos
    1й вариант (кривой)
    Если $game['link'] уже содержит полную ссылку, почему не использовать его без $this->site ?

    2й вариант (кривой)
    учитывая что в $game['link'] у вас полный путь, а в $this->site - домен
    обрезать домен
    $str = str_replace("https://www.site.com/", "", $game['link']); // вернет page/page1
    и только потом конкатенировать
    $link = $this->site.$str;

    3й вариант (правильный)
    Найти где записывается значение в $game['link'], и изменить таким образом что адрес был относительным а не абсолютным. И тогда код $link = $this->site.$game['link']; будет по определению правильно работать
    Ответ написан