<?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='\
Прикольно, у меня 2540-все работает нормально. Большое спасибо!
Всегда пожалайста!
Ставлю (+).
А может знаете еще как проверить возможность
«Подключения к удаленному рабочему столу»
текущего компьютера.
Дело в том, что у меня почемуто нет внешнего IP,
хотя все совпадает.
Сделала закладку, как появится ADSL, скачаю, ставлю плюс заранее. Использую «ушедшую в глубины сайта»- очень классная программа.
2 ValentinV
Не совсем понял, что вы имеете в виду? Открыт ли порт, или включен ли доступ вообще?
(6)* При ответе на комментарий, указывайте его номер в круглых скобках,
например, (1). :):)
Хочу получить доступ «Подключение к удаленному рабочему столу» с работы.
(Или, или еще «HTTP»).
Вроде все настроил правильно.
Компа в инете нет.
Одни говорят, виноват «Авангард-adsl».
Другие — нужен просто фиксированный IP адрес.
Пробовал в «Авангард-adsl» обратится, говорят, что не знают.
Стал в инете искать. Кто, что пишет.
Нашел Вашу разработку.
Пишет, «Ваш текущий IP:». И все.
Как правильно проанализировать не выходя из дома этот момент?
(7) Пошукай в гугле по запросу «NO-IP» штука отличная! Софтинка автоматически обнавляет ip и переназначает на него выделенный при регистрации домен. А дальше инсталишь любой серверный софт закрываешь ненужные порты и впринципе все 🙂
А разработчику +… конечно
(8)+
У вас вроде есть проги.
Еще дельные советы будут?
(6). Только я причны не понял.
http://2ip.ru/) ?
Почему нет IP «DLink GetIP v.0.3» (7), если он есть(
Почему в инете нет компа, если есть IP?
(6) Если у Вас модем Д-Линк то ненужны Вам всякие «NO-IP». Заходите сюдаhttp://www.dyndns.com/ регестрируетесь, выбираете желаемый дмен и имя, в Д-Линке есть такая фича: DNS -> Dynamic DNS выбираете D-DNS provider — DynDNS.org. Hostname — имя с доменом (напр. lihodej.homeip.net) логин и пароль такой как при регистрации http://www.dyndns.com/ . Вот и всё, теперь при каждой смене ай-пи, модем сам будет отсылать новый адрес на DynDNS.org и при попытке прейте по вашему адресу вы будете попадать на свой компьютер, нужно будет чуток поиграться с портами)
По поводу того, что «DLink GetIP» не показывает собственно IP — тестировался он на модеме dLink2500U, на других модемах, возможно, потребуется настройка.
Для настройки надо зайти на модем телнетом, выполнить ifconfig, посмотреть ответ, и прописать в программе нужные строки.
Например, ifconfig мне выдал (ненужное пропускаю):
ppp_60_184_1 Link encap:Point-Point Protocol
inet addr:91.182.136.130 P-t-P:211.218.216.164 Mask:255.255.25
5.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1
RX packets:18427 errors:0 dropped:0 overruns:0 frame:0
TX packets:20480 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:9425517 (8.9 MiB) TX bytes:9987852 (9.5 MiB)
мне нужна строчка «91.182.136.130». Рядом с ней я ищу некую уникальную строку, которая встречается в этом ответе только один раз. В моем случае это — «P-t-P:». Указываю ее в программе в разделе «Поиск IP».
Далее. Вижу, что нужный мне IP находится на 16 символов назад от начала искомой строки. Соответсвенно, в поле «Искать IPпо смещению» пишу -18 (чтобы точно с запасом — программа нецифровые символы не возьмет).
Еще возможен вариант, что телнетовский порт (23) закрыт файерволлом или на самом модеме.
Еще возможно, что модем у вас работает как бридж, а не как роутер. В этом случае смотрите свой внешний IP банальной командой ipconfig в консоли виндов.
Чтобы подключиться к вашему удаленному рабочему столу (RDP), нужно, чтобы на вашей машине был открыт порт 3389. А если у вас модем в режиме роутера — то еще и маппинг с внешнего IP на ваш локальный.
че-та многа букофф получилось..
По поводу динамического IP — мой модем умеет работать с DynDNS.com. Соответственно, я всегда могу обратиться к нему из инета по адресу вида: MyCompName.dyndns.com
(13)>нужно, чтобы на вашей машине был открыт порт 3389.
http://2ip.ru — показывает что есть IP
А где дверь или окно?
>А если у вас модем в режиме роутера
А в каком он должен быть и какие еще бывают и зачем мне это знать?
> еще и маппинг с внешнего IP на ваш локальн…
На Си про это долго блудить словами могу
——————————————
Плюсами завалю.
У меня DLink 2500U.
IP «DLink GetIP v.0.3» — не показывает,
Как настроить «Подключение к удаленному рабочему столу», FTP и HTTP
и проверить не используя второй компьютер?
(13)Сейчас говорил с Авангардом.
Они говорят, что надо настраивать модем как мост, бридж.
(15) Зайдем с другой стороны. 🙂
Вам, чтобы выйти в интернет, надо просто включить комп и модем, или надо еще на рабочем столе ярлык соединения щелкнуть?
Если второе, то моя программа ничем не поможет.
Если первое, то запустите telnet.exe
там наберите: open 192.168.1.1
(192.168.1.1 — ваш адрес модема)
Введите логин и пароль на администрирование модема,
затем введите команду ifconfig, и все, что она выдала напишите сюда.
Если к модему телнетом вы подключиться не можете, то либо у вас все-таки модем в режиме моста, либо файерволл какой не пускает.
Кроме того, если я правильно понял ваш пост, то почитать про NAT, шлюзы и маппинг портов и зачем это надо я вам настоятельно рекомендую, чтобы хотя бы общее представление было.
(17)У меня интернет-шлюз.
http://www.dvgu.ru/meteo/PC/NetCreat4.htm
Вот тут похожая настройка FTP
Настроить не удалось, может что не так делаю. А как и что надо делать?
—
Пробовал мост. Ничего не дало.
—
>почитать про NAT, шлюзы и маппинг портов
Знал бы что читать, вопросов не было бы
===
Хотя бы как-то увидеть его в интернет?
Ведь и Ваша программа не видет.
(17) Так может DLink GetIP v.0.3 не показывает у меня внешний IP
из-за того, что шлюз не правильно настроен или какая еще …NAT…?
(19) Если инет есть — шлюз настроен правильно.
Телнетом, как я уже писал, пробовали подключаться?
В консоли виндов наберите
ipconfig /all
и скиньте результат сюда
(20)
Настройка протокола IP для Windows
Имя компьютера . . . . . . . . . : program
Основной DNS-суффикс . . . . . . :
Тип узла. . . . . . . . . . . . . : неизвестный
IP-маршрутизация включена . . . . : нет
WINS-прокси включен . . . . . . . : нет
Подключение по локальной сети 2 — Ethernet адаптер:
DNS-суффикс этого подключения . . :
Описание . . . . . . . . . . . . : Atheros AR8121/AR8113/AR8114 PCI-E E
thernet Controller
Физический адрес. . . . . . . . . : 00-23-54-89-B6-8E
Dhcp включен. . . . . . . . . . . : да
Автонастройка включена . . . . . : да
IP-адрес . . . . . . . . . . . . : 192.168.1.2
Маска подсети . . . . . . . . . . : 255.255.255.0
Основной шлюз . . . . . . . . . . : 192.168.1.1
DHCP-сервер . . . . . . . . . . . : 192.168.1.1
DNS-серверы . . . . . . . . . . . : 192.168.1.1
Аренда получена . . . . . . . . . : 15 июня 2009 г. 2:30:59
Аренда истекает . . . . . . . . . : 16 июня 2009 г. 2:30:59
Если просто нужен внешний айпи? То можно сделать примерно так:
Показать полностью
(21)
(20)
Теперь запускаешь пуск — выполнить — telnet.exe
В открывшемся черном окошке пишешь:
open 192.168.1.1
и Ентер
Должна появиться строка с предложением ввести логин. Вводишь логин, затем пароль от своего модема.
После этого должно появиться приглашение на ввод команд: #
Пишешь там:
ifconfig
и Ентер
То, что выйдет — тоже скинь сюда.
Если телнетом подключиться не получается — копай свой комп. Файерволл там, али еще что..
BCM96338 ADSL Router
(none) login: admin
Password:
BusyBox v1.00 (2005.04.12-18:11+0000) Built-in shell (msh)
Enter ‘help’ for a list of built-in commands.
# ifconfig
br0 Link encap:Ethernet HWaddr 00:1B:11:78:6D:0D
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING ALLMULTI MULTICAST MTU:1500 Metric:1
RX packets:2838524 errors:0 dropped:0 overruns:0 frame:0
TX packets:2588664 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1005780698 (959.1 MiB) TX bytes:950074000 (906.0 MiB)
eth0 Link encap:Ethernet HWaddr 00:1B:11:78:6D:0D
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2838524 errors:0 dropped:0 overruns:0 frame:0
TX packets:2588420 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1056874130 (1007.9 MiB) TX bytes:960519123 (916.0 MiB)
Interrupt:23 Base address:0x2800
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:10 errors:0 dropped:0 overruns:0 frame:0
TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:680 (680.0 B) TX bytes:680 (680.0 B)
nas_0_35 Link encap:Ethernet HWaddr 02:1B:11:78:6D:0D
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:104826 errors:0 dropped:0 overruns:0 frame:0
TX packets:78582 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:76921522 (73.3 MiB) TX bytes:10349335 (9.8 MiB)
ppp_0_35_1 Link encap:Point-Point Protocol
inet addr:92.100.169.112 P-t-P:91.122.0.1 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1
RX packets:665 errors:0 dropped:0 overruns:0 frame:0
TX packets:262 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:90287 (88.1 KiB) TX bytes:33704 (32.9 KiB)
#
(24)
1. DLink GetIP v.0.3 не показывает.
2. Удаленный рабочий стол не работает.
(25)
Должно все работать без проблем — у меня так же выводит.
В настройках программы пароль на доступ к модему введен?
В строке «Поиск IP» стоит «P-t-P:»?
Смещение «-18»?
Если все так, и не работает — то не знаю что сказать.
Значек программы в трее серый или белый?
(27)Вот тутhttp://chairday.narod.ru/DSL-2500U.html
у вас сказано прошивку надо менять
Может я не чего не понял, а почему бы STUN не использовать чтобы узнать свой внешний адрес? Благо STUN серверов полно, тот же stun.sipnet.ru круглосуточно и круглогодично работает.
И реализация у протокола проще тубаретки (telnet), и железка значения не имеет.
(30) BorovikSV,
Да, можно. Но тогда мне такой вариант решения пришел в голову, да и интересно было написать. Сейчас я сам ей уже давно не пользуюсь.
(31) ты как типичный хороший программист. Чем сложней тем лучше 🙂
Вот небольшой лайфхак по удаленному доступу. На даче стоит старый компьютер с камерой. Хочу получить к нему удаленный доступ. В деревне у провайдера нет «белого IP» и приобрести его невозможно.
https://vpnki.ru Они не предоставляют выход в интернет, но объединяют мои туннели — один с дачи, другой с смартфона.
DDNS работает, но и это бесполезно, потому что соединения извне тупо закрыты провайдером.
Поэтому использую вот такой VPN сервис —
Вдруг кому-то это поможет.