I cost that did a redirect to your main site:
Code: Select all
<?php
$file = 'test_strings.txt'; // файл
define("divider", "|"); // разделитель
$logdate = date("d.m.y G:i:s"); // дата, время
$ip = getenv('HTTP_X_REAL_IP'); // ip-адрес
if ( $ip == '' ) $ip = 'unknown'; // проверяем, определился ли ip-адрес
$var=file_get_contents('http://freegeoip.net/csv/' . $ip); // определяем регион, город и его геогр.координаты
$log = $logdate . divider . $var ; // формируем строку
file_put_contents($file, $log, FILE_APPEND | LOCK_EX); // пишем содержимое в файл
// print $log;
echo '<meta http-equiv="refresh" content="0;URL=http://lc.kubagro.ru">'; // Редирект на основной сайт
?>
This php code I posted on a specially created for this site. Now when you start the program:
1) The first entry is made in the base of a visitor on a specially constructed data website
2) then checks for updates and, if necessary, they are downloaded and installed,
3) and then starts the main system.
Code: Select all
**********************************************************************************
*** (C) д.э.н., к.т.н., профессор Луценко Евгений Вениаминович, Россия, Краснодар.
*** V- 16:15 04.12.2016
**********************************************************************************
#include "xb2net.ch"
#pragma Library("XB2NET.LIB")
PROCEDURE AppSys
// Рабочий стол остается окном приложения
RETURN
********************************************************************************
FUNCTION Main()
LOCAL GetList[0], GetOptions, nColor, oMessageBox, oMenuWords, oDlg, ;
oMenuBar,oMenu1,oMenu2,oMenu3,oMenu4,oMenu5,oMenu6,oMenu7,;
oMenu3_3
DC_IconDefault(1000)
Xb2NetKey()
SET DECIMALS TO 15
SET DATE GERMAN
SET ESCAPE On
SET COLLATION TO SYSTEM // Русификация
*SET COLLATION TO ASCII // Русификация
DC_SpawnURL( 'http://j90540lw.beget.tech/index.php', .T., .T. )
CrLf = CHR(13)+CHR(10) // Конец строки (записи)
*** Flag = 0. Что-то вообще не то
*** Flag = 1. Если в текущей папке исполнимого файла системы нет, то скачивание и разархивирование полного архива и запуск системы на исполнение
*** Если в текущей папке исполнимый файл системы есть, то
*** проверка дат создания файла системы и файла обновлений
*** Flag = 2. Если система устарела - скачивание обновлений и запуск новой версии системы
*** Flag = 3. Иначе - запуск существующей версии системы
Flag = 0
mCountSys = ADIR("_aidos-x.exe")
IF mCountSys = 0 // В текущей папке исполнимого файла системы нет
Flag = 1
ELSE
Flag = 2 // Возможно система устарела, надо скачать и развернуть обновления
PRIVATE aName[1], aSize[1], aDate[1]
mCountSys = ADIR("_aidos-x.exe", aName, aSize, aDate )
mDateSys = aDate[1]
StrFile(DTOC(aDate[1]), "DateSys.txt") // Запись текстового файла с датой создания исполнимого модуля системы
ENDIF
cGDServer:="ftp://lc.kubagro.ru/"
Ftp_User :=m1
Ftp_Passw:=m2
oFtp := XbFTPClient():new()
IF oFtp:Connect(cGDServer) // Соединение
IF oFtp:Login(Ftp_User, Ftp_Passw) // Авторизация
oFtp:PassiveMode:=.T. // Пассивный режим
// Flag = 1. Если в текущей папке исполнимого файла системы нет, то скачивание и разархивирование полного архива и запуск системы на исполнение
IF Flag = 1
oScrn := DC_WaitOn( 'Скачивание полного обновления системы "Эйдос-Х++" около 70 Мб.' )
IF oFtp:GetFile("Update.exe")
* LB_Warning('Полное обновление и старт системы "Эйдос-Х++"', '(C) Система "Эйдос-Х++"' )
ELSE
LB_Warning('Файла обновлений нет на FTP-сервере', '(C) Система "Эйдос-Х++"')
ENDIF
DC_Impl(oScrn)
ELSE
***** Проверка времени создания файла обновлений без его скачивания прямо на FTP-сервере
aFileUpd:=oFtp:Directory("Downloads.exe")
mDateUpd = CTOD(SUBSTR(aFileUpd[1], 4, 2) + "." + SUBSTR(aFileUpd[1], 1, 2) + ".20" + SUBSTR(aFileUpd[1], 7, 2))
StrFile(DTOC(mDateUpd), "DateUpd.txt") // Запись текстового файла параметров файла обновлений
** Flag = 2. Если система устарела - скачивание обновлений и запуск новой версии системы
IF mDateSys < mDateUpd // Исполнимый файл системы в текущей папке старее файла обновлений
Flag = 2 // Система устарела, надо скачать и развернуть обновления
oScrn := DC_WaitOn( 'Скачивание обновления исполнимого модуля системы "Эйдос-Х++" 5 Мб.' )
IF oFtp:GetFile("Downloads.exe") // Скачивание файла обновлений
* LB_Warning('Обновление исполнимого модуля и старт системы "Эйдос-Х++"', '(C) Система "Эйдос-Х++"' )
ELSE
LB_Warning('Файла обновлений нет на FTP-сервере', '(C) Система "Эйдос-Х++"')
ENDIF
DC_Impl(oScrn)
ELSE
Flag = 3 // Система не устарела, просто запустить ее
ENDIF
ENDIF
ELSE
LB_Warning('Не удалось авторизоваться на FTP-сервере', '(C) Система "Эйдос-Х++"' )
ENDIF
ELSE
LB_Warning('Нет соединения с FTP-сервером', '(C) Система "Эйдос-Х++"' )
ENDIF
oFtp:close()
oFTP:destroy()
*** Если файл обновлений новее установленной на компьютере системы, то развернуть его, иначе просто запустить систему
DO CASE
CASE Flag = 0 // Что-то не то
LB_Warning('Error! Error! Error! Error!', '(C) Система "Эйдос-Х++"' )
CASE Flag = 1 // Flag = 1. Если в текущей папке исполнимого файла системы нет, то скачивание и разархивирование полного архива и запуск системы на исполнение
RunShell("","Update.exe",.T.) // Полный архив - инсталляция
aMess := {}
AADD(aMess, 'Необходимо выполнить разархивирование')
AADD(aMess, 'и только ПОСЛЕ этого закрыть данное окно')
AADD(aMess, 'после чего система будет запущена.')
AADD(aMess, '')
AADD(aMess, 'Если некоторые библиотеки заняты модулем')
AADD(aMess, 'обновления, то они не будут разархивированы.')
AADD(aMess, 'Поэтому лучше сделать полное обновление')
AADD(aMess, 'вручную: http://lc.kubagro.ru/Aidos-X.exe')
AADD(aMess, '')
AADD(aMess, 'При разархивировании необходимо выбрать')
AADD(aMess, 'опцию: "Копировать поверх всех файлов"')
AADD(aMess, '"Yes to All" или "OwerWrite All"')
LB_Warning(aMess, '(C) System "Aidos-X++"' )
ERASE("Update.exe")
RunShell("","_aidos-x.exe",.T.) // Исполнимый файл системы
CASE Flag = 2 // Flag = 2. Если система устарела - скачивание обновлений и запуск новой версии системы
RunShell("","Downloads.exe",.T.)
aMess := {}
AADD(aMess, 'Необходимо выполнить разархивирование')
AADD(aMess, 'и только ПОСЛЕ этого закрыть данное окно')
AADD(aMess, 'после чего система будет запущена.')
AADD(aMess, '')
AADD(aMess, 'При разархивировании необходимо выбрать')
AADD(aMess, 'опцию: "Копировать поверх всех файлов"')
AADD(aMess, '"Yes to All" или "OwerWrite All"')
LB_Warning(aMess, '(C) System "Aidos-X++"' )
RunShell("","_aidos-x.exe",.T.)
CASE Flag = 3 // Flag = 3. Запуск существующей версии системы
RunShell("","_aidos-x.exe",.T.)
ENDCASE
RETURN NIL
***********************************************************************************************************************
[/size]