Я наконец понял, что кому-то очень-очень хочется чтоб в стране у нас настал совсем-совсем песец.
Зачем? Для того что-бы произошел переворот или революция или путч, что-бы поменялась власть в стране. Что они делают для этого?
Действуя внутри системы они разваливают экономику страны, сельское хозяйство, медицину и образование, подрывают доверие к судебной системе, компрометируют власть в целом и в часности, устраивают геноцид населению, т.д. и т.п…
Это точно враги народа и их как можно скорее нужно ловить,разоблачать и сажать..
Я точно знаю кто это, но сказать это в открытом виде не могу…Боюсь что обьявят террористом,посадят, уволят, прикроют блог, спалят дом или машину. И им за это ничего не будет. Боюсь Роскомнадзора, полицию, судебную систему..ну и остальных власть имеющих.
Архив за месяц: Декабрь 2014
SSH клиент из браузера на FreeBSD
Задача: получить доступ по SSH к серверу через браузер.
Ставим shellinaboxd:
cd /usr/ports/www/shellinabox make install clean
в /etc/rc.conf
shellinaboxd_enable="YES" shellinaboxd_port="4200"
В /usr/local/etc/rc.d/shellinaboxd отключаем возможность удаленного подключения (т.е. разрешаем только localhost):
command_args="--user=${shellinaboxd_user} --group=${shellinaboxd_group} --port=${shellinaboxd_port} --background=${pidfile}"
изменяем:
command_args="--user=${shellinaboxd_user} --group=${shellinaboxd_group} --port=${shellinaboxd_port} --background=${pidfile} --localhost-only"
Запускаем сервис:
/usr/local/etc/rc.d/shellinaboxd start
Далее настраиваем apache для получения строки запуска SSH вида http://www.domen.ru/shell. Устанавливаем порты:
cd /usr/ports/www/apache22 make config
Выбираем mod_proxy и mod_proxy_http
make deinstall make reinstall /usr/local/etc/rc.d/apache22 restart
В /usr/local/etc/apache22/httpd.conf добавляем:
LoadModule proxy_module libexec/apache22/mod_proxy.so LoadModule proxy_html_module libexec/apache22/mod_proxy_html.so LoadModule proxy_http_module libexec/apache22/mod_proxy_http.so
В виртуальные хосты apache:
ProxyPass /shell/ http://localhost:4200/ ProxyPassReverse /shell/ http://localhost:4200/
И снова перезапускаем:
/usr/local/etc/rc.d/apache22 restart
Обновление «Учет оргтехники и ТМЦ в браузере» до версии 3.49
Выложено на sourceforge.net
В основном эволюционные изменения. Ничего революционного нет. Исправлено ряд незначительных ошибок.
Из нового:
- добавлено поле «в пути» в журнале имущества и в перемещениях
- каждому пользователю можно добавить роли
- добавлен модуль «управление устройствами» — можно например использовать для перезагрузок устройств
- добавлен виджет — модуль «кто онлайн»
- еще ряд мелочей
Чувствую настало время купить новую куртку…
Сегодня когда гулял около храма на площади революции, попал в смешную ситуацию. Подошла женщина и сказала что положила денежку в мою банку на крыльце храма… Я был в шоке…приняла за убогого или бомжа…
Работа с транзакциями MySQL на PHP
С часа три вероятно мучался вчера, пока подобрал вариант кода, который корректно отрабатывает.
$err=""; $lb=new Tsql(); $lb->connect($myrow["host"], $myrow["username"], $myrow["pass"], $myrow["basename"]); $lb->start_transaction(); $sql="INSERT INTO payments (agrm_id,amount,comment,receipt,pay_date,local_date,status,mod_person,amount_cur) VALUES ('$agrm_id','$amount','Автоматически загруженный платеж','$uniid','$dat',now(),0,'$manager_id','$amount')"; if ($err==""){ $result2 = $lb->ExecuteSQL($sql); if ($result2=='') {$err="Error!";}; }; $sql="UPDATE agreements SET balance=balance+$amount where agrm_id='$agrm_id'"; if ($err==""){ $result2 = $lb->ExecuteSQL($sql); if ($result2=='') {$err="Error!";}; }; if ($err==""){ $lb->commit(); } else { $lb->rollback(); PutLog('----ошибка занесения платежа(2): ' . $err); }; unset($lb);
Использованный класс:
<?php // Данный код создан и распространяется по лицензии GPL v3 // Изначальный автор данного кода - Грибов Павел // http://грибовы.рф class Tsql { var $idsqlconnection; // идентификатор соединения с БД // соеденяемся с БД и выбираем таблицу, получаем $idsqlconnection function connect($host,$name,$pass,$base){ global $codemysql; $this->idsqlconnection=new mysqli($host,$name,$pass,$base); if (mysqli_connect_errno()) { $serr=mysqli_connect_error(); die("Error connect to Mysql or select base: $serr"); } $result = mysqli_query($this->idsqlconnection,"SET NAMES $codemysql"); mysqli_set_charset($this->idsqlconnection, "$codemysql"); } function ExecuteSQL($sql){ //echo "$sql<br>"; $result = mysqli_query($this->idsqlconnection,$sql); if ($result==""){echo mysqli_connect_error();}; return $result; } function start_transaction(){ return mysqli_query($this->idsqlconnection,"START TRANSACTION"); //return mysqli_begin_transaction($this->idsqlconnection); } function commit (){ return mysqli_query($this->idsqlconnection,"COMMIT"); //return mysqli_commit($this->idsqlconnection); } function rollback(){ return mysqli_query($this->idsqlconnection,"ROLLBACK"); //return mysqli_rollback($this->idsqlconnection); } function close(){ return mysqli_close($this->idsqlconnection); } }
Как оказалось, главной фишкой — нельзя использовать внутри цикла begin transaction — commit (или rollback) обработку ошибок при помощи mysqli_error — PHP падает в FATAL ERROR.. Почему? Вопрос интересный.