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

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Если объекты уже созданы - будет лишним движение по созданию еще раз объектов из бд.
    Ответ написан
    4 комментария
  • Как сделать добавление подпункта меню с уникальным url?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Код в стиле лохматых 90х ))
    title_url генерируй транслтерацией с тире вместо всего неальфанумерик. Будет релевантный урл по гуглу. Функцию можно и в интернете найти, и самому написать. Если уж все так функционально запрограммированно.
    Ответ написан
    Комментировать
  • Почему не выполняется условие php?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    $query_views =mysql_fetch_array($query_views); //будет работать, но это кривое решение


    Внимательней читайте код, внимательно читайте доки, ОЧЕНЬ внимательно читайте советы опытных людей. Вам написали - функция mysql_fetch_array депрекатед, это раз, и второе - вы ее неверно используете.
    Используйте функции вывода переменных (хотя бы) для отлова багов var_dump, print_r;
    Ответ написан
  • Почему ошибка не могу понять?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Патамушта.

    Что за каша вообще?
    1) начнем с date('D' ... - получаем стоку, имя дня недели.
    2) В итоге $full_count у вас хз что за значение, а не массив, ну да ладно, может вы там массив храните
    3) форичем мы получаем непонятно что, т.к. проверили на true $full_count, который вообще неизвестного типа, если массив, то логичнее проверять на is_array(), а если еще и пустой - и на !empty.
    4) Раз ругается на несовместимость типов значит там явно не числовой массив
    И что должны получить?
    Ответ написан
    Комментировать
  • Какая служба отвечает за сессии авторизованных пользователей?

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

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

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Если хостер позволяет крон - парсите страничку, дергаете ссылки на картинки, пишете отдельно(файл/база, не принципиально). Через заданный промежуток выполняете скрипт загрузки 1-2 изображений, ставите статус скачано в сохраненном файлике / базе.
    Если крона нет - прийдется открыть скрипт в браузере, добавив рефреш яваскриптом через н секунд/минут.
    Ответ написан
    Комментировать
  • Как принять данные методом POST на php?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Так как у вас проверять неправильно.
    <?php
    if($_SERVER["REQUEST_METHOD"]=="POST"]){
            print_r($_POST);
            if (!empty($_POST["name"]) && !empty($_POST["email"])){
                 doSomeMagic($_POST);
            }    
            else {
                 echo "Поля name или email не заполнены!";
            }
    }
    else {
         echo "Метод передачи данных не является POST-запросом!";
    }
    ?>

    Если у вас проходит до проверки и выдает пустой массив - то где то явно не хватает нехилого куска кода. Иначе до принт_р не дошло бы и выдавало бы "Поля name или email не заполнены!".
    Ответ написан
    4 комментария
  • Как решить данную задачу?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Вариантов много, 2 очевидных -
    1)
    пользователь может создать заказ, использовать промо-код, но оплату не произвести. При этом использование (счетчик -1) засчитывается.
    . Пользователь сам себе злой буратина, предупреждать о "зависших" транзакциях с промо тикетами, смотрите в гугле тему "конверсия брошенных корзин".
    2) Не снимать промо до оплаты, но тут возникает другая проблема - если человек проводит одновременно несколько оплат - промо на счету остаются, и можно начать процедуру оплаты по промо неограниченного количества товаров, решается только дополнительным полем, в которое пишется количество открытых транзакций на промо покупку. Если лимит транзакций достигнут, а счетчик промокодов еще не 0, выдавать предупреждение типа "Возможно у вас исчерпан лимит на промо, проверьте все ли товары купленные по промо оплачены и подтверждены." При отмене покупки - возвращать +1 к промо.
    Ответ написан
  • (php+mysql) Как сделать масовые update данных в таблице?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Транзакции, пачками по 300-500-1000, надо подбирать лучшее значение перебором, другого вроде ничего не придумали пока. И что за апдейты которые на 200к занимают час? Нормальный запрос выполняется 0,001 сек, на 1000 уйдет секунда, значит на 60к нужно минуту времени. 150к максимум 3 минуты. Возможно что с базой что-то не так, проверьте скорость работы update, сделайте explain, посмотрите какие индексы нужно добавить.
    Ответ написан
    1 комментарий
  • Как обезопасить данные класса?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Обычно есть отдельные классы проверки типов переменных, их либо выносят в хелперы, либо суют в логику модели(что имхо весьма коряво). По экранированию - если у вас строка предполагает наличие спецсимволов, что в принципе нормально, использование препаред статмент спасает ситуацию полюбому.
    Ответ написан
  • Почему не срабатывает условие проверки результирующего массива на NULL?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    А чего вы ожидаете? False будет в случае неудачного запроса, у вас же запрос прошел нормально, вернуло 0 строк. Учитесь читать расшифровки, думайте головой.
    Ответ написан
    Комментировать
  • Вопрос про статические функции в php, как избавиться от Strict Standards: Non-static method?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Каша. В основном в голове. Не понимаете как работает наследование, не понимаете как работают классы. Ошибку вам четко указали, просто вы не знаете основ.
    Я знаю, как расшифровывается Non-static method и понимаю, что функция идёт не статичной, как её хочет видеть сам php.
    . PHP не хочет ее видеть статичной, просто указывает что вы ее статичной не сделали, а обращаетесь как к статик.
    хочу вызвать класс oldClass, которая наследуется от controllerClass и функцию view, дабы уже вызвать $this->_message (как пример), уже из обновлённого controllerClass

    1) Классы не вызываются, вызываются методы класса.
    2) То что он наследуется от какого-то класса не делает его автоматически видимым внутри родительского класса, это ВООБЩЕ ДРУГОЙ КЛАСС теперь, никак не связанный с родителем, просто имеющий некоторые одинаковые методы и свойства. Чтобы вызвать его метод, сначала нужно создать объект - экземпляр нужного класса.
    Ответ написан
    Комментировать
  • Как удобно работать с языковыми файлами?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Зачем хранить в файлах? Вам отключили бд на хостинге? Пишите в таблицу со структурой
    id | langid | alias | text |, при загрузке выбирайте только тот язык который нужен, и логика нормальная и выборки разные интересные можно делать, и админку прикрутить легко, чтобы рулить налету новыми фразами.
    Ответ написан
  • Почему возникает ошибка Call to undefined function при наследовании классов?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Если somefunction1() у вас относится к НАСЛЕДНИКУ то неплохо бы создать экземпляр класса В, а затем уже обращаться к его методам, т.к. А не в курсе что вы там нафигачили в В. Если это метод из А, и(не вижу в этом куске) находится внутри какого-то метода(что логично, где ему еще быть) ), то обращение к нему будет через $this->somefunction1(), если метод не статический.
    Ответ написан
    Комментировать
  • Как правильно написать Controller для блога на MVC PHP?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Если для обучения...
    1) Автолоад в контроллере? За что? Хочешь пользоваться автолоадом - выведи в какой-то базовый бутстрап что-ли. Вообще сегодня уже неймспейсы можно юзать, говорят удобно и модно )
    2) Акшн и контроллер нужно бы проверить на наличие левых символов. Например регулярными выражениями.
    3) В идеале все возможные/допустимые роуты должны быть описаны, обычно в отдельном объекте route. Там же и прописываются правила для расшифровки, что(например алиас статьи в $routs[2]) и какое (например альфанумерик) значение лежит в путях. Он и передается в конструктор роутера. По этому он обычно не статик. Хотя тут у кого как реализовано.
    4) Есть ненулевая вероятность существования переменных в урл ДО контроллера, например языковой префикс: www.mysite.com/ru/someaction/somecontroller
    Ответ написан
    Комментировать
  • Как отловить неопределенную переменную?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Много понаписали кроме этого )
    $vars = get_defined_vars();
    if (array_key_exists('bar', $vars)) {};
    Ответ написан
  • Передача данных в уже созданый объект?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Если возникает вопрос какой объект породил текущий объект - значит у вас явно что-то не то со структурой приложения. Такое поведение противоречит основным требованиям ООП.
    Если ОЧЕНЬ надо, - поставьте галочку:
    "я осознаю что делаю каку, но мне очень-очень нужно!" [ ]
    и пройдите по секретной кривой дорожке ссылке, и почитайте тут тоже.
    Ответ написан
    3 комментария
  • Как передать значение в корзину?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    location.href=this.value;
    WTF?
    Что нужно то???
    Какой обработчик?
    Что должно происходить?
    Ответ написан