Профиль пользователя заблокирован сроком с 10 апреля 2022 г. и навсегда по причине: систематические нарушения правил сервиса
  • Что нужно пакету/библиотеке чтобы он(а) стал(а) популярной?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    В первую очередь - опыт.
    То есть, библиотека должна быть не маниловским мостом "отсюда и до петербурга" а базироваться, во-первых, на опыте разработчика в области, в которой он собрался осчастливить человечество, и во-вторых - на реальном опыте эксплуатации библиотеки, по результатам которого библиотека исправляется и дополняется.

    В случае с валидатором форм все библиотеки разработываются по одному и тому же сценарию:
    1. Богатый опыт подсказывает разработчику, что параметров валидации целых два: наличие данных и их длина.
    2. Под эту парадигму пишется удобная, красивая, легкая, быстрая, аккуратная библиотечка.
    3. Попытка использования в реальном проекте выявляет еще 100500 вариантов вализации и их комбинаций.
    4. Разработчик пытается впихнуть в библиотечку все невпихуемое, и она закономерно становится толстой, уродливой, неповоротливой, с кучей неявных соглашений и хаков.
    Ответ написан
    1 комментарий
  • Как вставить массив в столбец бд?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Для начала надо научиться задавать вопросы как программист, а не как обыватель.
    То есть, описывать вводные для задачи не с помощью невнятной жестикуляции, а конкретными примерами.

    Чтобы получить конкретный ответ, надо задать конкретный вопрос.
    Есть массив? Показывай, какой у тебя массив.
    Есть "2 бд"? Показывай, что это за "бд" (которые на самом деле называются таблицами).
    Надо что-то вставить? Показывай, как должны выглядеть данные после вставки.

    Без всего этого можно только гадать. Но в целом что-то вроде такого, если предположить осмысленную структуру БД:
    $massiv = ['name1','name2','name1'];
    $event_id  = 1;
    $stmt   = $pdo->prepare("INSERT INTO table VALUES (?,?)");
    foreach ($massiv as $name)
    {
    	$stmt->execute([$event_id, $name]);
    }

    и получение

    $stmt = $pdo->prepare("SELECT name FROM table WHERE event = ?");
    $stmt->execute([$event_id]);
    $names = $stmt->fetchAll(PDO::FETCH_COLUMN);
    Ответ написан
  • Как по другому вывести цикл, чтобы данные вносились в таблицу, а не дублировали её?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Не зачеркивать домен красными чернилами?

    Ну или например можно выкинуть этот помоечный шаблонизатор в соответствующее место и использовать хотя бы native PHP

    $statuses = [1 => "Сайт работает", "Сайт на модерации", "Сайт отключен"];
    $data = [];
    $number = 1;
    while ($row = mysql_fetch_assoc($query)) {
        $row['stattext'] = $statuses[$row['status']];
        $row['number'] = $neumber++;
        $data[] = $row;
    }
    $tpl->set("data", $data);
    $tpl->load_template('main_user.tpl');

    Ну и шаблон
    <div class="panel panel-default">
        <!-- Default panel contents -->
        <div class="panel-heading">Мои сайты</div>
        <!-- Table -->
        <table class="table">
            <thead>
                <tr>
                    <th>#</th>
                    <th>Адрес сайта</th>
                    <th>Статус</th>
                    <th>Настройки</th>
                </tr>
            </thead>
            <tbody>
    <? foreach ($data as $row): ?>
                <tr>
                    <td><?=$row['number']?></td>
                    <td><?=$row['site_name']?></td>
                    <td>
                        <i class="icon-<?=$row['status']?>"  
                         title="<?=$row['stattext']?>" 
                         data-placement="top" data-toggle="tooltip"></i>
                    </td>
                    <td><a href="/cabinet/edit/<?=$row['id']?>">Редактировать</a></td>
                </tr>
    <?php endforeach ?>
            </tbody>
        </table>
    </div>


    К вопросу о старой байке про "дизайнера". Уже не первый десяток лет дремучие пользователи похапе рассказывают друг другу страшилки про Неизвестного Дизайнера, которого никто никогда не видел, но который до судорог боится РНР. И ради него изобретают самые уродливые шаблонизаторы, которыми в итоге неудобно пользоваться ни тому "дизайнеру", ни самому программисту.

    При этом все замены сводяфтся к ОБФУСКАЦИИ.

    Есть у нас, к примеру, блок кода, который надо повторять, пока есть данные.
    В нормальном шаблонизаторе мы пишем что-нибудь вроде FOREACH, LOOP или подобное.
    В кастрированном шаблонизаторе мы СКРЫВАЕМ назначение данного блока - а то не дай бог оператор цикла увидит "дизайнер" и у него тут же слвчится заворот мозгов! Поэтому мы пишем какую-нибудь ерунду типа <!-- section -->
    При этому суть блока НЕ ИЗМЕНИЛАСЬ! Это остался тот же цикл. И для корректной верстки нужно понимать, что это цикл. Но узнать об этом неоткуда... кроме РНР кода контроллера! За что боролись - на то и напоролись.

    По части суеверий похапе программисты будут почище средневековых крестьян.
    Ответ написан
  • Сайт в поддомене не работает?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Так вам же и написали: более подробную информацию можно найти в логе ошибок.

    Подсказка: у посетителей сайта тостер.ру доступа к логам твоего сервера нет.
    Ответ написан
    Комментировать
  • Как увеличивать инкремент, если есть поле unique ?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Первое, что надо узнать - ЗАЧЕМ тебе это нужно - " делать автоинкремент только тогда, когда он добавил реально запись"? Какая тебе разница, какое значение у этого поля?

    Отвечать подробно
    Ответ написан
    Комментировать
  • Вывод папок и их файлов?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Чувак, тебе сюда: www.freelansim.ru
    Ответ написан
    Комментировать
  • Как быстро войти в основы php?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Странный вопрос. Не понимаю, что здесь надо учить?
    Неужели с бэкграундом явы код на РНР не читается как открытая книга?
    По-моему, проблема языка высосана из пальца.

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

    Ну и, разумеется, по доброй традиции, все ответы - только на заголовок вопроса. Отвечатели на тостере такие отвечатели.
    Ответ написан
    Комментировать
  • HTML5/CSS3/JavaScript vs PHP кто победит?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Жалоба на вопрос: вопрос ведет к дискуссии или спору.
    Ответ написан
  • Как сделать 301 редирект с GET?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Надо просто подумать.
    Взять и представить мысленно, чем отличается
    site.com/region/section/13?page=1
    от
    site.com/region/section/13

    И потом подумать, как из первого получить второе.
    Ответ написан
    Комментировать
  • Первая книга по PHP для верстальщика?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Мне кажется, верстальщику вообще не нужно знать РНР.
    Особенно учитывая, что доля шаблонов на чистом РНР страмительно сокращается в пользу специализированных языков шаблонизации - Smarty, Twig, Blade.

    Все что нужно - это уметь отличать верстку от операторов, управляющих динамическим содержанием АКА логикой отображения. Но это обычно и так видно - любая конструкция, которая не ХТМЛ тег - это логика, и в неё верстальщику лезть не надо.
    Ответ написан
  • Как выполнить скрипт в точное время?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Учитывая выбранные теги (казалось бы - какая связь между исполнением задания на сервере и запросах из браузера?), порекомендую освоить базовые принципы работы с БД. Которые несколько отличаются от принципа работы привычного каждому школьнику линейного списка АКА "классный журнал".

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

    Попробуй - тебе обязательно понравится.
    Ответ написан
    21 комментарий
  • Разные настройки php на разные сайты Apache2?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    вместо php_flag пиши php_admin_value

    И не забудь исправить ошибки.
    Ответ написан
  • Какие технологии разумно использовать при создании и корректировке динамической таблицы?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Для начала желательно оценить осмысленность задачи.

    Как уже написали выше, совершенно непонятно, зачем здесь веб-технологии вообще.
    Откуда такое требование - обязательно рисовать таблицу в браузере? Почему нельзя нарисовать её в бычном окне?
    Учитывая, что GRID в браузере - это совсем не так трививально.

    Плюс городить целый веб-сервер в нагрузку к маленькому приложению - это и вовсе за пределами моего понимания.

    Я на всякий случай поясню: веб-технологии используются, когда доступ к данным требуется обеспечить неограниченному кругу клиентов. Для этой цели устанавливается веб-сервер, доступный из сети, коорый все данные харнит у себя, и выдает или сохраняет их по запросу.

    Если же надо вывести таблицу для редактирования и сохранить результаты на диск, то рекомендую использовать MS Access, или что там сейчас вместо него.
    Ответ написан
    Комментировать
  • Сколько будет жить cookie, если сессия не закончилась?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Вопрос не очень понятен. О какой куке речь? Как она связана с сессией?
    О какой сессии речь? О сеансе работы с сайтом или о РНР сессии?
    Если речь о той куке, в которой передается идентификатор сессии, то её вообще не надо руками трогать, оставив все параметры по умолчанию, в том числе и всремя жизни.
    В этом случае время жизни куки будет выставлено в 0, и кука будет жить ровно столько, сколько длится сессия - не больше и не меньше.

    Если все же залезть шаловливыми ручонками в настройки и выставить время жизни куки в 15 минут, то РНР сессия умрет вместе с кукой, разумеется.

    Если остались вопросы, то сначала обязательно прочитать, что такое сессии
    Ответ написан
    Комментировать
  • Как боретесь с конфликтами в GIT если несколько программистов работают над одним файлом в вебприложении?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    unity_ultra_hardcore++

    Плюс, если дело именно в работе над одним и тем же файлом, то я бы предложил декомпозировать этот файл, разделив его на модули, чтобы разные программисты могли работать каждый со своим файлом.
    Ответ написан
    Комментировать
  • Не работает mysqli_data_seek, что не правильно?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Неправильно тут ВСЁ.
    Но самое ужасное - это попытка натянуть на новую библиотеку методы работы, которые были популярны в прошлом веке.
    Плюс хранение данных результата в классе - это классические же грабли.

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    А ты пробовал?
    Ответ написан
    Комментировать
  • Как вывести в html данные полученные по WSDL с помощью PHP?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Обращение к элементам объектов и массивов не имеет ни малейшего отношения к теме SOAP и WSDL.

    К свойству объекта обращаются так: $obj->svoistvo
    К элементу массива обращаются $array[index], но обычно массивы перебираютс с помощью foreach()
    Ответ написан
  • Как отправить файл из php post запросом?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    И что - принимающий сервер не принимает?
    Ответ написан
  • Как удалить часть массива?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    <?php
    $a[] = new stdClass();
    echo count($a);
    unset($a[0]);
    echo count($a);

    - всё работает.
    Если у тебя не работает какой-то свой код, то и разбирайся с этим кодом, удаление из массива тут не при чем.
    Ответ написан
    Комментировать