1. Приглашаем вступить в нашу группу ВКонтакте.
    Скрыть объявление
  2. Присоединяйтесь к нашему чату по ссылке: http://t.me/mediawiki_ru
    Скрыть объявление

Как на php записать новую статью в базу?

Тема в разделе "Расширения для Media Wiki", создана пользователем 50Hz, 2 мар 2018.

  1. 50Hz
    Оффлайн

    50Hz Только зашёл

    Регистрация:
    2 апр 2014
    Сообщения:
    23
    Симпатии:
    1
    Пол:
    Мужской
    Мне нужно с помощью php-скрипта записать новую статью в базу mrdiawiki. Нет у кого под рукой кодов - как это сделать?

    Смотрел Manual: Developing extensions, но там простого решения не нашел.

    Где-то в движке должна быть стандартная функция записи в базу.

    Расширение писать мне не нужно.
     
  2. UksusoFF
    Оффлайн

    UksusoFF Moderator Команда форума

    Регистрация:
    13 май 2013
    Сообщения:
    1.590
    Симпатии:
    194
    Пол:
    Мужской
    Адрес:
    Самара
    Пишите через API.
     
    50Hz нравится это.
  3. Юрий Бондаренко
    Оффлайн

    Юрий Бондаренко Прижился

    Регистрация:
    26 май 2015
    Сообщения:
    277
    Симпатии:
    71
    Пол:
    Мужской
  4. 50Hz
    Оффлайн

    50Hz Только зашёл

    Регистрация:
    2 апр 2014
    Сообщения:
    23
    Симпатии:
    1
    Пол:
    Мужской
    понятно, будем разбираться.
     
  5. 50Hz
    Оффлайн

    50Hz Только зашёл

    Регистрация:
    2 апр 2014
    Сообщения:
    23
    Симпатии:
    1
    Пол:
    Мужской
    UksusoFF нравится это.
  6. 50Hz
    Оффлайн

    50Hz Только зашёл

    Регистрация:
    2 апр 2014
    Сообщения:
    23
    Симпатии:
    1
    Пол:
    Мужской
    Один раз получилось и все. :)

    При попытке записать новую статью в режиме edit, присылает ид и вопрос капчи, я отсылаю, он присылает новый ид капчи.

    И как первый раз прошло не помню. :(

    Залогиненый в браузере на сайте, открываю страницу php-скрипта, который пишет запись в базу, - не проходит.

    Посылаю запрос на получение токена чтобы залогиниться, получаю, пытаюсь залогиниться, он присылает новый токен.

    не запоминается, что скрипт уже обращался.

    ага, - кажется надо через curl делать и не закрывать соединение?
     
    Последнее редактирование: 9 мар 2018
  7. 50Hz
    Оффлайн

    50Hz Только зашёл

    Регистрация:
    2 апр 2014
    Сообщения:
    23
    Симпатии:
    1
    Пол:
    Мужской
    кажись получилось :)

    примерно так:

    PHP:
    $path_cookie 'connexion_temporaire.txt';
    if ( !
    file_exists($path_cookie) ) touch $path_cookie );
    $curl curl_init();

    $postfields = array(
            
    'action' => 'edit',
            
    'format'=> 'json',
            
    'token' => '+\\',
            
    'title' => '111',
            
    'text' => 'article',
            
    'basetimestamp' => time()
    );
    curl_setopt($curlCURLOPT_URL'http://wiki.info/api.php' );
    curl_setopt($curlCURLOPT_COOKIESESSIONtrue);
    curl_setopt($curlCURLOPT_RETURNTRANSFERtrue);
    curl_setopt($curlCURLOPT_POSTtrue);
    curl_setopt($curlCURLOPT_POSTFIELDS$postfields);
    curl_setopt($curlCURLOPT_COOKIEJAR$path_cookie); // you put your cookie in the file
    $connexion curl_exec $curl );
    $json_connexion json_decode $connexiontrue );

    preg_match '~\d{9}~is'$connexion$CaptchaId );

    // /!\ don't close the curl conection or initialize a new one or your session id will change !

    $postfields = array(
            
    'action' => 'edit',
            
    'format'=> 'json',
            
    'token' => '+\\',
            
    'title' => '111',
            
    'text' => 'article',
            
    'basetimestamp' => time(),
            
    'captchaword' => '31',
            
    'captchaid' => $CaptchaId[0]
    );
    curl_setopt($curlCURLOPT_URL'http://wiki.info/api.php' );
    curl_setopt($curlCURLOPT_COOKIESESSIONtrue);
    curl_setopt($curlCURLOPT_RETURNTRANSFERtrue);
    curl_setopt($curlCURLOPT_POSTtrue);
    curl_setopt($curlCURLOPT_POSTFIELDS$postfields);
    curl_setopt($curlCURLOPT_COOKIEFILE$path_cookie); //get the previous cookie
    $connexionToken=curl_exec($curl);
     
  8. Wikijournal
    Оффлайн

    Wikijournal Прижился

    Регистрация:
    24 сен 2013
    Сообщения:
    573
    Симпатии:
    34
    Пол:
    Мужской
    А можете простым языком объяснить - для чего это всё и с чем это едят?
     
  9. 50Hz
    Оффлайн

    50Hz Только зашёл

    Регистрация:
    2 апр 2014
    Сообщения:
    23
    Симпатии:
    1
    Пол:
    Мужской
    перепост статей из одного источника в другой.
     
  10. Wikijournal
    Оффлайн

    Wikijournal Прижился

    Регистрация:
    24 сен 2013
    Сообщения:
    573
    Симпатии:
    34
    Пол:
    Мужской
    В смысле автоматом? Чем экспорт - импорт не подходит?)
     
  11. 50Hz
    Оффлайн

    50Hz Только зашёл

    Регистрация:
    2 апр 2014
    Сообщения:
    23
    Симпатии:
    1
    Пол:
    Мужской
    экспорт из других сайтов
     

Поделиться этой страницей