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

    Folour
    @Folour
    Имена у инпутов должны быть уникальными. Здесь два инпута с датой имеют одинаковое имя.
    Ответ написан
    Комментировать
  • Почему не проходит регистрация пользователей?

    Folour
    @Folour
    Может стоит посмотреть ошибки базы данных?
    Ответ написан
  • Необходимо переписать preg_replace()?

    Folour
    @Folour
    Как-то так
    ...
        //Из модификаторов убрать e
        $modifiers = ($this->language_data['CASE_SENSITIVE'][$k]) ? '' : 'i';
    ...
        //Заменить это
        $stuff_to_parse = preg_replace(
            "/([^$disallowed_before])($keyword)(?=[^$disallowed_after])/$modifiers",
            "'\\1' . $func2('\\2', '$k', 'BEGIN') . '<|$styles>' . $func('\\2') . '|>' . $func2('\\2', '$k', 'END')",
            $stuff_to_parse
        );
    
        //На это
        $stuff_to_parse = preg_replace_callback(
            "/([^$disallowed_before])($keyword)(?=[^$disallowed_after])/$modifiers",
            function($matches) use($func, $func2, $styles, $k) {
            return $matches[1].
                       $func2($matches[2], $k, 'BEGIN').
                       '<|'.$styles.'>'.
                       $func($matches[2]).
                       '|>'.
                       $func2($matches[2], $k, 'END');
            },
            $stuff_to_parse
        );
    Ответ написан
    4 комментария
  • Почему PHP игнорирует условие?

    Folour
    @Folour
    Если я правильно понял задачу, то вот
    $posts = $db->query("
        SELECT id, title, category
        FROM _post
        ORDER BY id DESC
    ");
    $postsToUpdate = array();
    
    while($post = $db->get_row($posts)) { //как-то странно в дле получение записи реализовано
        if(substr_count($row['category'], ',') <=2) $postsToUpdate[] = $post['id'];
    }
    if(!empty($postsToUpdate)) $db->query("UPDATE _post SET cat = 40 WHERE id IN (".implode(',', $postsToUpdate).")");
    Ответ написан
    Комментировать
  • Как получить доступ к постингу на стене в ВК через blank.html?

    Folour
    @Folour
    через пхп - только если проходить авторизацию тем же пхп, затем отловить редирект на бланк и спарсить токен. Standalone не для PHP так-то.
    Ответ написан
  • Как использовать объект как поле класса в php?

    Folour
    @Folour
    -  $db = $data_base_object;
    +  $this->db = $data_base_object;


    Ошибка в конструкторе. Объект класса Базы Данных присваевается переменной $db вместо $this->db
    Ответ написан
    Комментировать
  • Авторизация на ВКонтакте php скриптом

    Folour
    @Folour
    $cookieFile = 'cookie.txt'; //файл для печенек
    $account = ['email' => 'номер_телефона', 'pass' => 'пароль', 'submit' => 'Войти'];
    $startUrl = 'https://m.vk.com';
    $ua = 'Opera/9.80 (Android; Opera Mini/7.5.33361/31.1350; U; en) Presto/2.8.119 Version/11.11';
    
    $curl = curl_init();
    curl_setopt_array($curl, [
        CURLOPT_COOKIEJAR => $cookieFile,
        CURLOPT_COOKIEFILE => $cookieFile,
        CURLOPT_SSL_VERIFYHOST => false,
        CURLOPT_SSL_VERIFYPEER => false,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_USERAGENT => $ua,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_URL => $startUrl
    ]);
    
    preg_match('~post" action="(.*?)"~s', curl_exec($curl), $urlStepTwo);
    curl_setopt_array($curl, [
        CURLOPT_POST => 1,
        CURLOPT_POSTFIELDS => $account,
        CURLOPT_URL => $urlStepTwo[1]
    ]); //Отправляем POST с данными аккаунта
    
    //Авторизовались, получаем главную страницу  для проверки
    curl_setopt_array($curl, [
        CURLOPT_URL => $startUrl
    ]); 
    echo curl_exec($curl); //Ваша страница ВК
    curl_close($curl);


    Без FOLLOWLOCATION = Bad Request, так и не нашел почему. С ним - все ок, сразу после POST - можно выполнять авторизированные запросы.
    Одно НО, с сервера Вы не авторизуетесь скорее всего, будет запрос на ввод номера.
    ---
    Летом писал автоматическое получение токена к апи, по логину и паролю. Так работала авторизация и без FOLLOWLOCATION, жаль кода того не осталось.
    Ответ написан
    Комментировать