Login System wie umsetzen?
Login System wie umsetzen?
Ich denke mal ich bin hier im richtigen Forum...
Ich bin gerade mit einem größeren Projekt beschäftigt, das u.a. auch einen eigenen Messenger haben soll. Dazu wird natürlich ein Server gebraucht, über den man sich einloggen muss und auf dem eine Datenbank mit allen Accounts und deren zugehörigen Daten liegen.
Die eine Möglichkeit wäre nun selbst eine Serversoftware dafür zu schreiben, wozu ich dann allerdings einen richtigen Server brauche, damit dieser ordentlich läuft.
Die andere Möglichkeit, die ich mir überlegt habe, wäre dazu normalen Webspace zu verwenden und alles per PHP und MySQL zu regeln. Das Program loggt sich also über ein PHP Script ein und kommt so dann auch an die Daten. Ich frage mich nun allerdings ob das sinnvoll ist und ich nicht etwas entscheidendes übersehe?
Daher würde ich gerne mal eure Meinung dazu hören, bevor ich mich jetzt länger damit unnötig befasse.
Ich bin gerade mit einem größeren Projekt beschäftigt, das u.a. auch einen eigenen Messenger haben soll. Dazu wird natürlich ein Server gebraucht, über den man sich einloggen muss und auf dem eine Datenbank mit allen Accounts und deren zugehörigen Daten liegen.
Die eine Möglichkeit wäre nun selbst eine Serversoftware dafür zu schreiben, wozu ich dann allerdings einen richtigen Server brauche, damit dieser ordentlich läuft.
Die andere Möglichkeit, die ich mir überlegt habe, wäre dazu normalen Webspace zu verwenden und alles per PHP und MySQL zu regeln. Das Program loggt sich also über ein PHP Script ein und kommt so dann auch an die Daten. Ich frage mich nun allerdings ob das sinnvoll ist und ich nicht etwas entscheidendes übersehe?
Daher würde ich gerne mal eure Meinung dazu hören, bevor ich mich jetzt länger damit unnötig befasse.
für ein normales Login reicht php mit MySQL
php wertet die gesendeten Daten aus (zB über GET) und verbindet sich mit MySQL und checkt dort was so ab geht ^^
und php gibt dann wiederrum eine html oder so aus die mal dann sieht ...
Ich verwante so zB server für ein spiel, ein Serevr "logt sich ein" und ist dann in der Liste für alle sichtbar.
php wertet die gesendeten Daten aus (zB über GET) und verbindet sich mit MySQL und checkt dort was so ab geht ^^
und php gibt dann wiederrum eine html oder so aus die mal dann sieht ...
Ich verwante so zB server für ein spiel, ein Serevr "logt sich ein" und ist dann in der Liste für alle sichtbar.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Ja, genau so hab ich mir das in etwa vorgestellt.
Es müsste doch theoretisch folgendes möglich sein:
Ein User loggt sich per PHP Script ein, in der DB wird seine aktuelle IP Adresse gespeichert. Nun loggt sich ein anderer User ein und dieser will dem anderen User eine Nachricht schreiben. Diese Nachricht wird dann an ein PHP Script gesendet, welche die Nachricht in die DB speichert und am Ende an die IP des Zielusers ein Signal sendet. Auf die Art weiß der Zielclient, dass eine neue Nachricht da ist und kann wiederum ein PHP Script starten um die Nachricht direkt abzuholen.
Das sollte so eigentlich möglich sein, oder? Und es müsste die Resourcen schonenste Variante sein. Natürlich könnte man die Nachricht auch direkt von Client zu Client senden, allerdings sind so die User geschützter, weil der Empfänger so nicht die IP des Absenders und umgekehrt hat.
Es müsste doch theoretisch folgendes möglich sein:
Ein User loggt sich per PHP Script ein, in der DB wird seine aktuelle IP Adresse gespeichert. Nun loggt sich ein anderer User ein und dieser will dem anderen User eine Nachricht schreiben. Diese Nachricht wird dann an ein PHP Script gesendet, welche die Nachricht in die DB speichert und am Ende an die IP des Zielusers ein Signal sendet. Auf die Art weiß der Zielclient, dass eine neue Nachricht da ist und kann wiederum ein PHP Script starten um die Nachricht direkt abzuholen.
Das sollte so eigentlich möglich sein, oder? Und es müsste die Resourcen schonenste Variante sein. Natürlich könnte man die Nachricht auch direkt von Client zu Client senden, allerdings sind so die User geschützter, weil der Empfänger so nicht die IP des Absenders und umgekehrt hat.
Ich hab mir das jetzt gerade noch nicht näher angesehen (sitze erst seit 2 Mins wieder am PC), aber damit müsste es doch gehen?
http://de2.php.net/manual/de/function.fsockopen.php
Damit sollte es doch möglich sein eine Verbindung zum PB Programm aufzubauen und Daten zu senden.
Alle 5 Sekunden den Server abzufragen dürfte doch schnell bei ein paar duzend Nutzern für zu viel Traffic auf dem Webserver sorgen. Um zu prüfen ob die Verbindung unfreiwillig abgebrochen wurde reicht es auch alle 60 Sekunden ein Ping oder so zu senden.
http://de2.php.net/manual/de/function.fsockopen.php
Damit sollte es doch möglich sein eine Verbindung zum PB Programm aufzubauen und Daten zu senden.
Alle 5 Sekunden den Server abzufragen dürfte doch schnell bei ein paar duzend Nutzern für zu viel Traffic auf dem Webserver sorgen. Um zu prüfen ob die Verbindung unfreiwillig abgebrochen wurde reicht es auch alle 60 Sekunden ein Ping oder so zu senden.
Jo, dann werd ich mich damit mal versuchen. Sollte erstmal kein so großes Problem sein. Die richtigen Herausforderungen wie das sichere verschlüsseln der Daten und andere Dinge kommen dann alle noch. Das Ganze soll ja dann auch möglichst sicher sein.
In der Richtung hab ich selbst auch noch nichts gemacht, aber zum Glück kenne ich mich sowohl mit PB als auch mit dem ganzem HTML, CSS, PHP und MySQL Kram inzwischen ganz gut aus. Also hängt es weniger an den Sprachen als viel mehr an der Umsetzung selbst. Ich hab da ganz gern vorher schon ein halbwegs fertiges Bild von der Umsetzung im Kopf, ehe ich daran gehe, ansonsten wüsste ich gar nicht wie ich überhaupt erst anfangen sollte.
Macht doch auch viel mehr Spaß Dinge umzusetzen, die schon im Kopf existieren. 
Von daher hat mir der Thread jetzt schon sehr geholfen, auch wenn die eigentliche Frage ob PHP oder richtige Serversoftware nicht beantwortet wurde, wenn ich aber so recht drüber nachdenke, das letzteres wohl darauf hinauslaufen würde, dass die Serversoftware unter Linux laufen würde, will ich die Antwort gar nicht wissen, weil mit Linux kenne ich mich kaum bis gar nicht aus.
In der Richtung hab ich selbst auch noch nichts gemacht, aber zum Glück kenne ich mich sowohl mit PB als auch mit dem ganzem HTML, CSS, PHP und MySQL Kram inzwischen ganz gut aus. Also hängt es weniger an den Sprachen als viel mehr an der Umsetzung selbst. Ich hab da ganz gern vorher schon ein halbwegs fertiges Bild von der Umsetzung im Kopf, ehe ich daran gehe, ansonsten wüsste ich gar nicht wie ich überhaupt erst anfangen sollte.


