Задать вопрос
Ответы пользователя по тегу PHP
  • Как сделать обработку формы без отправки?

    @rPman
    на onclick/onchange поля ввода (в зависимости, когда именно нужно делать запрос) ставите обработчик javascript которые используя ajax с помощью какой-либо библиотеки, тот же jquery (или более низкий уровень XMLHttpRequest без библиотек) а на сервере на этот запрос вы уже делаете sql запрос и возвращаете результат.

    Не рекомендую делать запрос на каждое событие, ставьте ограничение - не чаще чем раз в X секунд, например вместо прямого запроса делать его внутри setInterval, отменяя предыдущий.
    И помните что запросы ajax асинхронные, т.е. некоторые ответы могут прийти позже других (такие вы по логике не должны выводить, так как уже получили более новый)
    Ответ написан
  • Могут ли взломать сайт через форму отправки сообщений?

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

    p.s. проверьте, что произойдет, если данные формы отправить в виде GET запроса, а не POST.
    Ответ написан
  • Как вставить видео с автопроигрывание на фоне на сайт, но не через youtube?

    @rPman
    Положите свое видео в виде файла на свой сервер и заверните его в тег video

    Форматы и кодеки видеофайла смотреть тут:
    https://ru.wikipedia.org/wiki/HTML5_video
    https://developer.mozilla.org/ru/docs/Web/HTML/Под...

    p.s. легальность использования того или иного кодека, то еще развлечение, но в вашем случае скорее всего теоретическое
    Ответ написан
    Комментировать
  • Почему PHP Simple HTML DOM Parser прерывает вывод сразу после слова на русском языке?

    @rPman
    ни разу не было проблем с этой библиотекой и русским языком (utf8)
    Ответ написан
  • Замена файла без изменения URL, как реализовать?

    @rPman
    Использовать особенности почти всех файловых систем - символьные ссылки. Пусть file.jpeg будет ссылка на нужный файл, пересоздавайте его по мере надобности.
    Ответ написан
    Комментировать
  • Не запутает ли такой полиморфизм разработчика?

    @rPman
    Я не буду говорить про ООП, читаемость кода или его модифицируемость в будущем.

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

    К сожалению это за последние десять лет стало нормой на столько что можно увидеть абсолютно везде... а потом удивляются, а почему все работает так медленно, и памяти кушает много.

    p.s. по теме, если параметр, который подставляют в вызов method() будет браться из-вне, например значение одного из параметров в GET, то я бы порекомендовал пропустить эти параметры через специальный метод-фильтр, конвертирующий строки во внутреннее представление (числовые дефайны или ссылки на методы), он же проверяет их валидность... вот это удобство для программиста, когда выделяется отдельная задача в отдельный метод/класс... ООП тут совершенно не требуется, так как нечего наследовать, хотя может быть использовано просто как синтаксический способ объединить код и данные в одном месте.
    Ответ написан
    3 комментария
  • Как сделать счетчик с автоматическим увеличением числа каждый день?

    @rPman
    Вам не нужно событие смены дня, вам нужно само число?
    Если вам нужно число, гарантированно уникальное, больше на единицу от предыдущего дня, то берете дату в формате unixtime, прибавляете смещение (когда вам нужно считать смену дня) и делите результат на (60*60*24) - целая часть результата - ваш индекс, можете вычесть какое то значение, соответствующее вашему первому запуску.
    Ответ написан
    Комментировать
  • Как запускать php на дата-контейнере Jelastic?

    @rPman
    вас не смущает путь до скрипта в ошибке?
    /mnt/www/html/info.php

    а монтируете
    /mnt/owncloud
    Ответ написан
  • Как подменять вкладки?

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

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

    @rPman
    Оформить php как сервис, в зависимости от того, какая система загрузки установлена читаnь документацию, upstart, systemd и т.п. во всех случаях это будет либо простейший скрипт (скопированный из примеров документации или из интернета) в котором вы укажете запуск своего php в виде запуска в цикле на том же bash - while(true);do php main.php;slep 1;done или на любом другом скриптовом языке, пусть и php.

    Рекомендую реализовать хоть какой то контроль над причиной завершения работы вашего скрипта, через код ошибки, или свои средства логирования и состояния, и корректно отрабатывать ситуацию с ошибками, чтобы не получилось бесконечный запуск приложения с немедленным выходом (допускается остановка с отсылкой сообщения администратору или к примеру экспоненциальный рост времени между перезапуском, если это происходит сразу), но это общие советы с любыми вечноработающими приложениями.
    Ответ написан
    Комментировать
  • Где можно найти скрипт обмена сообщениями между пользователями на php и mysql?

    @rPman
    поиском по хабру, первый же пример - habrahabr.ru/post/218751
    p.s. ну может быть не mysql, но важно ли это?
    Ответ написан
  • Аналог TeamViewer, Ammy, VNC

    @rPman
    Если на вашей стороне нет проблемы с белым IP и открытыми портами, то собираете portable сборку практически любого vnc server, высылаете ее с готовым ярлыком/батником запуска этого сервера с подключением к вашему запущенному vnc viewer в режиме listen connect.

    Оформить в виде самораспаковываемого архива думаю сумеете?
    Ответ написан
    2 комментария
  • И всё-таки, как «правильно» выполнять из PHP сложные sql-запросы?

    @rPman
    Не нужно перебарщивать, решите только одну главную проблему передачи параметров — escaping и quoting параметров, никаких монструозных велосипедов, только поправьте метод выполняющий ваши запросы, :param пусть идут в sql-запрос без изменений (а сам запрос сделать параметризованным, список параметров получается просто поиском всех вхождений /\:(\w+)/), а {param} заменяются по старинке, пусть там останутся куски самого запроса с выражениями.
    Ответ написан
    Комментировать
  • IIS, php, w3wp.exe, cmd.exe и многопоточность? заставить не залипать процессы?

    @rPman
    Выглядит, как будто процессы где то обращаются к общему ресурсу и ждут его освобождения (какой-нибудь кривой метод реализации очереди), выше уже посоветовали тщательно отладить и выявить где именно в коде образуется затык, обычным подробным логированием.

    Переложить весь код генерации в отдельный процесс, запускаемый вне сессии IIS (отдельным сервисом или даже standalone приложением) на том же php через какую-либо простенькую очередь, а вебсерверу оставить задачу — поместить задание в очередь, ждать его завершения, отдать результат.

    Достоинство такого разделения — более полный контроль над нагрузкой (процесс, обрабатывающий задания в очереди может быть многопотоковым) и самое главное, он будет запускаться в контексте обычного приложения без каких-либо внутренних особенностей и глюков, которые порождает IIS (ведь вы же сами показали что только под IIS возникает проблема).

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

    @rPman
    Не надо мучиться, напишите на моно простейшее консольное приложение использующее штатный контрол WebBrowser (при запуске под mono используется firefox), и пишите всю логику на javascript, запуская тут же на этой же странице на onload (точнее его аналог события на контроле).
    Оно действительно получается очень простым, вся логика влезает в javascript с использованием jquery (его можно грузить в отличный от '$' идентификатор). И при этом запускается такое приложение на любом самом дешевом vps linux.

    Я думаю между этим приложением и своим на php обмен сообщениями осилите c простейшими push ajax запросами или даже websocket?
    Ответ написан
    Комментировать
  • Socket-сервер php или python?

    @rPman
    Ни с сокетами, ни с семафорами, ни с шаред мемори из php у меня не было никаких проблем, память не утекала, обрабатывалось быстро… но дальше все зависит от того что вы будете делать и использовать.

    А дальше — выбор языка, чисто холиварный разговор. У питона перед php больший выбор готовых модулей (и гораздо аккуратнее их организация), нет проблем с целыми числами (32bit vs 64bit) и кому то сам язык больше нравится, но потребление памяти у питона значительно выше чем в php, да и синтетические тесты по работе с примитивами у php показывают выше скорость.

    p.s. А если у вас мало внешних вызовов и много внутренних расчетов, может сразу посмотреть на c++? :)
    Ответ написан
    3 комментария
  • Проблема в связке PHP + MS SQL Server 2005

    @rPman
    Очень плохая практика тяжелых монстров подключать к веб-морде напрямую. Это проблема создается разработчиком еще на этапе разработки архитектуры приложения.

    Про монстров, я имею в виду mssql/oracle/ibmdb…

    Исправить это сложно, особенно если не предусмотрено мест в коде для этого. Основное направление, ставьте что-то по проще, между веб-сервером и базой данных, основанное на document oriented db, какое-нибудь nosql решение (но и mysql+text indexing services поставить между вебом и oracle — тоже нормально), иногда достаточно решений вида 'просто кеш'.

    Обязательно этот модуль на себя должен брать вопросы аутентификации и авторизации, да и вообоще вопросы безопасности по максимуму (сам участвовал когда то в решении, где логин пользователя веб был логином в БД oracle, страшно вспомнить, хотя права доступа БД были оттюнены и завернуто было все через пакеджи и вьюхи).
    Ответ написан
    Комментировать
  • Как програмно сделать ставку на Yahoo Auctions JP?

    @rPman
    Когда то работая с эмитацией действий пользователей на различных сайтах понял что каждый раз исследовать код сайта, изучать запросы и реверсить логику совсем не верная дорога, не надежная и сложная.

    Намного проще оказалось реализовать основную (или часть) логику автоматизации и анализа в самом браузере с помощью javascript (со всей мощью jquery и т.п.), запуская браузер в какой либо компоненте в своем приложении (я использовал mono и компоненту штатную WebBrowser, она основана как я понимаю на firefox), приложение спокойно собирается в cli и работает на 'безголовых' серверах linux, при этом нет нужды бороться с владельцем сайта, который борется с ботами и ддос, выявляя тех кто эмитируют POST и GET запросы с помощью curl…
    Ответ написан
  • Сделал программный проект, базирующийся на Windows 7 Embedded, теперь надо обновлять все это дело?

    @rPman
    — я смешал в одной миске мороженное (его очень любят дети), мясной рулет с тушеной картошечкой (ммм, питательно), кофе и черный чай (я не знаю что больше любит заказчик), и пропустил его через миксер, чтобы влезло в тюбик. Теперь это завтрак для космонавтов.
    — я все правильно сделал?
    Ответ написан
    Комментировать
  • Какие есть средства локализации на уровне MySQL?

    @rPman
    Если не перелопачивать базу данных, простенько, для галочки… то вместо текста в поле храните сериализованный массив {ru:'Бла, бла, бла',en:'Blah, Blah, Blah',..}…

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