Почти дописал свой обработчик для репостов ВКонтакте и опять столкнулся с некой проблемой. По условию, нужно выполнить репост только тогда, когда разница между текущим и временем репоста больше 7 дней. Вот код:
// в условии сразу смотрим на дату последнего репоста
$query = "SELECT COUNT (*) FROM `reposts` WHERE `id` = :id IF DATEDIFF (CURDATE(), `date`) < 7";
$class->connectdb($db_name, $db_user, $db_pass);
$sth = $class->db->prepare($query);
$sth->execute(
array(
":id" => $postinfo[0]
)
);
$result = $sth->fetchAll();
//если записей нет - постим
if (!count($result)) {
$response = $class->post($url);
if ($response->success == 1) {
$link = "https://vk.com/wall-100562658_" . $response->post_id;
$class->addPost($postinfo, $url, $post);
$this->status = "ok";
$this->setResponse("redirect", ".");
$this->message = sprintf("Репост сделан! Проверить его наличие Вы можете по этой ссылке: %s", $link);
} else {
$this->setFieldError("err", "Ошибка! Сервер ВКонтакте вернул ответ с кодом ошибки: ". $response->error->error_code);
return;
}
} else {
$this->setFieldError("err", "Сожалеем, но мы уже делали с Вами репост на этой неделе.");
return;
}
Либо он не проверяет даты, либо с условиями что-то не так, ибо репосты выполняются даже если разница дат меньше 7 дней.