Von daher hat mir der Thread jetzt schon sehr geholfen, auch wenn die eigentliche Frage ob PHP oder richtige Serversoftware nicht beantwortet wurde, wenn ich aber so recht drüber nachdenke, das letzteres wohl darauf hinauslaufen würde, dass die Serversoftware unter Linux laufen würde, will ich die Antwort gar nicht wissen, weil mit Linux kenne ich mich kaum bis gar nicht aus.
So, ich hab mir da mal schnell was zum testen zusammen gebastelt:
Diesen Code im Debug Modus laufen lassen und dann die URL mit dieser php Datei mit folgendem Inhalt ausführen:
Wenn man nun jetzt noch die PHP Datei statt im Browser über das PB Programm aufruft, hat man schon die grundlegende Funktion, wie ich mir das vorgestellt habe. Irgendwelche Einwände oder Verbesserungsvorschläge?
Damit sollte es ein leichtes sein ein Login System mit Rückmeldung zum Client zu machen. Und auf die gleiche Art können dann später auch Nachrichten zwischen den Benutzern ausgetauscht werden. Sieht doch eigentlich so perfekt aus.
Edit: leider musste ich gerade feststellen, dass mein Webhoster so gut wie alle Ports gesperrt hat. Da muss ich dann später wohl einen anderen Hoster für mein Projekt nutzen. Naja, egal, bis dahin tut es auch erstmal mein lokaler Server. Das dauert ohnehin noch einige Zeit, bis das Programm so weit ist.
Code: Alles auswählen
InitNetwork()
CreateNetworkServer(0,6000,#PB_Network_TCP)
Buffer.l = AllocateMemory(1024)
Repeat
Select NetworkServerEvent()
Case 1
Debug "Neuer Client connected"
Case 2
PokeS(Buffer, Space(1048), 1048)
length.l = ReceiveNetworkData(EventClient(), Buffer, 1024)
message.s = PeekS(Buffer, length)
Debug "Daten empfangen: "+message
Case 4
Debug "Client disconnected"
EndSelect
Delay(10)
ForEver
Code: Alles auswählen
<?php
$IP = $_SERVER['REMOTE_ADDR'];
$PORT = 6000;
$fp = fsockopen("tcp://".$IP, $PORT, $errno, $errstr, 5);
fwrite($fp,"Erfolgreicher Test! Dieser Text wurde von PHP gesendet!");
fclose($fp);
echo $IP.':'.$PORT;
?>
Damit sollte es ein leichtes sein ein Login System mit Rückmeldung zum Client zu machen. Und auf die gleiche Art können dann später auch Nachrichten zwischen den Benutzern ausgetauscht werden. Sieht doch eigentlich so perfekt aus.
Edit: leider musste ich gerade feststellen, dass mein Webhoster so gut wie alle Ports gesperrt hat. Da muss ich dann später wohl einen anderen Hoster für mein Projekt nutzen. Naja, egal, bis dahin tut es auch erstmal mein lokaler Server. Das dauert ohnehin noch einige Zeit, bis das Programm so weit ist.
Zuletzt geändert von Hoto am 27.03.2009 02:32, insgesamt 2-mal geändert.
- KeyKon
- Beiträge: 1412
- Registriert: 10.09.2004 20:51
- Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit) - Wohnort: Ansbach
- Kontaktdaten:
So wird das nicht (zumindest nicht ohne probleme) funktionieren.
Das Problem is das der Router nicht weis an welche IP im Netzwerk er die Daten die ihm das PHP-Script schickt überhaupt weiterleiten soll, man muss dafür erst via IP-Forwarding den entsprechenden Port auf die entsprechende IP weiterleiten, und das würde ich den wenigstens Nutzern zumuten...
Sobald ein Server auf dem eigentlichen NutzerPC läuft hast du dieses Problem, daher auch mein Ansatz mit der automatischen Anfrgae alle 10 sek. auf die Art und weise is der PC nämlich immer Client...
Das Problem is das der Router nicht weis an welche IP im Netzwerk er die Daten die ihm das PHP-Script schickt überhaupt weiterleiten soll, man muss dafür erst via IP-Forwarding den entsprechenden Port auf die entsprechende IP weiterleiten, und das würde ich den wenigstens Nutzern zumuten...
Sobald ein Server auf dem eigentlichen NutzerPC läuft hast du dieses Problem, daher auch mein Ansatz mit der automatischen Anfrgae alle 10 sek. auf die Art und weise is der PC nämlich immer Client...
(\/) (°,,,°) (\/)