Zur Navigation

Portal mit Login und Chat

1 Tilman

Hallo Leute.

Ich hätte gerne auf meiner Seite ein Login für User. Ich würde meine Webseite dann auf einem günstigen (virtuellen) Server mit genügend Speicher und unbegrenzter Anzahl von PHP-Datenbanken ablegen.

Zum Login:
Es soll eine Art Portal werden:
- jeder soll sich registrieren können (Username, eigenes Passwort, ...)
- jder User soll ein Foto hochladen können, welches das Profilfoto ist
- man kann andere User suchen, an sie Nachrichten schicken
- jeder User hat eine eigene Freundeliste (User) mit denen er noch zusätzlich "live" chatten kann.

Weiß jemand, wie man so was programmiert bzw. ob es ein Programm dafür gibt?

26.03.2008 12:16

2 Rudy

Wie man das programmiert weiß ich schon; ist nicht sonderlich schwierig, der Aufwand aber recht ordentlich wegen der letzten beiden Punkte.

Anfangen musst Du natürlich bei der Registrierung, diese speichert die eingegebenen Daten in der Datenbank (Passwort nur SHA1-verschlüsselt mit Salt!), schickst die Aktivierungsmail mit Link auf die Aktivierungsseite mit einem ellenlangen generierten Schlüssel, um die E-Mail-Adresse zu verifizieren und den User zu aktivieren. Dann machst Du das Profil mit einem Upload des Fotos, ist eigentlich ein einfacher Bild-Upload und Verkleinerung.

Die beiden letzten Punkte sind recht aufwändig. Nachrichten schicken ist ok, aber PN sollten unbedingt privat bleiben, d.h. verschlüsselt, auch für Dich als Admin oder Moderatoren. Die Datenschutzanforderungen sind hier ziemlich hoch.

Eine Freundesliste ist recht easy, das kannst Du mit einem Button im Profil lösen, das andere sehen, wenn sie es aufrufen, und mit dem sie denjenigen zur Liste der Freunde hinzufügen können.

Der Livechat wiederum ist aufwändig, wenn Du ihn selbst machst, wenn Du was fertiges nimmst (z.B. einen Java-Chat), dann ist der Aufwand natürlich entsprechend geringer.

26.03.2008 12:41

4 Tilman

OK! Jetzt habe ich den anderen Kram auf meiner Webseite fertig, und hoffe nun, mich dem Login widmen zu können.

Fängt man da ersteinmal mit der/den Tabelle(n) an?

Ich habe mir die Links mal etwas angeschaut. Da stand, dass man für jeden User eine eigene Tabelle machen kann oder eine oder mehrere für alle User. Also, ich denke, dass mehrere Tabellen für alle User leichter seien.

Nun, so würde ich die Tabellen gerne machen:
1.) Tabelle (Account)
account-id, account-name, password, e-mail, status (online/offline), accountart (normaler user/moderator/admin), adresse, sonst noch was?


2. Tabelle (Daten)
profilfoto(s), persönliche daten...

3. Tabelle (Mails)
sender, empfaenger, inhalt, betreff, status (gelesen/ungelesen/archiviert)

4. Tabelle (Friends)
friendx, friendy, freunde seit, freundschafts-id

jeder User hat eine eigene Freundeliste (User) mit denen er noch zusätzlich "live" chatten kann.

Ich habe in einem Buch gelesen, dass man ein Chat mithilfe von Ajax und PHP (MySQL) machen kann, dazu benötigt man eine Datenbank mit den Feldern from, message, time. Könnte man diese nicht auch erstellen, aber noch das Feld Freundschafts-id hinzufügen.
Man könnte doch eine Liste der Freunde haben, jeder Freundesnamen verlinkt auf den Chat mit ihm. Ungefähr so(?):
chat.php?id=<?=$freundschafts-id?>

Natürlich wären alle privaten Nachrichten (auch Chat) verschlüsselt!

05.08.2008 08:28

5 Jörg Kruse

