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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Желательно без использования сторонних библиотек типа PHP mailer.
    Ничего не мешает вам сделать это самостоятельно, посмотреть спецификацию протокола смтп, установить сокет соединение с нужным смтп сервером на нужном порту, пройти аутентификацию, переслать/получить ключ в случае если сервер требует сертификат, передать сообщение, получить подтверждение и ответ сервера, закрыть соединение. Делов на пару дней.
    Ну, или взять готовую билиотеку, покрытую тестами и использующуюся в миллионах проектов.
    Ответ написан
  • PHPWord. Как добавить строку в уже существующую таблицу с нужными данными?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Комментировать
  • Как достать картинку из видео файла при помощи js или php?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    ffmpeg
    Ответ написан
    Комментировать
  • Как исправить ошибку запроса кУРЛ?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    verbose
    Ответ написан
    Комментировать
  • Какие есть книги по расчёту оборудования под инфраструктуру сайта?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Во первых, в связи с быстроменяющимися технологиями такие книги устаревали бы к моменту выхода, так как верстка и написание их занимала бы больше времени чем время между анонсами нового серверного железа.

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

    В третьих - профиль нагрузки у очень похожих приложений может сильно отличаться, в силу специфики приложения.

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

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    А если я авторизовался - без проблем, можно видеть все подкюченные файлы. Я это имею в виду. Или же, если стили и скрипты не подключенны на странице, а просто находятся в общей папке, то спорсить их нельзя?
    Во первых - если у вас скрипты или стили несут некую угрозу безопасности сайта, то уже что-то пошло не так.
    Во вторых - да, можно использовать серверные скрипты для отдачи контента цсс и жс. Но никто так не делает, это неудобно, непрактично, получаем кучу гемороя на ровном месте и никакого профита.
    Ответ написан
    Комментировать
  • Пытаюсь запросить данные из MySQL через PHP. Где ошибка?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Выводится только "соединение установлено", а так - ничего
    Во первых - включить вывод ошибок, в логи же вы не смотрите...
    Во вторых - куча ошибок, непонятно откуда вообще появившихся. Все плохо.
    $link = mysqli_query($link, "SELECT * FROM 'table-name' WHERE USER_ID = 1620");
    Сам линк зачем-то затирается результатом выполнения запроса, внутри запроса имя таблицы зачем-то в кавычках (либо убрать, либо использовать обратные кавычки), потом вообще повтор и бред -
    $query = "SELECT * FROM 'table-name' WHERE USER_ID = 1620"; //снова кривой запрос, теперь уже в переменной, зачем?
    $result1 = mysqli_query($link, $query) or die(mysqli_error($link)); //Линк тут уже заменен результатом выборки, 
    //так что там не ресурс подключения, но варнинги мы не смотрим, так что пофиг же, да?

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    у меня есть файл PHP который записывает все входящие POST запросы в БД
    Ох, я уже хочу посмотреть на этот сайт... Так красиво работа с пдо еще нигде не применялась. Форма ничего не требует, а значит можно не заполнять, собсно по этому и запросы пустые. В принципе надо сказать спасибо что пустые, а не с инъекциями...
    Ответ написан
    Комментировать
  • Как реализовать добавление товара с количеством в корзину?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Awake, вопрос: Нахрена хранить это в стораже, если все равно лазеете на сервер при каждом чихе. Храните в сессии, или в бд, на сервер отсылайте только прибавить/убавить/удалить. Обратно получайте хтмл корзины, ну или жсон структуру и из нее уже хтмл лепите.

    Если очень хочется хранить в стораже - храните жсон строку под индексом товара, в котором уже цена, количество, от вашего кода нифига не изменится, кроме пары строк.
    будет у вас структура типа
    {
       "1":{
          "id":1,
          "qty":2,
          "price":666
       },
       "2":{
          "id":2,
          "qty":1,
          "price":77
       }
    }
    Ответ написан
    1 комментарий
  • Оптимальное решение для наложения большого количества текста со стилями на изображения?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    yarovikov,
    Да и текст поверх картинки верстать лютый гемор с адаптивностью. Там несколько столбцов текста, не считая остального
    Так не делайте адаптивно, тупо на А4 верстайте. Если вы думаете что расположить правильно на картинке текст сильно проще чем в придуманной специально для этого разметке - вы сильно ошибаетесь. А если юзер хочет скачать картинку - сделайте кнопку скачать, и отдавайте скрин через html2canvas, или более продвинуто - печать - сохранить в пдф, вообще красота, все векторное, не искажается, можно печатать в любом высоком разрешении....
    Ответ написан
  • Как нормально входить в phpmyadmin?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    в конфигурационном файле phpmyadmin config.sample.inc.php прописал... а после этот конфигурационный файл просто сам удаляется
    По тому что читать надо, это образец конфиг файла, скопируйте в новый файл с названием config.inc.php, и нечего меняться не будет.
    Ответ написан
  • Когда заливаю сайт на хостинг, то ломается кодировка, как решить?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Во первых надо выяснить где у вас ломается кодировка. Попробуйте залить обычный хтмл файл, вывести какой-то текст через пхп, запросить и вывести какие-то текстовые строки из бд - какой вариант даст поломанную кодировку?

    Во вторых - проверить что установленно в пхп.ини в качестве default_charset (должно быть default_charset = "utf-8").

    В третьих, конечно же проверить кодировку подключения к бд, которая должна быть выставлена как utf8mb4.

    Ну и в четвертых - для использования мультибайт функций нужно установить mb_internal_encoding("UTF-8");
    Ответ написан
    3 комментария
  • Как вывести в переменную данные из file_get_contents?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) при чем тут "вывести в переменную данные из file_get_contents"?
    2) все выводится, ищите ошибку в другом месте
    3) Если вы получаете xml, то зачем вам регулярки, есть средства, предназначенные для работы с xml
    Ответ написан
    Комментировать
  • Генерация зеркального текста для печати настольных табличек - что лучше изображения или PDF?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Наилучший вариант, который вижу я:
    Делаете хтмл шаблон, с разметкой под принтер на А4, выводите все страницы в хром, контрол+пэ, выбираете печатать в пдф. Готово, вы великолепны!

    по сути там просто сложенный лист формата А4 (с обрезанными краями), но главное с зеркальной инфой на обеих сторонах.
    Не совсем понял. Где там зеркально что-то? Разве не перевернуто?
    Ответ написан
    5 комментариев
  • На какой технологии или плагине работает подгрузка блока контента на сайте?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Подскажите примеры плагинов
    Для чего плагины то? Для фотошопа?

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

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Я изменил код на этот:
    Во первых, код принимает загрузку только жпег и пнг,
    во вторых, включите вывод ошибок, иначе будете до бесконечности гадать что не так,
    в третьих вполне возможно (и наиболее вероятно) что текущая версия гд на вашем сервере просто не поддерживает вебп.
    Для начала так:
    ...
    ini_set('error_reporting',E_ALL);
    ini_set('display_errors', 1);
            if (move_uploaded_file($_FILES['image']['tmp_name'][$tmp_i], $totalPath)) {
    							$image;
    							if ($ext == 'jpg' or $ext == 'jpeg') {
    								$image = imagecreatefromjpeg( $totalPath );
    							}
    							if ($ext == 'png') {
    								$image = imagecreatefrompng( $totalPath );
    							}
    							
    							if (isset($image)) {
    								
    								$imageWidth=imagesx($image);
    								$imageHeight=imagesy($image); 
    								$newImageWidth = 600;
    								$newImageHeight = ($newImageWidth * $imageHeight) / $imageWidth;
    								
    								$image = imagescale( $image, $newImageWidth, $newImageHeight);
    								
    								$logoWidth=imagesx($logoImage);
    								$logoHeight=imagesy($logoImage);
    								
    								imagecopy(
    								  $image,
    								  $logoImage,
    								  0, ($newImageHeight/2) - ($logoHeight/2),
    								  0, 0,
    								  $logoWidth, $logoHeight 
    								);
    								imagewebp( $image, $totalPath, 90 );
    
    								imagedestroy( $image );
    								imagedestroy( $logoImage );
    							}
    						}
    Ответ написан
  • Почему не работает cURL?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Но если воспользоваться точно таким же кодом на другом сервере VPS (хостинге) - то он отрабатывает нормально.
    Скорее всего хост занесен в спам лист, если принципиально работать именно с этого хоста - связываться с администрацией хостинга (хотя скорее всего им пофиг), или связаться с админами 5ka.ru с просьбой снять ограничения.
    Ответ написан
    1 комментарий
  • Как отследить какой элемент из select выбран?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    phpfaq.ru/newbie/na_tanke

    Сверху код не хочет отслеживать выбирание элементов select.
    Это вы не хотите читать доки, а код вообще ничего не хочет, он делает что ему говорят.
    <select name="select"> <!-- name -->
              <option value="one">One</option> <!-- value!!! -->
              <option value="two">Two</option>
            </select>

    if(isset($_POST['select'])){ // имя селекта, а не опции, опция имеет только значение
      if($_POST['select']=='one'){?>
         <div><?=$one?></div>
    <?php
      }
       else {?>
         <div><?=$one?></div>
    <?php
      }
    }
    Ответ написан
  • Почему не выводится текст echo?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    у вас там много конечно что не по уму, я так перечислю, а вы уже смотрите что делать (в идеале все исправить, конечно же).
    1) mysql_query: Данный модуль устарел, начиная с версии PHP 5.5.0, и удалён в PHP 7.0.0. Используйте нормальный PDO или mysqli драйвер бд.

    2) Используйте подготовленные выражения в запросах, а не дырявое решето вместо них...

    3) Используйте нормальный стиль форматирования и именования переменных, читайте PSR для ознакомления с принятым форматированием кода. Все эти $XP, $exp_in, $Lvls... Кровь из глаз...

    4) Сначала получайте все данные, затем выводите разметку, вставляя заранее вычисленные значения. Не делайте кашу из вычислений, запросов и вывода разметки.

    5) echo не требует скобок, хотя они и не влияют на его работу.

    6) Если что-то работает не так, как вы ожидаете - 99% где то в переменных не то, что вы думаете. По этому var_dump() ваш лучший друг на ближайшие 2-3 года.

    var_dump([$exp_in, $XP]);
    if($exp_in <= $XP){ 
    var_dump(1);
    ...
    var_dump(2);
    ...

    Тем более работа с БД выполняется успешно
    Как вы это проверяете?
    Ответ написан
    5 комментариев