Задать вопрос
azidilofficial
@azidilofficial
Ученик

Как добавить новость с помощью curl php в dle?

я хочу добавить новость с помощью curl в dle ну итого получается ошибка (Внимание! Обнаружена ошибка
Ваша пользовательская сессия истекла, перезагрузите страницу в браузере и при необходимости войдите на сайт повторно)

мой curl код:
<?php
ini_set('display_errors', 'On');   

include('engine/api/api.class.php');

    //Получаю список валют
    $row = $db->super_query( "SELECT hash FROM " . USERPREFIX . "_users WHERE email='topbesh5@gmail.com'" );

    $member_id['hash'] = $row['hash'];
	$member_id['user_id'] = '1';
    $member_id['password'] = '$2y$10$LW3PRJTfN2LG7xwmtPVRN.IHXE/qdpUH.zoMnV9MeQ9HdzmIFFWai';


	$dle_login_hash = sha1( SECURE_AUTH_KEY . $member_id['user_id'] . sha1($member_id['password']) . $member_id['hash'] );
    $duplicateprotection = md5(SECURE_AUTH_KEY.time());

$url = 'https://muzclub.uz/addnews.html'; // url, на который отправляется запрос
$headers = ['Content-Type: application/x-www-form-urlencoded']; // заголовки нашего запроса

$post_data = [ // поля нашего запроса
    'login_name' => '********',
    'login_password' => '********',
    'login' => 'submit',
    'title' => 'Как твои дела, Друг?',
    'alt_name' => '1de11lad',
    'catlist' => '1',
    'vote_title' => '',
    'frage' => '',
    'vote_body' => '',
    'short_story' => 'iufgt oitoiutgoi goito 1',
    'full_story' => '',
    'tags' => 'val',
    'approve' => '1',
    'allow_comm' => '1',
    'allow_main' => '1',
    'allow_rating' => '1',
    'add' => '',
    'mod' => 'addnews',
    'user_hash' => '' . $dle_login_hash . '',
    'duplicateprotection' => '' . $duplicateprotection . ''
];

$headers = []; // заголовки запроса

$post_data = http_build_query($post_data);

$curl = curl_init();
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_VERBOSE, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, true); // true - означает, что отправляется POST запрос

$result = curl_exec($curl);

 
echo $result;

echo $dle_login_hash. '<br />';
echo $duplicateprotection;


в чем проблема?
  • Вопрос задан
  • 126 просмотров
Подписаться 1 Сложный Комментировать
Решения вопроса 1
@maksam07
<?php
// Настройка параметров
$siteUrl = 'https://example.com';
$login = 'your_username';
$password = 'your_password';
$cookieFile = 'dle_cookies.txt';

// Функция для работы с cURL
function curlRequest($url, $postData, $cookieFile) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_COOKIEJAR, $cookieFile);
    curl_setopt($ch, CURLOPT_COOKIEFILE, $cookieFile);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

    $response = curl_exec($ch);
    curl_close($ch);

    return $response;
}

// Функция для авторизации
function loginDLE($siteUrl, $login, $password, $cookieFile) {
    $url = $siteUrl . '/index.php?do=auth';
    $postData = 'login_name=' . urlencode($login) . '&login_password=' . urlencode($password) . '&login=submit';

    return curlRequest($url, $postData, $cookieFile);
}

// Функция для добавления новости
function addNewsDLE($siteUrl, $title, $short_story, $full_story, $category, $cookieFile) {
    $url = $siteUrl . '/admin.php?mod=addnews&action=addnews';
    $postData = 'title=' . urlencode($title) . '&short_story=' . urlencode($short_story) . '&full_story=' . urlencode($full_story) . '&catlist[]=' . urlencode($category) . '&allow_main=1&allow_rating=1&allow_comm=1&approve=1&mod=addnews&action=doaddnews&user_hash=';

    return curlRequest($url, $postData, $cookieFile);
}

// Выполнение авторизации
loginDLE($siteUrl, $login, $password, $cookieFile);

// Добавление новости
$title = 'Новость 1';
$short_story = 'Краткое описание новости...';
$full_story = 'Полный текст новости...';
$category = 1; // ID категории

addNewsDLE($siteUrl, $title, $short_story, $full_story, $category, $cookieFile);
?>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы