Профиль пользователя заблокирован сроком с 10 апреля 2022 г. и навсегда по причине: систематические нарушения правил сервиса
  • Как обойти 403, чтобы скачать фотографии?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Не надо ничего обходить.
    403 - это значит брать не разрешено.

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Исходя из чистой логики, вряд ли у кого-то еще возникала такая идиотская задача, когда exec выполнить нельзя, а подключить свое расширение можно.
    Ответ написан
    2 комментария
  • Как сразу обновить данные на странице после их изменений?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Вообще, надо после обработки формы делать редирект,
    Как очистить $_POST после загрузки страницы?

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Тратится ли траффик сервера

    Ну а сам-то как думаешь?
    Что делает функция readfile()?

    есть ли возможность обойти расход траффика?

    header('Location: http://cs4-3v4.vk-cdn.net/p15/39f2eed6db5deb.mp3extra=6V3Fo3zbMp_tzajH36fGs7JzHqgrjUHgjlIoRSxJLhvD5ZkT8BKcC7IsFrNLMpHt5b0HVOgMrsbfSUAPAcqUJA23kF71');
    die();
    Ответ написан
    2 комментария
  • Mysqli или pdo?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Если писать свою обертку для работы с mysql, то mysqli.
    Во всех остальных случаях - PDO.

    Для ответа на вопрос надо понимать только одну вещь: функции mysqli API - низкоуровневые, и не предназначены для использования их напрямую. Обеспечивая большую гибкость, они в то же время требуют очень многословного кода, что неприемлемо в коде приложения.
    PDO же, в свою очередь, это такая недообертка, которая позволяет сократить количество кода до приемлемого уровня.

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

    В простых случаях разница не столь заметна, 5 строк против трех:
    $stmt = $mysqli->prepare("SELECT * FROM articles WHERE date=?");
    $stmt->bind_param("s", $date);
    $stmt->execute();
    $res = $stmt->get_result();
    $news = $stmt->fetch_all();
    /*  vs.  */
    $stmt = $pdo->prepare("SELECT * FROM articles WHERE date=?");
    $stmt->execute([$date]);
    $news = $stmt->fetchAll();


    Но в более сложных код mysqli растет как на дрожжах, в то время как у PDO... остается столько же!
    $stmt = $mysqli->prepare("SELECT id, name FROM categories WHERE section=?");
    $stmt->bind_param("s", $sec);
    $stmt->execute();
    $res = $stmt->get_result();
    $cats = array();
    while($row = $res->fetch_assoc())
    {
        $cats[$row['id']] = $row['name'];
    }
    /* vs. */
    $stmt = $pdo->prepare("SELECT id, name FROM categories WHERE section=?");
    $stmt->execute([$sec]);
    $cats = $stmt->fetchAll(PDO::FETCH_PAIRS);


    Правда, всем им далеко до нормальных врапперов
    $cats = $db->getIndCol("id","SELECT id, name FROM categories WHERE section=?s", $sec);
    Ответ написан
    Комментировать
  • Как сравнить 2 массива?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    А как именно ты мучался?
    Ответ написан
  • Как построить график на web-сайте по данным из файла?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    проще всего с помощью технологии www.freelansim.ru

    но вообще это делается парой строчек на РНР + Google Charts
    Ответ написан
    Комментировать
  • Какую книгу выбрать для изучения PHP5?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Закончи курсы по гуглению.
    Полезнее будет в 100500 раз чем 100 книжек.

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    А может вообще не грабить ничего? Не заниматься жульничеством и не пытаться стащить, что тебе не хотят отдавать?
    Может, лучше заниматься честным трудом?
    Ответ написан
    Комментировать
  • Альтернатива get_result() в mysqli?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    1. Самая удобная альтернатива - safemysql, код сократится в два раза
    $sql = "SELECT * FROM photos WHERE id = ?s AND authkey = ?s";
    $row = $db->getRow($sql, $_COOKIE['photoid'], $_COOKIE['authkey']);
    if ($row)
    {
            $this->userLogged = true;
            $this->userData = $row;
            return TRUE;
    }

    Но использование этой библиотеки требует некоторого опыта разработки и по этой причине она подходит не всем.

    2. Менее удобная альтернатива - PDO. аргумент про "нет времени переписывать" - смехотворный.
    Во-первых, надо было думать раньше, и не говнокодить функциями mysqli в коде приложения, вместо того чтобы обернуть их в класс-хелпер.
    Во-вторых, не надо думать, что работа над сайтом закончена. Она только начинается. Учитывая, что в PDO одной строчкой делается то, на что в mysqli надо 10, то наоборот, при переходе выйдет огромная экономия.

    3. Самый простой вариант решения проблемы - сменить хостера. Но в этом случае весь адов говнокод останется на месте.

    4. Ну и самый кривой вариант - добавить больше ада и говнокода с bind_result()
    Ответ написан
    6 комментариев
  • Undefined property из-за чего?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Класс просто ужасный.
    Бессмысленный и беспощадный.
    Фактически, голый mysqli будет работать даже лучше, чем эта поделка.

    Настоятельно рекомендую вместо написания этого велосипеда начать с использования PDO, пере давая данные в запрос не напрямую, а только через плейсхолдеры.
    И только немного освоившись с тем, как работают подобные классы и с подготовленными выражениями, начинать пилить что-то своё.

    На будущее. Вместо вот этого ужаса
    $this->link->query("SET NAMES 'utf8'");
        $this->link->query("SET CHARACTER SET utf8");
        $this->link->query("SET CHARACTER_SET_CONNECTION=utf8");
        $this->link->query("SET SQL_MODE = ''");

    писать
    $this->link->set_charset('utf8');
    Ответ написан
    Комментировать
  • Кракозябры в mysql базе данных?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Это НЕ похоже на баг кодировки.
    Такое ощущение, что в бд записались случайные бинарные данные
    Ответ написан
  • Как преобразовать строку в число?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Твою - так:
    $price = intval(str_replace(' ', '', $price));
    Ответ написан
    3 комментария
  • Как на PHP разобрать массив?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    это не массив
    Ответ написан
    Комментировать
  • Почему при подключении файла текст съезжает вниз?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Инклюд ничего не добавляет от себя.
    Разбирайся с тем, что подключаешь.

    ЗЫ. Поключать надо так:
    require_once(getenv('DOCUMENT_ROOT').'/include/block.php');
    Ответ написан
  • Какую систему управления версиями посоветуете для веб-разработки (PHP, js, html/css)?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    если хотите централизованную, то mercurial

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

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    задать гуглю вопрос пхп проверить папка существование?
    Ответ написан
    Комментировать
  • Как сделать проверку на наличие текста в строке?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Надо читать документацию на используемую тобой функцию.
    Надо читать документацию на используемую тобой функцию.
    Надо читать документацию на используемую тобой функцию.
    Надо читать документацию на используемую тобой функцию.
    Надо читать документацию на используемую тобой функцию.
    Надо читать документацию на используемую тобой функцию.

    И плюс к тому надо внимательнее писать код, без опечаток.
    Ответ написан
    Комментировать
  • Как вы относитесь к возможности сортировки вопросов Тостера по степени их сложности?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    А меня вот куда больше напрягают тупые ответы.

    Но надо понимать, что Тостер - это контент-проект. И если выкинуть отсюда в дополнение к дебилам-отвечателям еще и дебилов-вопрошателей, то поведенческий фактор и глубина просмотров резко упадут. Поэтому курицу, несущую золотой трафик, никто резать не будет.

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

    "И вот так у них все".
    Ответ написан
    2 комментария
  • Как лучше сравнить базу данных и текстовый файл (артикул-цена, больше 2000 строк)?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Несколько вещей чисто для информации, чтобы ты немного начал ориентироваться в окружающем пространстве. Потому что, как все новички, ты думаешь совершенно не о том.
    1. 2000 строк - это не база, а песочница с куличиками. И 10 - тоже. О нагрузках можно начинать думать начиная с сотен тысяч.
    2. САМЫЙ ад в твоих рассуждениях - это LIKE, который ты считаешь штатным средством поиска по артикулу. Вот с такими идеями даже и меленькую базу можно поставить колом.
    3. Стандартный вариант работы в таких случаях - читаешь файл в массив, чтобы артикулы были ключами. Дальше запрашиваешь все строки из БД, и читая по одной, ищешь артикул в массиве.
    4. Непонятно, зачем в текущей формулировке вообще доставать и сравнивать. Почему нельзя просто в цикле проапдейтить 2000 строк, указывая условия в запросе?
    5. Почему у тебя в вопросе ничего нет про удаленные/добавленные строки? Если за этим следить не надо, то задача и вовсе выеденного яйца не стоит. Или ты об том пока не думал?
    Ответ написан
    5 комментариев