So ganz verstehe ich deine Frage nicht. Was möchtest du denn für einen Chat erstellen - wo nur jeweils zwei Freunde miteinander chatten?

Falls es weniger um die Frage von Login und dessen Absicherung geht, sondern mehr allgemein um die Programmierung eines Chats, wäre es denke ich aber besser, hierfür einen eigenen Thread zu eröffnen

05.08.2008 12:35 | geändert: 05.08.2008 12:36

6 Tilman

Hallo Jörg,

so viel ich gehört habe, ist der Webseitenbetreiber für den Inhalt in öffentlichen Foren und Chats verantwortlich. Da ich aber nicht immer Zeit habe, um den Inhalt eines Chatrooms zu kontrollieren, würde ich lieber einzelne Chats haben.

Nein, mir gehts (in diesem Thread) nicht darum, wie man einen Chat macht. Mir gehts eher um die allgemeine Planung.

05.08.2008 12:53

7 Jörg Kruse

Ich habe den Titel des Threads mal angepasst

Zu den EInzel-Chats:

Ich habe in einem Buch gelesen, dass man ein Chat mithilfe von Ajax und PHP (MySQL) machen kann, dazu benötigt man eine Datenbank mit den Feldern from, message, time.

Dann würdest du hier auch noch ein Feld "to" benötigen. Ein Chat zwischen A und B beinhaltet dann Messages mit to = A und from = B oder to = B und from = A

05.08.2008 13:05

8 Tilman

Danke! Aber könnte man das Feld "to" nicht auch weglassen?
Durch den Freundschafts-id könnte weiß man ja, dass z.B. Freund A und Freund B miteinander chatten. Das Feld "from" wird doch nur dafür benötigt, damit man sehen kann, wer was geschrieben hat. bsp.:
Freund A: text a
Freund B: text b

05.08.2008 13:19

9 Jörg Kruse

Durch den Freundschafts-id könnte weiß man ja, dass z.B. Freund A und Freund B miteinander chatten.

Wie sieht diese Freundschafts-ID denn aus - sie müsste dann ja sowohl A als auch B enthalten - wäre also eine Art Doppel-ID. Denn sonst könntest du den Chat A-B nicht von A-C und B-C unterscheiden

Das Feld "from" wird doch nur dafür benötigt, damit man sehen kann, wer was geschrieben hat. bsp.:

Freund A: text a

Freund B: text b

Du musst auch wissen, an wen die Message geht. Eine Message von A zu C hat ebenso wenig etwas im Chat A - B zu suchen, wie eine Message von D zu B - also musst du sie also anhand der Merkmale to und form entsprechend selektieren können

05.08.2008 13:30 | geändert: 05.08.2008 13:30

10 Tilman

Wie sieht diese Freundschafts-ID denn aus - sie müsste dann ja sowohl A als auch B enthalten - wäre also eine Art Doppel-ID. Denn sonst könntest du den Chat A-B nicht von A-C und B-C unterscheiden
Von mir:
4. Tabelle (Friends)
friendx, friendy, freunde seit, freundschafts-id

Durch den Freundschafts-id wird abgerufen, welche zwei Freunde das sind.

Wie sieht diese Freundschafts-ID denn aus - sie müsste dann ja sowohl A als auch B enthalten - wäre also eine Art Doppel-ID.
Kann man das denn machen?

OK, allmählick komm ich ein bisschen durcheinander.
Also so, wie ich mir das vorstelle:
(Bitte korrigiere mich, falls was falsch oder nicht möglich ist!)
- jeder Freundschafts-id bildet doch eigentlich einen Chatroom
- Man ruft den Chatroom mithilfe des Freundschafts-id und des eigenen User-id auf.=> man kann nur auf diesen Chat zugreifen, wenn man in diesem Freundschafts-id steht. => durch den user-id werden die freunde jeweils als sender gekennzeichnet => empfänger ist durch freundschafts-id klar, oder?

05.08.2008 13:48 | geändert: 05.08.2008 14:08