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

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

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

  1. 50Hz
    Оффлайн

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Дата регистрации:
    2 апр 2014
    Сообщения:
    22
    Симпатии:
    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
    Сообщения:
    558
    Симпатии:
    34
    Пол:
    Мужской
    А можете простым языком объяснить - для чего это всё и с чем это едят?
  9. 50Hz
    Оффлайн

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

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

    Wikijournal Прижился

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

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

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