Как зародилась демократия (без политики)




Принцип обмена данными из 1С с сайтом (на MySQL) и выдачи (публикации) этих данных по запросу.
PHP-Скрипт автоматической загрузки данных из файла данных в формате CSV в базу данных сайта работающего на WordPress.

В продолжение моей темы: 1С:Альфа-Авто Автосалон Автосервис: обмен с сайтом.
С помощью данного скрипта можно загружать в автоматическом режиме, по расписанию, данные сервисных книжек (ремонтов авто) из 1С:Альфа-Авто Автосалон Автосервис.
Также можно загружать данные в ручном режиме: для этого делается скрытая страница, где размещается специальная кнопка.
Комментарии размещенные внутри скрипта разъяснят логику и порядок действия.
Комментарии с "/////    echo" использовались для отладки.
Дополнительно создана таблица для журналирования результатов загрузки данных.
Скрипт включает в себя защиту от SQL инъекций (думаю безопасность соблюдена в полной мере).
В кратце:
1. Пишется скрипт, который запускает этот.
2. Создается регламентное задание в WordPress, по которому запускается скрипт из п.1. 
3. Этот скрипт осуществляет проверку на существование файла обмена в папке.
4. Если данные не новые, загрузка не производится.
5. Если данные новые, очищается таблица сервисных книжек.
6. Загружаются новые данные.

Собственно сам скрипт:

<?php // Полная загрузка сервисных книжек, создан 2024-01-05 12:44:55

global $wpdb2;
global $failure;
global $file_hist;

/////  echo '<H2><b>Старт загрузки</b></H2><br>';

$failure=FALSE;
//подключаемся к базе
$wpdb2 = include_once 'connection.php'; ; // подключаемся к MySQL
// если не удалось подключиться, и нужно оборвать PHP с сообщением об этой ошибке
if (!empty($wpdb2->error))
{
/////   echo '<H2><b>Ошибка подключения к БД, завершение.</b></H2><br>';
$failure=TRUE;
wp_die( $wpdb2->error );
}

$m_size_file=0;
$m_mtime_file=0;
$m_comment='';
/////проверка существования файлов выгрузки из 1С
////файл выгрузки сервисных книжек
$file_hist = ABSPATH.'/_1c_alfa_exchange/AA_hist.csv';
if (!file_exists($file_hist))
{
/////   echo '<H2><b>Файл обмена с сервисными книжками не существует.</b></H2><br>';
$m_comment='Файл обмена с сервисными книжками не существует';
$failure=TRUE;
}

/////инициируем таблицу лога
/////если не существует файла то возврат и ничего не делаем
if ($failure){
///включает защиту от SQL инъекций и данные можно передавать как есть, например: $_GET['foo']
/////   echo '<H2><b>Попытка вставить запись в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>$m_comment));
wp_die();
/////    echo '<H2><b>Возврат в начало.</b></H2><br>';
return $failure;
}
/////проверка лога загрузки, что бы не загружать тоже самое
$masiv_data_file=stat($file_hist);   ////передаем в массив свойство файла
$m_size_file=$masiv_data_file[7];    ////получаем размер файла
$m_mtime_file=$masiv_data_file[9];   ////получаем дату модификации файла
////создаем запрос на получение последней удачной загрузки
////выбираем по штампу времени создания (редактирования) файла загрузки AA_hist.csv, $m_mtime_file

/////   echo '<H2><b>Размер файла: '.$m_size_file.'</b></H2><br>';
/////   echo '<H2><b>Штамп времени файла: '.$m_mtime_file.'</b></H2><br>';
/////   echo '<H2><b>Формирование запроса на выборку из лога</b></H2><br>';
////препарируем запрос
$text_zaprosa=$wpdb2->prepare("SELECT * FROM `vin_logs` WHERE `last_mtime_upload` = %s", $m_mtime_file);
$results=$wpdb2->get_results($text_zaprosa);

if ($results)
{   foreach ( $results as $r)
{
////если штамп времени и размер файла совпадают, возврат
if (($r->last_mtime_upload==$m_mtime_file) && ($r->last_size_upload==$m_size_file))
{////echo '<H2><b>Возврат в начало, т.к. найдена запись в логе.</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>'Загрузка отменена, новых данных нет, т.к. найдена запись в логе.'));
wp_die();
return $failure;
}
}
}
////если данные новые, пишем в лог запись о начале загрузки
/////echo '<H2><b>Попытка вставить запись о начале загрузки в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>0, 'last_size_upload'=>$m_size_file, 'comment'=>'Начало загрузки'));

////очищаем таблицу
$clear_tbl_zap=$wpdb2->prepare("TRUNCATE TABLE %s", 'vin_history');
$clear_tbl_zap_repl=str_replace("'","`",$clear_tbl_zap);
$results=$wpdb2->query($clear_tbl_zap_repl);
/////   echo '<H2><b>Очистка таблицы сервисных книжек</b></H2><br>';
if (empty($results))
{
/////   echo '<H2><b>Ошибка очистки таблицы книжек, завершение.</b></H2><br>';
//// если очистка не удалась, возврат
$failure=TRUE;
wp_die();
return $failure;
}

////загружаем данные
$table='vin_history';         // Имя таблицы для импорта
//$file_hist Имя CSV файла, откуда берется информация     // (путь от корня web-сервера)
$delim=';';          // Разделитель полей в CSV файле
$enclosed='"';      // Кавычки для содержимого полей
$escaped='\

