Ответы пользователя по тегу PHP
  • Как скачать файл с сервера?

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Как сделать так, чтобы пустые значения не записывались в бд?
    А какие должны записываться? Что-то же должно туда попасть?
    Ответ написан
    Комментировать
  • Почему не работает обновление ajax?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) Картинки вообще не нужны, зачем они здесь? Ничего относящегося к сути вопроса в них нет.
    2) "весь код" оберните в тег кода и уберите под спойлер, все равно там ничего полезного нет.
    3) Ваш "обработчик" ничего не возвращает, а должен вернуть блок который надо добавить в текущий хтмл.
    Ответ написан
    Комментировать
  • Как зная MIME types в php получить расширение файла?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Комментировать
  • Какую IDE для PHP выбрать (бесплатную)?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    PHPStorm имеет студенческую бесплатную лицензию. По сути это эклипс с жетбрэйнс хорошо настроенными плагинами, но лучше под пых пока ничего вроде не придумали.
    Ответ написан
  • Почему выходит ошибка Fatal error: Uncaught Error: Function name must be a string?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    $URL_ARR у вас может быть (судя по приведенному коду) либо нулл, либо аррэй, зачем вы его вызываете как функцию?

    PS: Научитесь пользоваться var_dump, жизнь сразу станет лучше.
    Ответ написан
    Комментировать
  • Как организовать поиск ключа массива по маске в php?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    нихрена не понятно. Напишите что вы хотите получить. Единственное что понятно - что вы что-то не так делаете.
    Ответ написан
  • Почему после отправки формы событие submit больше не срабатывает?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    $('body').click(function(e) {
                            e.preventDefault();
                            $('.success').css('display', 'none');
                        })

    по суксессу вы зачем то на body вешаете листенер который заставляет ВЕСЬ документ ложить болт на клики. Подумайте для чего это и что нужно вместо этого, а так же зачем вообще у вас этот код...
    Ответ написан
    1 комментарий
  • Почему не работает пример с cURL?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    $url = "info.php";
    почитайте во первых рфц про урл, во вторых ошибки смотрите, либо включите вывод ошибок и варнингов, либо смотрите логи.
    Ответ написан
    Комментировать
  • Как мне проверить, отправляет ли данные формы на сервер через curl в php?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    curl дает вполне четкие ответы на любой запрос, в том числе ответ удаленного сервера, ошибки подключения, статус и тело ответа. Смотрите что вернул сервер и стройте логику в зависимости от этого.
    Ответ написан
  • Как достать переменную из класса в var_dump (код внутри)?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Артур,
    Но вопрос в том, насколько это правильно, с точки зрения паттерна фабричного метода.
    Чет вы сильно путаете теплое с мягким... Внутренняя реализация классов созданных фабрикой НИКАК не влияет на "фабричность". Паттерн относится только к методу создания готовых объектов по определенным условиям. Какие это объекты вообще не суть важно. По сути они могут быть абсолютно разные, просто по логике чаще всего это однотипные объекты, отличающиеся в настройках или внутренней реализации (например все они реализуют один интерфейс, но внутри работают по разному).

    Что касается вашего кода - как я уже сказал, для вашего случая(проверки доступа для текущей роли) достаточно задать метод проверки доступа. Как то так:
    //$role = $_SESSION['role'];
    $role = 'moderator';
      class Role{
         public function checkPermission($action)
         {
             if(isset ($this->$action))
             {
               return $this->$action;
               }
              return false;
       }
    }
    
      class admin extends Role{
        protected $addItem = true;
        protected $editItem = true;
        protected $deleteItem = true;
      }
      class moderator  extends Role{
        protected $addItem = true;
        protected $editItem = true;
        protected $deleteItem = false;
      }
      class publicator  extends Role{
        protected $addItem = true;
        protected $editItem = false;
        protected $deleteItem = false;
      }
    
      class Factory{
        public static function createUsers($role) : Role{
          if(class_exists($role))
            return new $role;
          else
            echo ("Роль".$role."отсутствует");
        }
      }
    
      $login = Factory::createUsers($role);
      var_dump($login);
       
    // try to use in code:
      if ($login->checkPermission('editItem')){
         echo 'lets edit!';
      };
    Ответ написан
  • Uncaught SyntaxError: Unexpected end of JSON input?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    1) sendAjaxForm укажите сразу тип возвращаемого значения json, зачем эти танцы с хтмл который парсится в жсон...
    2) Загадка на сообразительность: Если логин есть и пользователя с таким логином нет - что вернет json_encode($errors);?
    Ответ написан
    1 комментарий
  • Почему Open Server пишет, что $_POST не существует?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Ну так чо, пробуйте по порядку же:
    1) Отключить сертификат
    2) Проверьте что метод запроса пост (в браузере смотрите нетворк, в коде делаете вар_дамп сервер реквест метод)
    3) есть подозрение что срабатывает переадресация (почему - другой вопрос), по этому внимательно смотрим п. 2
    далее по обстоятельствам.
    Ответ написан
  • Можно ли составить 2d куб из картинок php?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    почему вы квадрат так странно назвали? А 3д куб думаю можно через канвас, например вот с библиотекой Three.js.
    Ответ написан
    Комментировать
  • Прошу взглянуть на мой код и подсказать где я возможно не прав?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    <input type="file" name="avatar" accept="image/gif, image/jpeg">
    облегчает человеку выбор верного формата

    if(isset($file))не гарантирует что файл загрузился, по этому нужно проверять еще и еррор, перед тем как передавать несуществующие свойства в функцию

    $permitted_chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    ваще жесть, про хэш не слышали? Тем более еще и в разных регистрах называть файлы...

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Это называется slug, простейший метод - использовать класс Transliterator и preg_replace + strtolower для нелитералов.
    Ответ написан
    Комментировать
  • Долгий ответ сервера на Opencart в 5000 мс?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Без навыков и подтираться то не выйдет... Просто кнопки "сделать хорошо" там нету. Нужно проверить бд на наличие необходимых индексов, а по уму еще сначала тайминг кода с отсечками до/после запросов/циклов/критичных участков. Так что просто "стукнуть сервер посильнее" не прокатит.
    Ответ написан
    Комментировать
  • Почему из MySQL базы данных не выводится login?

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

    и в обратном порядке для чтения:
    а) Загрузить класс объекта который вы будете получать (иначе магии не получится)
    б) Десериализовать из сессии и добавить в объект все ссылки на нужные ресурсы, например ссылку на объект бд.
    Ответ написан
    Комментировать
  • Многомерный SimpleXMLElement object в массив php - как?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Классическое решение прям с мануала:
    $xml = simplexml_load_string($xmlstring);
    $json = json_encode($xml);
    $array = json_decode($json,TRUE);
    которое имеет однако несколько побочных эффектов, например не видит [CDATA[ ]] ноды или видит как пустые элементы...
    Ответ написан
  • Как проще написать удаление пробелов, тегов, и преобразование в нижний регистр?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    во первых - загадочная строка с $arr = str_replace('/\s/','',str_split($pin)); будет работать весьма неоднозначно, хотя бы по тому что str_split() не поддерживает работу с мультибайтовыми кодировками. Во вторых она там конечно же нафиг не нужна, так как str_replace() работает со строками в третьем аргументе, но зато не работает с регулярными выражениями в первом, по этому эта строка у вас вообще никак не работает. В остальном все вполне в лучших традициях бредогенераторов.

    Коротко: Если у вас есть поля определенных типов - проверяйте их отдельно на совпадение нужным типам, для этого есть фильтры и хелперы. Экономия на буквах была актуальна в 17 веке, когда бумага дорогая была.
    Ответ написан
    Комментировать