• Перебрать правильно массив php?

    shaks
    @shaks
    спасибо это слишком щедро, бабки давай, будет в самый раз :)
  • Перебрать правильно массив php?

    shaks
    @shaks
    потому что artist у тебя не обернута в ковычки. Она трактуется как константа.
  • If все поля формы пусты?

    shaks
    @shaks
    В твоем слуочае логично было бы дать человеку выбрать, каким способом ему удобнее получить ответ. Номер телефона, скайп, мыло, джаббер, аська, телепатия. Но все поля надо заполнять верно. В конце концов, если имейла у него нет, он напишет umenya@maila.net грубо говоря.
  • If все поля формы пусты?

    shaks
    @shaks
    Most998: Конечно нужно ) Все данные, независимо от того что ты с ними собираешься делать - нужно проверять, как минимум для удобства пользователя (вдруг он неправильно форму заполнил) и для порядка тебе. Я не кулхацкер, но если переменные не содержат пути до файла который ты инклудишь (php инъекция так называемая https://forum.antichat.ru/thread23501.html), если ты их значение не выводишь нигде на сайте (XSS атаки), если ты не делаешь редиректы на значение переменных (могут использовать твой сайт как прокладку для трафика который шлют на связку эксплоитов или еще хрен знает зачем), если ты используешь защиту в формах от csrf атак. то всё ок вроде.. и тебе остается только беспокоится о вирусне, так называемых формграбберов, которая попадая на комп, передает все сохраненные пароли в твоих фтпменеджерах типа тоталкоманддера, файлзилы, винсцп и тд итп на сервер злоумышленника, который в свою очередь, имея доступ по фтп/сфтп спокойно заливает на твой сайт ифрейм на связку, или же добирается до твоей БД, или просто сносит все к чертям.
    Кароче все входящие данные проверяй, все входящие данные не показывай в шаблоне, только обработанные (правильно обработанные), защищайся от csrf, переходи на линукс или юзай фаервол с хорошей проактивной защитой в параноидальном режиме и всё пучком будет :)

    >>> ну, мало ли, вдруг у человека email-а нет - может указать Скайп где-нибудь.
    покажи мне человека у которого есть скайп и нет имейла. Даю наводку, чтоб регнуть скайп нужен имейл. )
  • If все поля формы пусты?

    shaks
    @shaks
    точнее не почему я не знал, а какого хрена он пропускает ноль? )
  • If все поля формы пусты?

    shaks
    @shaks
    > в реальности нет.
    ну в реальности переменные должны валидацию проходить по идее, это раз, а во вторых ванга я так себе, поэтому не буду утверждать)
    > а чем тебе false === поможет?
    Чертовы праздники, будь они неладны. Я завтыкал, и напутал.. почему-то подумал про ситуацию когда надо ноль отличить от булевой ЛЖИ. Каюсь.
    Но, страшно щас не это, а то что я не знал что empty пропускает ноль. Почему так?
  • If все поля формы пусты?

    shaks
    @shaks
    > if(!empty($var)) может не пропустить вполне законный ноль
    согласен ) щас подправлю в ответе у себя на false ===
    > неоткуда взяться переменным $name, $email
    нифига! )) я видел их у него в примере, правда некоторые без $, ну то пофиг) они есть! ))))
  • Как сделать правильную выборку с БД?

    shaks
    @shaks
    hardwellZero: Ну если речь уже зашла про аякс, то советую делать чтото в этом роде:
    ссылка выглядит примерно так
    < a href='/post/:id/comment/:comment_id/like' data-remote='true' data-method='post'> Like
    у неё есть хреф, который указывает на твой роут лайка, и есть атрибуты. атрибут data-remote=true говорить будет о том что клик по этой ссылке должен быть аяксом, а data-method - собственно метод этого клика (get|post|put|patch|delete)

    Вешаешь обработчик с помощью Jquery приерно такой:
    $("a[data-remote]").on('click', function(){
    тут делаем аякс, урл и метод которого берем уже из атрибутов тэга а.
    });
  • Как сделать правильную выборку с БД?

    shaks
    @shaks
    > Но беда в том, что с Ajax не знаком и написать передачу и прием переменной для меня сложно.
    за вас уже все давно придумали, даже вникать в XMLHttpRequest не надо. Jquery или prototypejs
    2 строчки кода, и все готово.
  • Как сделать правильную выборку с БД?

    shaks
    @shaks
    да. и еще. А зачем Вам делать выборку из бд, если нужно сделать апдейт? не понимаю. зачем делать сначала селект, потом делать апдейт?
    Я не знаком ни с синтаксисом питона, ни с ORM который вы используете, поэтому просто приведу чистый SQL запрос
    UPDATE `commentary--(ну и имя блять))--` SET `like`=`like`+1 WHERE `id` = %id

    Вы же пытаетесь сделать
    like = SELECT * FROM `комментари` WHERE `id` = %id
    like.like +=1
    UPDATE `commentary--(ну и имя блять))--` SET `like`=%like WHERE `id` = %id

    --------------
    Думай, делай, думай, делай, думай, делай, думай, делай, думай, делай.......
  • Как сделать правильную выборку с БД?

    shaks
    @shaks
    hardwellZero: покажите мне его, где он есть. Я вижу форму, форма пустая.
    зы. А зачем вобще нужна форма? ты с каждым лайком хочешь перезагружать страницу?
    зызы. Commentary - отличное имя для модели!. Мне тоже всегда глаза резало Comments (типа сарказм) )
    зызызы. Приучите себя пользоваться логами. Ведь не трудно включить логирование mysql запросов, и смотреть что происходит на самом деле, особенно когда юзаешь ORM.
  • Почему если задать created_at вручную, происходит сдвиг на 3 часа?

    shaks
    @shaks Автор вопроса
    # config/application.rb
    config.time_zone = 'Europe/Moscow'
    config.active_record.default_timezone = :local

    Часовой пояс одинаковый с локальным.
    Я щас апдейтну вопрос, увидишь.
  • Почему если задать created_at вручную, происходит сдвиг на 3 часа?

    shaks
    @shaks Автор вопроса
    неа. Сам в консоли поколдуй. Дата выставляется правильная, если не трогать created_at. Но как только вскармливаешь, строку, или объект Time, то всё.. сдвиг и пиздец.
  • Хранимый запрос и ODBC?

    shaks
    @shaks
    vista1x: Погуглил, да.. так и есть, я был не прав. И судя по всему приведенный вами код должен работать. Инфы про pdo и сохраненные запросы я толком не нашел, но наткнулся на похожий разбор полётов здесь stackoverflow.com/questions/12694829/cannot-query-...
    Я не вникал особо, ибо много букв, но обратил внимание, что имя сохраненного запроса он вставляет в квадратные скобки. Вобщем почитай там, может найдешь ответ. А я умываю руки, с таким я не работал никогда, больше путать тебя не буду :)
  • Хранимый запрос и ODBC?

    shaks
    @shaks
    Эм.. Если я правильно понимаю, то сохраненные запросы сохраняются исключительно в твоем СУБД Access. Т.е. внутри программы, а не в базе данных.
    Выполнив этот запрос $db->query("SELECT * FROM qr1 ")->fetchAll(PDO::FETCH_ASSOC); , будет искаться имя таблицы qr1 а не сохраненный гдето, у чёрта на куличках некий запрос.
  • Хранимый запрос и ODBC?

    shaks
    @shaks
    Если ты делал так как я указал в примере и у тебя выдало ошибку неверного кол-ва полей, - значит ты делал не так, и у тебя неверное кол-во полей для поиска. Т.е. в prepare одно кол-во полей, а в execute - другое.
  • Хранимый запрос и ODBC?

    shaks
    @shaks
    смотри. В чем логика. Если брать твой пример, который ты указал. То там в в sql запросе вобще не указал никаких параметров, а в execute передал 2 параметра. Оно тебе и выдало ошибку COUNT field incorrect:

    PDO работает именно так как я описал, и не важно какой драйвер, mysql это или odbc
    Если тебе не нужны никакие параметры а просто взять SELECT * FROM, то prepare делать не нужно, а достаточно
    $db->query("SELECT * FROM `qrl` ")->fetchAll(PDO::FETCH_ASSOC);
  • Как оформить уровни вложенности в условии?

    shaks
    @shaks
    Чет я заметил про твой lr1g (нах такие названия давать переменным?) уже после. Тебе нужно дополнительный массив с антиусловиями создать просто, и еще один in_array влепить. Думаю справишься. Если "антиусловий" не будет больше чем одно, то просто влепить один иф внутри foreach и всё.