Здравствуйте!
Пытаюсь создать скрипт, который будет создавать новость не из формы на сайте, а из файла отправляя post запрос в форму.
Вот мой код:
<?php
ini_set('display_errors', 'On');
include ('engine/api/api.class.php');
//Получаю hash
$row = $db->super_query( "SELECT hash FROM " . USERPREFIX . "_users WHERE name = 'Ivan'" );
$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://site.ru/index.php?do=addnews'; // url, на который отправляется запрос
$headers = ['Content-Type: application/x-www-form-urlencoded']; // заголовки нашего запроса
$post_data = [ // поля нашего запроса
'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;
dle_login_hash 100% является актуальным и схож с user_hash страницы addnews.html
duplicateprotection просто генерируется каждый раз - новый.
В результате запуска данного скрипта с адреса site.ru/script.php получаю сообщение:
К сожалению, у Вас нет прав для публикации статей на нашем сайте, при этом на странице видно, что не авторизован. Перейдя на страницу site.ru/addnews.html все еще авторизован.
Пожалуйста, подскажите, в чем проблема?
Как все таки добавить новость из скрипта post запросом, не добавляя ее с помощью sql?
Большое спасибо!