Спасибо за рекомендацию с кроном.
Вот код взятый с ГитХаба опенкарта, но сама база все равно не очищается, подскажите что не так? Может еще где какие-то настройки должны быть?
<?php
/*
CREATE TABLE IF NOT EXISTS `session` (
`session_id` varchar(32) NOT NULL,
`data` text NOT NULL,
`expire` datetime NOT NULL,
PRIMARY KEY (`session_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
*/
namespace Session;
final class DB {
public $expire = 3600;
public function __construct($registry) {
$this->db = $registry->get('db');
$this->expire = ini_get('session.gc_maxlifetime');
}
public function read($session_id) {
$query = $this->db->query("SELECT `data` FROM `" . DB_PREFIX . "session` WHERE session_id = '" . $this->db->escape($session_id) . "' AND expire > '" . $this->db->escape(date('Y-m-d H:i:s')) . "'");
if ($query->num_rows) {
return json_decode($query->row['data'], true);
} else {
return false;
}
}
public function write($session_id, $data) {
if ($session_id) {
$this->db->query("REPLACE INTO `" . DB_PREFIX . "session` SET session_id = '" . $this->db->escape($session_id) . "', `data` = '" . $this->db->escape($data ? json_encode($data) : '') . "', expire = '" . $this->db->escape(date('Y-m-d H:i:s', time() + $this->expire)) . "'");
}
return true;
}
public function destroy($session_id) {
$this->db->query("DELETE FROM `" . DB_PREFIX . "session` WHERE session_id = '" . $this->db->escape($session_id) . "'");
return true;
}
public function gc($expire) {
if (ini_get('session.gc_divisor')) {
$gc_divisor = ini_get('session.gc_divisor');
} else {
$gc_divisor = 1;
}
if (ini_get('session.gc_probability')) {
$gc_probability = ini_get('session.gc_probability');
} else {
$gc_probability = 1;
}
if ((rand() % $gc_divisor) < $gc_probability) {
$this->db->query("DELETE FROM `" . DB_PREFIX . "session` WHERE expire < '" . $this->db->escape(date('Y-m-d H:i:s', time())) . "'");
}
return true;
}
}
Александр, не работает так, как нужно - скачивается файл report.pdf который даже не открывается (ну это и понятно)
Надо не скачать файл, которого нет, а передать данные в report.php - которые будут обработаны и подставлены в нужные места (как переменные) - и по итогу по сути надо перейти на страницу report.php на которой и будет php представлен в виде pdf (но в итоге он должен просто скачаться - вместо $pdf->Output( "report.pdf", "I" ); пропишется $pdf->Output( "report.pdf", "D" );
А как переписать его так, чтобы он в кеш отправлял файл оригинального объема, но размер делал его при этом квадратный исходя из максимальной высоты или ширины? При этом не создавал миниатурю?
Спасибо оргомное!
Сработало!
Но вот только при отправке отзыва ошибка, что оценка так и не выбрана.
Хотя на другом сайте даже с моим кодом все срабатывало и отправлялось..
web-mehanik, посмотрели логи - самый долгий как и ожидалось по атрибутам - 1 0x1FEE9AB6025C7FCB 24.4336 36.3% 19 1.2860 0.19 SELECT oc_product_attribute oc_attribute oc_attribute_description
SELECT pa.product_id, MAX(a.attribute_id) as attribute_id, MAX(ad.name) as attribute_name, MAX(pa.text) text, COUNT(*) total FROM `oc_product_attribute` pa LEFT JOIN `oc_attribute` a ON a.attribute_id = pa.attribute_id LEFT JOIN `oc_attribute_description` ad ON ad.attribute_id = a.attribute_id WHERE pa.product_id IN (4728,4729,2280,2289,2290,2297,2298,2299,2300,4730,2317,2318,2319,2320,2321,2322,2323,2324,2325,2326/*... omitted 4043 items ...*/) AND pa.language_id = '1' AND ad.language_id = '1' GROUP BY lower(pa.text), a.attribute_id HAVING COUNT(*) > 0\G
Вот код взятый с ГитХаба опенкарта, но сама база все равно не очищается, подскажите что не так? Может еще где какие-то настройки должны быть?