Задать вопрос
  • Почему не удаляются сессии?

    @ipokos
    что у вас хранится в $_POST['logout'] до вардампа (на моменте: if(isset($_POST['logout'])){)?
    Ответ написан
  • Объясните пару строк кода, что они делают?

    @ipokos
    // Если существует в пост запросе auth_name выполняется код в условии 
    if (isset($_POST['auth_name']))
    {
        $sql = "SELECT * FROM users WHERE name=?s"; // Запрос SQL
        $row = $db->getRow($sql, $_POST['auth_name']); // выборка запроса с БД
    // Если пароль пройдет проверку записывается значение в сессию
        if ($row && password_verify($_POST['auth_pass'], $row['pass'])) {
            $_SESSION['user_id'] = $row['id'];
        }
    // редирект на страницу
        header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
    // выход из скрипта
        exit;
    }
    // если в гет запросе есть action и он равен logout 
    if (isset($_GET['action']) AND $_GET['action']=="logout") {
    // убивается сессия и происходит редирект
        session_start();
        session_destroy();
        header("Location: http://".$_SERVER['HTTP_HOST']."/");
        exit;
    }
    Ответ написан
    Комментировать
  • Как правильно подключить файл в дочерней теме?

    @ipokos
    Что хранится в константах EVA_FUNCTIONS и EVA_CHILD_THEME_PATH ?
    пути в родительской и дочерней темах одинаковые?
    Включите в wp_config.php debug , возможно ругается на то что нет файла.
    Проверьте что возвращает isset и file_exists
    Ответ написан
    Комментировать
  • Как сделать что бы файл брался из предыдущего каталога?

    @ipokos
    при импорте скрипта этого, функция берет файл который рядом с скриптом


    но как сделать, что бы она брала файл который лежит рядом со скриптом


    Как вариант, для файлов импорта, сделать отдельную папку (с правами на чтение/запись) и туда складывать загруженные файлы. А ко всем остальным файлам/папкам, скрипт (и файлы которые может загрузить пользователь) не должны иметь доступа.
    Ответ написан
    Комментировать
  • Как сделать, чтобы при клике сработал PHP код?

    @ipokos
    При клике на что? Сработал какой код?
    Правильно сформулированный вопрос - это 90% ответа.

    По сути, Вы можете создать форму с hiden полем и кнопкой отправить. У вас будет происходит загрузка action файла, на котором может выполнятся Ваш код. Для пользователя будет выглядеть "по клику" но с перезагрузкой страницы.

    Если нужно более адекватное решение, то как уже написали - ajax.
    Пример (при условии что используется jquery):
    $.ajax({
      url: 'your_file.php?action=1',
      success: function(data) {
        $('.results').html(data);
      }
    });

    В файле: your_file.php

    <?php
    $param = $_GET['action'];
    if($param == 1){
    // your code here
    }
    Ответ написан
    Комментировать
  • Как (можно ли) свой самописный сайт yii2 перенести на bitrix (старый сайт сделан на bitrix, т.е. взамен старого поставить новый написанный на yii2)?

    @ipokos
    Не совсем ясно что вам нужно... Вы хотите использовать CMS битрикс, но перенести и визитку? или Вам нужно только визитка? Нужен ли Вам вообще битрикс?
    забрать домен и у нормального хостинга все запустить

    или Вам нужно просто уйти от хостера?

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

    @ipokos
    Все относительно. Если нужно просто и максимально быстро поднять сервер/php/mysql
    Тут если винда: xampp и тот же Sublime (для примера).. у него был и плагин (не помню как назыавется) может подтягивать используемые плагины.
    Если Linux, можно вообще все на скрипт повесить..
    И +- по времени до 5 мин, будет готовая рабочая среда

    А вот если нужно:
    всегда из любой точки быстро поднимать собственную рабочую среду (экосистему)

    Совсем другой разговор.. Для некоторых проектов иногда нужно индивидуально подстраивать и версию php и mysql... и дампы базы могут разворачиваться часа по 4+..
    т.е. тут понятие "быстро" очень относительно.
    Ответ написан
  • Есть ли набор функций OpenCart из коробки в Magento Community Edition?

    @ipokos
    Реально развернуть особо не навороченный магаз 1000-1500 товаров на бесплатной магенте?

    Более чем реально. (+ есть много плагинов, в том числе и бесплатных)

    Оплата ру картами, qiwi (хорошо бы), ну и статистика/управление заказами (как можно детальнее)

    Тут не понял. Вы хотите заказать и оплатить ру картой или киви? Или эта возможность нужна в магазине?
    Если 1е - хз, если 2е - ставятся модули оплаты.

    Интересна еще скорость работы

    В сравнении с Opencart не скажу, но нормальная скорость работы около 2 - 4 сек(зависит от темы, контента) на первую загрузку. После того как закешировался, в принципе как и любой магаз +-.
    Ответ написан
    Комментировать
  • Как исправить функцию отправки почты?

    @ipokos
    Ну как Вам уже писали выше, что отправка происходит через файл, который лежит на стороннем сервисе, а у того (http://green.alpachini.ru) закончился хостинг.
    По сути, в условии if(is_array($file)) { ....
    У вас уже собирается содержимое письма.

    Если на скорую руку, можете попробовать, убрать участок кода работы с $curl
    И вызвать стандартный mail().
    Например:
    // код вашей функции 
    
    mail($email, $subject, $multipart); 
    /*
     $curl = curl_init();
        		curl_setopt($curl, CURLOPT_URL, 'http://green.alpachini.ru/send_mail.php');
                curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
          curl_setopt($curl, CURLOPT_POST, true);
          curl_setopt($curl, CURLOPT_POSTFIELDS, "to=$email&tema=".urlencode($subject)."&text=".urlencode($multipart)."&from=site@site.com&boundary=$boundary");
          
          $out = curl_exec($curl);
        curl_close($curl);
    */


    Если решите использовать стандартный отправщик, не лишним будет почитать по нему доку: php.net/manual/ru/function.mail.php
    Ответ написан
    Комментировать
  • Как задать позиционирования балун в яндекс картах через api?

    @ipokos
    Попробуйте посмотреть:
    Динамическая загрузка содержимого балуна
    https://tech.yandex.ru/maps/jsbox/2.1/balloon_ajax
    Ответ написан
    Комментировать
  • Что не так с поиском по сайту?

    @ipokos
    Исходя из строки:
    $row = $db->select_list($sql);
    В $db у вас создается объект для работы с базой, который у вас в этом файле не подключен.

    Когда проект увеличивается (классов становится больше), достаточно проблематично, "ходить" и подключать их (да и в целом это не правильно).
    Для этого используются автолоадеры.
    Например:
    $class_name = 'db';
    spl_autoload_register(function ($class_name) {
        require( '../folder_name_classes/' . $class_name . '.php');
    });

    Подключаете файл с автолоадером и вызываете нужные классы.
    Ответ написан
    Комментировать
  • Checkbox как сохранять в куки?

    @ipokos
    Обрабатываете $_GET массив в файле site.php
    // получаете данные с формы
    $var1 = $_GET['varname1'];
    $var2 = $_GET['varname2'];
    
    $value = 'your data in cookie';
    // проверяете, если чек был установлен, то это true 
    if($var1){
        // ставим куку
        setcookie ("your_cookie_name", $value);
    }else if($var1 == false && $_COOKIE["your_cookie_name"]){
       // если чек не установлен и существует кука с именем your_cookie_name
       // то ее удаляем, ставя ей отрицательное время жизни
        setcookie ("your_cookie_name", "", time() - 3600);
    }


    Для того что бы ставить или нет чек на форму, на поле сделать проверку типа:
    <input type="checkbox" value="1" name="varname2" class="styled" <?php if($_COOKIE["your_cookie_name"]){ echo 'checked="checked"'; }?>>


    p.s. это пример на скорую руку. Почитайте детальнее про то как работать с куками, как удалять, проверять и хранить в них данные.
    + данные полученные через $_GET нужно строго типизировать (например, если ожидаете число, то очищаете результат от тегов, пробелов, проверяете на число, если полученные данные число, продолжаете, иначе возвращаете false)
    Ответ написан
    Комментировать
  • Как вызвать функцию по клику?

    @ipokos
    У вас функция загружается и может выполняться сразу после загрузки страницы.
    Если нужно вызывать только по клику, то вместе с страницей загружаете обработчик события:
    $(document).ready(function(){
        $('.show_more').bind('click', function(){
        // тут тело функции которая выполняется по клику на элемент с классом show_more
    })
    // или так:
    
    $('.show_more').bind('click', ajaxFunction() );
    // а саму функцию ajaxFunction() описываете ниже
    function ajaxFunction(){
       // тут тело функции
    }
    });


    p.s. старайтесь не давать функциям зарезервированные имена (bind, ajax, click и т.п.)
    1е - это не описывает функционал, 2е - может вызвать ошибки или психи когда будете отлаживать ее потом)
    Ответ написан
    2 комментария
  • Как сделать CRUD приложение средствами php для управления несколькими таблицами?

    @ipokos
    Четкая формулировка вопроса - это уже половина решения.
    Из вопроса неясно, Вы используете какой то фреймворк, цмс или пишите это все сами.
    ООП или процедурно?

    Если оптимальный вариант, то для работы с бд используется какая то ORM )

    Если нужно самому, то для каждой таблицы создается отдельная модель - это нормально.
    Лучше избегать дублирования кода=)

    Ну или опишите более детально.
    Ответ написан
  • Как вытащить из поля базы данных конкретную информацию?

    @ipokos
    Возможно гуру MySQL смогут подсказать Вам решение с запросом...
    Но вот вариант решения с PHP:
    $text = '<a href="/files/download/11/e0ab03d8">Скачать</a>';
    preg_replace("'<[\/\!]*?[^<>]*?>'si", null, $text);
    echo $text; // вернет Скачать

    Регулярное выражение очищает строку от html тегов
    Ответ написан
    Комментировать
  • Отправятся ли письма если сайт не открывался(запустился)?

    @ipokos
    Это делается с помощью крон. На хостинге, в панели управления практически всегда есть расписание крон задач. Если даже нет, Вы сами можете их писать, если не заблокированно сервером. Только нужно учитывать, что часто есть ограничение на кол-во отправляемых писем в день
    Ответ написан
    Комментировать
  • Почему PHP ругается на код Codeignaiter?

    @ipokos
    Суть ошибки в том что ожидается строковый тип данных, а приходит массив.
    Посмотрите в методе db->update() какие данные принимаются.
    Могу предположить что формат, может быть примерно такой:
    $data - данные которые записываете.
    $this->db->update('table_name', $data, 'column_name')
    Ответ написан
    Комментировать
  • Почему плагин подключается на всех страницах?

    @ipokos
    подключается на странице на которой он не нужен

    Подключать только на используемой странице. Ее можно переопределить в дочерней теме.

    Как и где вы выводите плагин? Где его нужно отобразить?
    Ответ написан
    Комментировать
  • Как сделать при выборе ответа в Popup другое действие?

    @ipokos
    "yes" вызывался новый popup

    js-ом

    при ответе "no"

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

    @ipokos
    Есть ли способ, проверить локальный сайт на наличие ошибок

    Если есть время, тут поможет PHPUnit (тестирование)

    Версий linux довольно много любая ли версия подойдет

    На сервере, чаще всего centos или debian.

    Если в Linux Mint сайт будет работать отлично или медленно

    Нет, это не значит что на хостинге будет так же. Зависит от того в чем проблема и есть ли она.

    есть ли некое решение по выявлению всех ошибок и проблем со скоростью сайта

    Проблемы со скоростью, чаще всего из за медленных запросов к базе или из за "кривого кода".
    Для отслеживания медленных запросов у MySQL есть втроенная функ-ция логирования медленных запросов. Если с запросами все ок, то дебажить, проверять код (часто бывает проблема в неправильных циклах) в большом количестве занятой памяти и т.п.
    Намного реже, проблема бывает с хостингом, но бывает.
    Ответ написан
    Комментировать