Autor Beitrag
ralfi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 153



BeitragVerfasst: Sa 21.02.04 18:15 
Hallo Leute!

Ich brauche eure Hilfe! Ich habe ein kleines Programm erstellt und möchte dieses eingigen Bekannten geben. Ich möchte jetzt eine kleine Schutztfunkzion erstellen, die folgendermassen funktionieren soll:

Start des Programms wird der Benutzer aufgefordert, Benutzername und Kennwort einzugeben, die ich im vorher zugewiesen habe und die irgendwo z. B. auf meinem Server in irgendeinem Format abgespecihert sind. Zuerst wird überprüft, ob jemand mit diesem Benutzernamen schon eingelogt ist. Wenn ja dann Schluß. Wenn nein, werden die Benutzerdaten überprüft und wenn alles richtig ist, startet das Programm, ansonsten entsprechende Meldung.

So habe ich es mir vorgestellt. Ich weiss nur nicht, wie ich das realisieren kann... Hat jemand schon so was in der Art gemacht? Ich weiss nur, dass alein Delphi recht hier nicht.

Für jeden Tipp bin ich dankbar!
Martin77
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 282

XP Prof
D6 Prof, D7 Personal, D7 Enterprise, D8 personal
BeitragVerfasst: Sa 21.02.04 18:23 
1. Problem: wie willst du sicherstellen das der Benutzern och nicht eingeloggt ist? Ich starte das Programm, melde mich an und hab nen Stromausfall, soll sich das Programm alle x Miniten bei dir melden?

2. Problem: Welche Datenbank willst du benutzen?

Du solltest mal deine "aktive" Seite, deinen Server beschreiben.

Delphi alleine reicht nicht? Das würde ich jetzt nciht so sehen, klar du brauchst ne Datenbank die auf einem Server läuft, aber das hat mit deinem Programm ncith direkt was zu tun, du kannst natürlich auch ini Dateien verwenden und diese per FTP hin und her kopieren.

Also: Mehr infos!


martin, der jetzt Karneval feiern geht ;)
ralfi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 153



BeitragVerfasst: Sa 21.02.04 19:20 
Deswegen bin ich auch hier, weil ich mir noch nicht vorstellen kann, wie ich das alles mache...
Wie hättet ihr das gemacht?

Zitat:
2. Problem: Welche Datenbank willst du benutzen?
Du solltest mal deine "aktive" Seite, deinen Server beschreiben.


Ich habe einen Root-Server gemietet mit PHP, Perl, MySQL-Datenbanken und anderen Komponenten.
MrSaint
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1033
Erhaltene Danke: 1

WinXP Pro SP2
Delphi 6 Prof.
BeitragVerfasst: Sa 21.02.04 19:26 
jo, eben, eght ohne Datenbank! einfach nur INIs oder TXTs oder sonst was, das man irgendwie auf den server scheiben kann (FTP, HTTP mit PHP,...)... gibts genug möglichkeiten... bei FTP is vielleciht net so toll, dass man das FTP-Passwort praktisch "frei Haus" liefern muss; deswegen würd ich HTTP+PHP vorschlagen. da kannst dann auch deine authentifizierung schön per php machen ;) also ich fang mal vorne an:

  • Du läßt deinen Benutzer in seinem Programm einen Benutzernamen und Passwort eingeben
  • du generierst davon ne Checksum (dass du das passwort nich plain-text übers netz schicken musst)
  • das programm schickt dann über die Indy-HTTP_Kompo die Daten an deinen Server
  • hier greift PHP ein, kontrolliert die Checksum mit dem auf dem Server (also dem erlaubten)
  • PHP schreibt dann auf dem Server in ne Datei, dass der User gerade online gegangen is (oder auch in ne Datenbank, je nachdem)
  • gibt das result zurück, welches dann dein programm auswertet
  • .. wenn der user wieder offline geht, schickt er wieder ne message an den Server (PHP), welcher dann den aktiven User aus der liste löscht..


du kannst das mit der checksum auch weglassen, wenn du willst... weil cr***en kann man dein programm wohl später sowieso... man bräuchte wohl bloß das result, das man vom server bekommen hat, zu ändern (per hook oder sogar direkt in deinem code)...

dann sollte, wie vorher schon angemerkt, dein programm zum beispiel jede minute dem server noch eine "hallo, ich bin noch ma leben"-message schicken... wenn diese mal nicht kommt, löscht der server den aktiven benutzer beim nächsten aufruf des login-php-scripts automatisch aus der liste...

ein pseudo-php-script könnte so aussehen:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
<?php

// Überprüfung ob sich ein User schon länger als eine Minute nicht mehr gemeldet hat (vielleicht als timestamp-eintrag in einer datei auf dem server?)

// wenn er einen findet --> aus der liste löschen


// übergebene Variablen (Username + Passwort) auslesen

// variablen mit den daten aus einer datei (oder datenbank) vrgleichen

// ist user oder passwort flasch --> Fehler zurückgeben

// ist user + pass richtig, dann den aktuellen user als aktiv speichern (z.B. in einer datei) und erfolgsmeldung zurückgeben
?>



Hoff das gelaber war net zu unverständlich ;)


MrSaint

_________________
"people knew how to write small, efficient programs [...], a skill that has subsequently been lost"
Andrew S. Tanenbaum - Modern Operating Systems
Martin77
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 282

XP Prof
D6 Prof, D7 Personal, D7 Enterprise, D8 personal
BeitragVerfasst: So 22.02.04 13:44 
Aso, per Root Server ;) hab ich auch mal gemacht, habs mit mySQL im Hintergrund gemacht und per PHP Script in die Datenbank geschrieben.

@MrSaint: Klar reichen auch Textfiles, aber wenn er ne Benutzeranmeldung machen will ,dann will er sicherlich auch andere Daten speichern/verwalten ;) Denke ich mal , ich hab damals auch mit 3 textfiles angefangen, naja und irgendwann kam das Forum hinzu,..... und da war es dann ziemlich akcke jede Passwortänderugn an 4 Stellen durchführen zu müssen :)


martin
ralfi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 153



BeitragVerfasst: Mo 23.02.04 08:51 
Danke, ich habe es mit MySQL hingekrigt. :-)