Rejestrowanie uruchamiania programu

0

Witam.
Chciałbym wpleść w program kawałek kodu, który rejestrowałby w mojej bazie danych na serwerze (MySQL) każdą instalację mojego programu. Wymyśliłem sobie taki scenariusz.

  1. Podczas pierwszego uruchomienia prosty formularz rejestracyjny: imię, nazwisko, adres e-mail.
  2. Po kliknięciu w bazie danych zapisują się dane dotyczące tego użytkownika łącznie z adresem IP i adresem fizycznym karty sieciowej, a w lokalnej bazie danych lub w rejestrze zapiszą się dane z formularza. W przypadku, gdy użytkownik nie poda swoich danych w bazie zapisze się tylko adres IP i adres fizyczny.
  3. Podczas kolejnych uruchomień będzie sprawdzane, czy dany użytkownik jest już w bazie, czy nie na podstawie podanych wcześniej informacji.

Zastanawiałem się jak rozwiązać ten temat i przyszły mi do głowy w sumie dwa rozwiązania. Pierwsze, to bezpośrednie połączenie z MySQL. Jednak może się zdarzyć, że program będzie uruchamiany w środowiskach, gdzie sieć jest bardzo ograniczona i bezpośrednie połączenie z bazą się nie powiedzie. Drugi sposób, to wygenerowanie prostego kodu HTML, który postem wyśle do konkretnej strony php na moim serwerze dane. Moje pytanie brzmi w jaki sposób wykonać to drugie rozwiązanie?? Jakich komponentów użyć i w jaki sposób?

0

Drugie rozwiązanie powinno być ok, ale trzeba wykryć czy jest połączenie z Internetem, ja robię to tak jak w module a_pinger_code wywołując funkcję IsInternetConnectionAvailable. Chociaż wiem, że stosując to czasami w swoich programach u dwóch ludzi póki co z niewiadomych przyczyn nie działało to pingowanie, ale jest to i tak skuteczniejsza metoda niż to co dostępne w sieci, bo te kody wykryją nawet połączenie jeżeli na przykład ruter będzie odłączony od urządzenia dostępowego, na przykład jak mi modem UPC nie wykryje Inrernetu to kody z google i tak stwierzdzą, że jest połączenie, bo cały czas komputer kablem ma łączność z ruterem. Natomiast co do pytania czym wysłać dane metodą POST to polecam pakiet Synapse i komponent THttpSend z http://www.ararat.cz/synapse/doku.php/download dołączone są przykłady oraz dokumentacja. A na tym forum już nie raz produkowałem się na temat Synapse i podawałem przykładowe kody do różnych operacji protokołem HTTP. Wystarczy, że poszukasz i przejrzysz moje nieco starsze posty. A na temat SQL'a się nie wypowiem, bo bawiłęm się tylko prostym przykłądem do offline'owej bazy z użyciem SQLite, ale temat baz danych ogarniam słabo, jak już przechowuje dane to startm się operować na Streamach i włąsnym formacie typowanym.

0

Jest tylko jeden problemik. Używam Turbo Delphi w wersji Explorer i nie mogę instalować dodatkowych komponentów. :) Jakaś sugestia, która pozwoli uzyskać przy pomocy wbudowanych komponentów?

0

Z wbudowanych jest Indy, ale przecież mimo braku możliwości instalacji nikt nie zabrania używania komponentów w sposób dynamiczny i tego nie blokuje. Moduł do pingowania który dołączyłem używa się tylko dodając go do uses i wywołując wspomnianą funkcję. A pakiet Synapse używasz całkowicie w sposób dynamiczny, a do tego w miarę wygodny.

0

Aha. Oki. To ja popróbuję. Dzięki za podpowiedź. :)

0

a ja mam pytanie - czym się różni podłączenie się do zdalnej bazy od podłączenia się do zdalnego serwera WWW? Przecież i tu i tu musisz mieć połączenie z netem, a jeśli w firmie są ograniczenia co do używania netu to najczęściej ograniczany jest ruch na porcie 80 i/lub strony do których można się połączyć

0

No właśnie niekoniecznie. Port 80 w 95% przypadkach jest otwarty. Filtrowana jest treść, ale to już w wyższych warstwach się odbywa. Mnie jest do szczęścia potrzebna warstwa 4. Natomiast port 3306 należy do grupy portów pow. 1023 i jako taki jest już blokowany do wyjścia na zewnątrz.

0 użytkowników online, w tym zalogowanych: 0, gości: 0