Задать вопрос
Профиль пользователя заблокирован сроком с 10 апреля 2022 г. и навсегда по причине: систематические нарушения правил сервиса
  • Как использовать PDO fetch result?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    PDO - это точно такая же работа "напрямую с базой".
    А вот от чего действительно надо отучаться - это от привычки писать на каждый чих горы бессмысленного, ненужного и вредного кода.
    $sql = "SELECT email, password FROM users WHERE email=? and pssword=?";
    $stmt = getConnection()->prepare($sql);
    $stmt->execute(array($_POST['email'],$_POST['password']));
    $email = $stmt->fetchColumn();

    Это весь код, который нужен. Все остальное лишнее.
    Ответ написан
    Комментировать
  • Как парсить курс валют и записывать в БД?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    если не трудно, приведите свой пример.

    include 'safemysql.class.php';
    $db = new safeMysql();
    $sql = "INSERT INTO btc_charts_live SET mark = 'btce', date=NOW(), ?u";
    $db->query("INSERT INTO btc_charts_live SET ?u", $btc);

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Что характерно, вся эта истерия с заменой mysql ext на mysqli никак не мешает говнокодить по-старинке, со всеми вытекающими инъекциями.

    И ведь подавляющее большинство пользователей пехапешечки искренне верит, что добавление буковки i к их творениям сразу делает их безопасными
    Ответ написан
  • Как реализовать иерархию директорий на php

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Если надо получить именно бесконечное - т.е. целиком - то запрос как раз и будет один.
    А потом в скрипте сортировать.

    А если только ветку - то никак. Список смежности для этого не подходит, надо хранить по-другому. Гуглить Nested Sets и Materialized path
    Ответ написан
    Комментировать
  • Как реализовать авторизацию посредством AJAX и PHP?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Всё-таки, совершенно необъяснима тяга пхп юзеров к написанию километров кода для каждой мизерной операции :)
    Ну ладно, по экрану кода на запрос, потому что так в документации написано. Но аж два запроса к базе-то зачем?
    Я конечно понимаю, что в новой для себя области всё непонятно. Но хоть немного задуматься над своими действиями можно? Есть хоть малейший смысл в выполнении первого запроса?

    Всё что нам нужно - это получить пароль из базы и сравнить его с введенным.
    <?php
    	
    // файл с константами для подключения к бд
    require_once('conn_db.php'); 
    $db = new safemysql($db_config);
        
    if(isset($_POST['login']) && isset($_POST['password']))
    {
        // запрос на получение хэша пароля из таблицы
        $sql = "SELECT pass FROM test_table WHERE login=?s";
        $pass = $db->getOne($sql, $_POST['login']);
    
        // сравнение с введенным юзером паролем
        if ($pass === crypt($_POST['password'], $pass))
        {
            exit('yes');
        }
    }	
    echo 'no';
    Ответ написан
    1 комментарий
  • Почему поле БД увеличивает только 1 раз?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Это типичная ошибка похапе программистов, которые пишут код методом копирования, не подключая голову.
    values(field) для них - не команда, выполняющая строго определённую функцию, а священный текст, завещанный предками, кототорый надо употреблять только так и никак иначе, потому что он составляет часть Великой Мантры Он Дупликейт.

    А если дать себе труд подумать, что делает эта функция, то нужное решение тут же придёт в голову, поскольку является частью Мантры Инкремента Значения Поля.
    Ответ написан
    Комментировать
  • Как реализовать отслеживание источника перехода, коим является редирект?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Регистратор имен не занимается редиректами. Регистратор может прописать алиасы в ДНС, чтобы все субдомены указывали на какой-то один IP адрес.

    Если делается редирект, то его делает какой-то веб-сервер. Вот его и надо настраивать, чтобы он добавлял параметр к адресной строке.
    Ответ написан
    2 комментария
  • Каталог с сортировкой: как решить проблему при выводе с сортировкой?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    если данные атрибутов находятся сериализованные в базе в таблице option,

    Взять рельсу, и долго с наслаждением бить по голове того, кто стал хранить данные атрибутов сериализованные в базе в таблице option. Потом добавить по почкам.

    Потом перепроектировать базу.
    Сделать категории в нормальной таблице, приджойнить к запросу и сортировать по ним.
    Ответ написан
    1 комментарий
  • В каких случаях стоит переписывать сайт с нуля?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Критерий прост. Если команда в состоянии написать лучше, чем на WP - переписывать. Если нет - оставить, как есть.
    Что-то мне подсказывает, что в данном случае лучше не надо.
    Ответ написан
    Комментировать
  • Странный require_once: не работает с подключением файлов директорией выше?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    А ОШИБКИ, ОШИБКИ-то где? Здесь сайт для программистов, а не лавочка у подъезда. А посетители (как предполагается) - программисты, а не бабки-гадалки (впрочем, судя по предыдущим ответам, с программистами, всё-таки, напряг). Специально для бабок - краткое введение в программирование: phpfaq.ru/debug#intro

    Если что-то не работает, то выдается ошибка. Ошибку надо прочесть и исправить.
    Любые директивы апача начинаем искать только ПОСЛЕ того, как выяснили причину. Не до, не вместо, а ПОСЛЕ. Это очень простой принцип, его совсем нетрудно выучить
    Ответ написан
  • Где кэшировать данные: в модели или в контроллере?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    В общем случае, если говорить о данных, то модель, по-хорошему, должна уметь это делать прозрачно. У неё запросили данные - а откуда она их взяла - не нашего ума дело.
    Ответ написан
    Комментировать
  • Как на PHP составить MySQL SELECT из двух таблиц одновременно с 2-мя массивами в запросе и условием?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    сами таблицы очень похожи, разница только в названии одного из полей

    <font size=+100500>ТАБЛИЦА ДОЛЖНА БЫТЬ ОДНА</font>
    Ответ написан
    Комментировать
  • Выбор метода обучения программированию: колледж или самообразование?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Пока программирование сводится к складыванию одной строчечки к другой, как в конструкторе Лего, оно и будет вызывать только энтузиазм и положительные эмоции. Таких энтузиастов похапе наплодил 100500 человек - очень уж просто складывать.
    Со временем же отсутствие математического аппарата начнет ощущаться, как груз, привязанный к ногам, не позволяя расти выше.

    Хотя, конечно, на похапе можно всю жизнь просидеть, клепая сайты на вордпрессе, безо всякой математики.
    А в вопросах криптографии ли, обработки изображений ли, топологии сети ли - бегать с вопросами на тостер и полагаться на мнение других людей. А в итоге перестать вообще понимать что делаешь - со всеми вытекающими последствиями.
    В общем, говнокодить на вордпрессе можно и без математики.
    Ответ написан
    5 комментариев
  • Имитация не существующего сайта - такое возможно?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Детский сад, штаны на лямках. "Давайте ещё под одеяло залезем, чтобы привидения нас не нашли".
    Вместно нормальной безопасности изобретаем "сикретики со стеклышком".

    Нет, нельзя.
    Ответ написан
    1 комментарий
  • Как исправить ошибку "mysql client library is not bundled anymore"?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    mysqli надо собирать так
    --with-mysqli=mysqlnd
    Ответ написан
    Комментировать
  • Почему скрипт не заменяет значение в шаблоне?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Это не шаблон, а детский лепет.
    Почему-то все дети поголовно думают, что задача шаблонизатора - это только заменять переменные. О том, что это никогда не будет работать в реальной жизни, ни один из них не задумывается.

    Чтобы оно заработало с минимальными изменениями, надо писать так
    <a href="" class="btn" href=""><?=$download_link?>Download</a>

    а регулярку выкинуть нафиг.

    Или действительно поставить твиг/смарти.
    Но дети, опять же, по какой-то причине боятся шаблонизаторов, как серого волка.
    Ответ написан
    1 комментарий
  • Почему не приходят данные методом POST от банка?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    В банке сидит идиот.
    error: java.lang.NullPointerException. - это только НАЧАЛО ошибки.
    Дальше должен идти её текст. В котором написано, какая конкретно проблема произошла при отправке. Это может быть ошибка ДНС, или коннект таймаут, или вообще ошибка, как выше пишут, в самом приложении.

    Я всегда думал, что только беспомощные похапе юзеры воспринимают программные ошибки как "тётя ругается", или "ой, что-то сломалось!" и не в состоянии постигать их смысл. Оказывается, в джаве такие же.
    Если банковский программист не в состоянии даже прочесть сообщение об ошибке, то надо бежать от такого банка как от чумы.
    Страшно подумать, как там остальное работает.
    Ответ написан
    Комментировать
  • Какие есть хорошие материалы для для изучения современного PHP на серьёзном уровне?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Для того, чтобы "играть в шахматы" конкретно на PHP, не нужно знать РНР. Всё, что делает РНР в последние годы - это изо всех сил пытается стать Ждавой. Поэтому если знание "серьёзных" языков столь могучее, то всё что надо делать - это применять имеющиеся знания. Впрочем, если w3fools считается авторитетным источником, то есть у меня сомнения.

    Чтобы узнать о последних версиях 5-й ветки, надо читать changelog.

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Вопрос "На каком языке говнокодить" не имеет ничего общего с прогнозированием. Профессионал и так в своей работе использует 2-3 языка, знает ещё больше, и при необходимости осваивает новый за неделю. А вот для васи-говнокодера, который два года бегал на тостер или стаковерфлой с каждой синтаксической ошибкой и в конце концов вызубрил самые часто встречающиеся пять штук - для него, конечно, смена языка это действительно катастрофа.
    Ответ написан
    Комментировать
  • Где найти грамотный код для хеширования/проверки на, скажем, PHP?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Грамотный код есть в мануале:
    $hash = password_hash("rasmuslerdorf", PASSWORD_DEFAULT);

    и сохраняем в базу. потом, при проверке
    if (password_verify ("rasmuslerdorf", $hash)) echo "OK";
    Если версия РНР на хосте пока не доросла до 5.5, то есть имплементация на пхп - тупо заинклюдить, и всё.
    Ответ написан
    Комментировать