• Как сформировать ldap_search с кириллицей на php?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Включите ldapV3
    ldap_set_option(LDAP_OPT_PROTOCOL_VERSION, 3);
    Тогда должен нормально работать поиск по UTF-8-строкам и фильтр будет
    (&(&(objectClass=user)(objectCategory=PERSON))(|(memberof=CN=Access-VPN-BitrixVM,OU=VPN,OU=Access,OU=Groups,OU=CO,DC=company,DC=local)(memberof=CN=Отдел клиентского сервиса \(Call-центр\),OU=Depart,OU=Groups,OU=CO,DC=company,DC=local)))
    Ответ написан
    1 комментарий
  • Как использовать структуры данных на практике?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Мысль совершенно правильная.

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

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

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

    @OkOl
    /opt/php/7.3/bin/php composer.phar .......
    Ответ написан
    Комментировать
  • Как разделить строку на уровни вложенности в PHP?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега PHP
    Даже если это можно сделать через регулярки (мне так не кажется), этот код не будет поддерживаемым и читаемым.

    Напишите простой конечный автомат, который будет разбирать строку посимвольно в многоуровневый массив, а потом к элементам этого массива добавляйте свой процент, который будет высчитываться исходя из количества соседей. Для сборки финальной строки понадобится рекурсия, но это преодолимое препятствие.
    Ответ написан
    2 комментария
  • Не работает бд в php?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Если вы считаете, что данные не заносятся в БД, то на это может быть две причины
    1. Ошибка при занесении.
    2. Все заносится, но вы просто не там смотрите.

    Чтобы исключить первый пункт, надо убедиться в том, что вы можете видеть все ошибки. Для этого на локальном сервере надо включить отображение ошибок на экран. Плюс настроить РНР, чтобы он не скрывал никакие ошибки
    <?php
    # Ошибки
    # Для локального сервера
    ini_set('display_errors', 1);
    # Всегда
    error_reporting(E_ALL);
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    
    # дальше пишем сам код
    $login = trim(filter_input(INPUT_POST, 'login'));
    $password = filter_input(INPUT_POST, 'password');
    
    if (mb_strlen($login) < 4 || mb_strlen($login) > 15) {
      exit("Логин не должен быть короче 4 символов и больше 15");
    } else if (mb_strlen($password) < 8 || mb_strlen($password) > 100) {
      exit("Пароль не может быть короче 8 символов и больше 100");
    }
    $password = password_hash($password, PASSWORD_DEFAULT);
    
    $mysql = new mysqli('176.107.160.36', 'limbo', 'Fear333M', 'vanilla');
    
    $stmt = $mysql->prepare("INSERT INTO `sait` (`login`, `password`) VALUES (?, ?)");
    $stmt->bind_param("ss", $login, $password);
    $stmt->execute();

    Кроме настройки ошибок я еще выкинул бессмысленный код и поправил кривой, в том числе в плане безопасности.

    Если же этот код выполняется и не выдает ошибок при этом, значит данные добавились. И надо просто открыть правильную базу данных
    Ответ написан
    Комментировать
  • В чем разница запуска скрипта через браузер и по ssh?

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

    SSH - это уже консоль, а её ни кто не убивает. Поэтому и скрипт работает без ограничений по времени.

    И именно так и задумано, долгоработающие скрипты нужно запускать именно в консоли. Можно сделать и с браузером, но лучше не надо.
    Ответ написан
    Комментировать
  • Дубль формы через JS и присваивание атрибута name c индексом?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Как вариант - handlingUnits[PackageType][].
    Тогда индексы в PHP проставятся автоматически.
    Ответ написан
    1 комментарий
  • Почему не создаётся php8.1-fpm.sock?

    Kuzm1ch88
    @Kuzm1ch88
    /etc/php-fpm.d/www.conf
    listen = 127.0.0.1:9000
    nginx конфиг
    fastcgi_pass 127.0.0.1:9000;

    fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
    Ответ написан
    8 комментариев
  • Почему php требует ssl сертификат?

    jone21
    @jone21
    Кратко не получится
    $arrContextOptions=array(
        "ssl"=>array(
            "verify_peer"=>false,
            "verify_peer_name"=>false,
        ),
    );  
    $sw=file_get_contents(ЛИНК, false, stream_context_create($arrContextOptions));
    Ответ написан
    2 комментария
  • Почему imagemagick может менять имя выходного файла?

    demon416nds
    @demon416nds Автор вопроса
    Разработчик на чем попало
    Причина осталась неизвестной, но решением оказалось пересоздание tprocessutf8 после каждого цикла обработки
    cmd:=tprocessutf8.Create(nil);
    cmd.Executable:=mydir+'\magick.exe';
    cmd.Options := cmd.Options + [poWaitOnExit] + [poNoConsole];
    cmd.Parameters.Add('"'+imgname+'" -crop '+inttostr(cs)+'x'+inttostr(cs)+'+'+inttostr(cx)+'+'+inttostr(cy)+' "'+inttostr(t)+'temp1.jpg"');
    cmd.Execute;      
    /*тут еще несколько операций над картинкой*/
    cmd.Free;

    upd
    похоже причина была в необнулении переменных но проверять уже не буду
    Ответ написан
    Комментировать
  • Yandex поиск пагинация странная i++?

    Если яндекс по твоему запросу предполагает, что он какой-то программистский, то он вот такие приколюхи добавляет.
    Хз зачем это нужно, видимо просто чтобы порадовать)
    Ответ написан
    Комментировать
  • Почему говорят что jquery не нужен?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Скрипач не нужен, родной (с)
    Аргументы против jq:
    - современные браузеры достаточно хорошо поддерживают единый синтаксис современного екмаскрипт(native js)(на самом деле нет).
    - сторонняя библиотека, работает медленнее чем натив и в основном состоит из с-сахара (тоже не совсем правда)
    - тащить еще один ресурс весом от 64 кб до 200 кб, еще и со сторонних ресурсов замедляет загрузку( правда, но бред)
    Аргументы за:
    - Современные браузеры как и всегда один другого "ровнее", всегда есть косяки и "нюансы", на которые еще и попадаешь обычно в самый неподходящий момент, в жк обычно все работает одинаково везде, ну или лучше чем в нативе.
    - В жк реализована куча плюшек в 1 функцию которые в нативе занимают "многабукав", не каждый начинающий напишет их правильно, да и профи не все напишут оптимально, уверен что в большинстве случаев написанный нативом функционал будет хуже аналога из жк.
    - размер мин пакета жк 64 кб, и все они лежат на быстрых цдн серверах. Думаю это последнее что может повлиять на скорость загрузки страницы.
    - есть ОГРОМНОЕ количество скриптов написанных с учетом жк, не использовать их глупо, писать свой велосипед - вообще только в целях обучения(не берем крайние случаи когда плагин писал упоротый пингвин).
    - Синтаксис и краткость записи - вообще вне конкуренции.
    - Старые браузеры никто не отменял, часто заказчик требует чтобы работало в ие8, натив не канает или доставляет море анального удовольствия.
    Вывод: Если ты крут в жс, еще и работаешь в ангуларе/ещечетамдляфронта и тебе нужно сделать 2 действия в очень современных браузерах - jquery не нужен, и ты это сам знаешь. Если слова ангулар, вуе и проч для тебя не больше чем шум листвы за окном, а навесить плагинов и эффектов нужно - jquery наше все.

    UPD: для всех кто там отписался а ля "в связи (...), исчезновением проблемы совместимости со старыми IE (что и было основным назначением jQuery)." - свежачок
    Ответ написан
    4 комментария
  • Почему говорят что jquery не нужен?

    @dmitry_pacification
    Трудности рождают прорыв
    Так говорят скорее всего потому, что не понимают что на самом деле jQuery дает. Можно написать все на чистом js, но jq вразы ускоряет разработку. Соответственно люди которые кричат против jq и получают деньги за часы работы заинтересованы в том, чтобы делать по дольше задачу и получить больше денег.
    Такой себе способ раздобыть немножно монет и понимания работы чистого js. ))
    Я пытался реализовать на js обычную кнопку "наверх", и плавный переход по лендинку вверх и в низ. Чесн скажу, я задолбался. Я знаю что на jq я решу это быстро и спокойно, на на нейтиве - это изобретения велосипеда с 0
    Ответ написан
    3 комментария
  • Можно ли добавить айди ролям в RBAC Yii2?

    @pantsarny
    Но ведь name является идентификатором, который используется в коде для проверки (can())
    Вам удобнее будут магические числа ? Или константы?
    Сделайте name слагом от названия
    Ответ написан
    Комментировать
  • Как из iframe обратиться к родителю?

    zkrvndm
    @zkrvndm
    Архитектор решений
    Чтобы послать сигнал из фрейма в родительской документ, в родителе ставите обработчик message:
    window.addEventListener('message', function(event) {
    	var message = event.data;
    	console.log('Получено сообщение из фрейма: ' + message);
    });

    Далее внутри фрейма попробуйте выполнить:
    window.parent.postMessage('Какое-нибудь произвольное сообщение', '*');

    И увидите, как сработал обработчик в родителе. Разумеется вместо сообщения, вы можете послать наружу, например, высоту фрейма или вовсе какой-нибудь произвольный JS-код, который потом можно выполнить внутри обработчика.

    Больше информации вы можете добыть самостоятельно, через поиск Яндекса:
    https://yandex.ru/search/?text=JavaScript%20postMe...
    Если мой ответ помог, отметьте его решением.
    Ответ написан
    Комментировать
  • Вызов js скрипта из iframe?

    @AigizK Автор вопроса
    Если бы основная страница и страница из iframe имели одинаковый домен, то вызвать можно было бы так

    window.top.needed();

    Но т.к. в iframe у нас отображается страница из поддомена, то так делать не получится.
    Но оказывается это можно обойти, изменив домен на основной странице и на странице iframe и выставить у обоих домен от корневого сайта. Тогда js функции можно вызвать так
    window.top.needed();
    Подробнее здесь
    Ответ написан
    Комментировать
  • Как реализовать поиск по бд на сайте?

    vabka
    @vabka Куратор тега Веб-разработка

    mysql

    Гугли что такое SQL и как работать с MySQL


    Поиск друзей во ВКонтакте

    У вк есть API - читай документацию.

    Например на C# для работы с базами данных есть Entity Framework Core. А для работы с вк - библиотека VkNET.

    А чтобы это всё было доступно на сайте - на C# есть asp net core, с помощью которого можно написать сервер, который будет обрабатывать http запросы. А из браузера можно при помощи js и функции fetch этот запрос отправить, чтобы получить нужные данные.
    Ответ написан
    Комментировать
  • Как открыть консоль браузера на Андроид смартфоне?

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    https://developer.chrome.com/docs/devtools/remote-...
    Подключаем телефон к компу, открываем на телефоне сайт и на компьютере видим что в консоли телефона.
    Ответ написан
    Комментировать
  • Зачем вложенные "namespace"?

    @alexalexes
    Потому, что класс user (с достаточно неуникальным именем) может реализован еще в каком-нибудь стороннем компоненте.
    Чтобы при подключении этого компонента, вы могли использовать одноименный класс user как из своего компонента, так и из стороннего.
    Ответ написан