27 Comments

  1. su_mai

    Одного Кратий не предусмотрел! Что и без стен его слова могут услышать и видимо, его услышал Minotavrik. Это просто шутка.

    Reply
  2. AndrewEv

    Мы все рабы звонкого метала, не так ли?

    Весьма интересно, спасибо!!!

    Reply
  3. sh4d0w

    Ептыть! А ведь и я до сих пор таскаю камни!

    Reply
  4. andrew87

    отличный рассказ!!!!!

    Reply
  5. pip38

    неожиданно на этом сайте прочесть такое, но тем приятнее…

    МОЛОДЕЦ !!!

    Reply
  6. tango

    (2) «звонкого металла»- сколько золотых монет у вас в кармане?

    бумаги. чужих слов.

    Reply
  7. luns

    А кто автор?

    Reply
  8. ms33

    автор В.Мегре

    http://book.anastasia.ru/8.1/

    Reply
  9. KOVRUS

    Ничего нового, книга есть про то что 300 семей правят миром,но прочесть было интересно…

    Reply
  10. Minotavrik

    Ну дык выложи эту книгу KovRus, я бы почитал, тут и спец. блок есть «О жизни»!

    Reply
  11. ValentinV

    Белеберда, коих сейчас немеренно для страдальцев и умственных калег.

    Если выкинуть стилистику и красивые слова — ничего не останется.

    Без политики, без правды, без смысла.

    Подобное чтиво для мракобесов и неучей от таких же.

    Reply
  12. ValentinV

    Особенно понравилось — «без политики».

    Простым людям уже понятно, что демократии(буржуазной) с рыночной экономиой

    без кризисов и без войны не бывает.

    Еще впадать в прострацию не хватает, тем более поэтическую.

    В галюциннаторном мире пребывать, бегство от себя и от мира.

    Reply
  13. alf2005q

    А мне понравилось. Красиво. И даже умно.

    Reply
  14. Minotavrik

    Valentin57 наверное любит не обосновано подвергать критике что-либо и обзывать неучами таких людей как В.Мегре (автора)! Он то хоть что то пытается донести до людей! Пытается помочь увидеть ту реальность в которой мы сейчас живем, работая на кого-то, строя карьеру сидя на работе до поздна! А смысл в том, что мы слишком затопли в этом образе жизни, и забываем про родных, близких, детях. Ведь это и есть смысл (по моему мнению) жизни. А ты Valentin57, кто ты вообще, что ты сделал в этой жизни, чтобы не обоснованно называть людей, которые приносят добро и открывают глаза людям, маркабесами и неучами (я думаю умный человек не станет это выражать ведь у него хватает мозгов понять и оценить суть, даже если ему это и не нравиться, скорее он должен сам быть неучем если он не понимает примитивных вещей). А слова «без политики» обозначают только, то что это не есть скучный нудный рассказ из книжек по итории, про образование какого-либо склада государства.

    Reply
  15. Just

    > Если выкинуть стилистику и красивые слова — ничего не останется.

    Мне тоже кажется, что это Белеберда полная,

    как говорится, одна из немногих свобод человека — это право выбора, у рабов такого права нет,

    и пока ты можешь сам решать, чем заниматься, куда идти и что делать ты не раб,

    вот когда тебе постоянно приказывают что-то сделать, а ты не хочешь этого делать, но не можешь отказаться, тогда писец.

    Reply
  16. Minotavrik

    Just по поводу твоих слов! Самое главный смысл в этом рассказе ты и не понял! Смысл таков, заставить поверить человека, что он свободен, только в этом случае от человека будет полная отдача! Они так и сделали, заставили поверить людей, что они свободны и что изменилось? Человек трудиться в 2 раза больше, а имеет почти то же самое, но при этом фараоны стали жить лучше, ведь им теперь не нужно содержать столько охраны, не нужно контролировать рабов, это колосальная экономия. А теперь спроси у себя ты действительно можешь делать в жизни то, что захочешь? Элементарный пример: Никому не хочется идти на работу утром, сделай так как тебе хочется поспи, поиграй на компе, сходи к девушке и т.д. Ты это сможешь сделать только несколько дней и то под предлогом очень важных дел, если ты будешь делать то что хочешь, тебя просто вытурят с работы это в лучшем случае и в итоге ты все равно прогнешься или сломаешься! Так что от рабства ушли то не далеко! ПО

    Reply
  17. Minotavrik

    К стати есть еще концовка этого рассказа. Фараоны тоже стали рабами, рабами этой системы, это на столько затянуло, что они по сей день не могут выбраться!

    Reply
  18. PeRom

    Статейка не плохая, но можно было и покороче… ждём продолжений.

    Reply
  19. YVolohov

    Хороший рассказ. Но новая система охватила не только рабов но и фараонов и жрецов. Каким бы сыльным не был фараон (допустим глава корпорации или политический лидер) он тоже не может позволить себе бесконечно отдыхать. Конкуренты обойдут, ближайший помощник сам на трон захочет, поэтому и работают владыки мира едва ли не больше своих рабов (не физически конечно), берегут троны.

    А без переноски камней развитие цивилизации остановится и мы все перемрем с голоду.

    Reply
  20. CTAJIUH

    Ставлю + Хорошый рассказ.

    Reply
  21. avg54@mail.ru

    Жизненно. +1

    Reply
  22. Трактор

    Поразмыслив сменил своё мнение. Хороший рассказик.

    Reply
  23. geo-nik

    Не стоит пачкать демократию. Так могла зародиться только дерьмократия. А это разные вещи.

    Reply
  24. simuljakr

    (20) Точно ! Фараон то, тоже в этой системе! Он же не создает «монеты» из воздуха. А значит он такой же раб….

    Reply
  25. alsen

    (24) geo-nik,

    +1 — дерьмократия с искусственным средством платежа….

    Иначе откуда он взял бы столько монет…

    Reply
  26. zhleonid8

    каждый выбирает сам быть фараоном или рабом

    Reply
  27. nataon

    Неожиданное отступление от темы на этом сайте)))

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *