Messages im Membereich schreiben!?

medico

Erfahrenes Mitglied
Hallo,

ich habe einen kleinen Membereich in dem sich eingetragenes User einloggen könnnen. Jeder User hat ein eigenes Profil, man kann sich aber auch Profile von anderen Usern anschauen. Nun möchte ich es gerne das man sich untereinader Nachrichten schreiben kann, mit einen eigenen Postfach und so....
Bin aber nicht der PHP Profi gibt es evtl. ein Tutorial oder kann es mir einer erklären? Wäre echt super!

Gruß Medico
 
Naja du nimmst einfach eine Tabelle in der die Nachricht, Betreff, Absender und EmpfängeruserID drinsteht und Falgs wie gelesen o.ä. was du halt brauchst.
Sendet der User A an User B eine PN, speicherst du nach überpürfen auf Vorhandensein des Empfängers die Beiden UserIDs, Subjects usw.
Beim Aufrufen des Postfachs liest du dann entsprechend die Einträge der tabelle aus, in der der Aktuelle User der Empfänger von Mails ist.
 
Ich könnte dir nen groben Aufbau sagen...

Erstmal brauchst du eine MySQL-Tabelle zum speichern der Daten mit folgenden Zeilen:
id,reciepment,sender,text,titel
In id wird eine eindeutige ID gespeichert, in reciepment wird die ID des Empfängers gespeichern, in sender die ID des Senders, in Text wird der eingegebene Text gespeichert, das Feld titel enthält lohischerweise den Betreff/Titel der Nachricht.

Jetzt baust du dir ein Script zum senden wo der User eine Liste der anderen User hat. In der Liste kann man dann einen User auswählen. Nach Eingabe des Textes und des Betreffs wird das Formular abgeschickt und in die Datenbank eingefügt.
Nun brauchst du ein Script welche alle Nachrichten eines Users auslesen.
User XY möchte seine Nachrichten abrufen: Dazu werden alle nachrichten ausgelesen welche im Feld reciepment die ID des Users XY haben.

Hui...wie du siehst ist das für einen "Newb" nicht so das einfachste, versuch macht aber bekanntlich klug ;-)

PS. Ich werde dir hier nichts vorcoden (ich denke das macht auch kein anderer hier) - Aber wenn du einen Ansatz hast und irgendwo ein konkretes Problem hast und nicht weiterkommst, kannste gerne fragen...

[edit]Und schon wieder war den BenBen schneller ;-)[/edit]
 
Hallo,

danke an euch beiden. Nein Vorcoden soll mir keiner was ich will es ja lernen.
Wenn ich mir das so jetzt überlege, ist das doch garnicht so schwer.
Werde ich mal probieren.

Danke noch mal!:-)

Gruß Medico
 
Die Probleme kommen dann erst später wenn man schon ziemlich weit ist. Die hier beschriebene Methode ist sicherlich die einfachste, da die Nachricht somit nur einmal in der Datenbank steht. Somit steht sie automatisch bei einem Benutzer im Ausgang und bei dem anderen im Eingang. Das ist ja genau das was wir wollen. Jetzt mach dir mal gedanken was passiert wenn der eine Benutzer die Nachricht aus seinem Eingang löscht.
 
Er wollte ja nur verschicken und einen Eingang haben, keinen Ausgang ;)

In dem Falle, dass man diese tabelle auch zum Postausgang verwenden
möge ist das natürlich klar, dass man beim Löschen aus dem Eingang auch aus des anderen Ausgang löscht und umgekehrt....
 
Die Probleme kommen dann erst später wenn man schon ziemlich weit ist. Die hier beschriebene Methode ist sicherlich die einfachste, da die Nachricht somit nur einmal in der Datenbank steht. Somit steht sie automatisch bei einem Benutzer im Ausgang und bei dem anderen im Eingang. Das ist ja genau das was wir wollen. Jetzt mach dir mal gedanken was passiert wenn der eine Benutzer die Nachricht aus seinem Eingang löscht.

Nichts leichter als das...
Du nimmst einfach zwei weitere Felder: sdel und rdel

Wenn ein User dann die Nachricht löschen möchte wird diese Flag auf 1 gesetzt, diese dient dann als Filter bei der Anzeige...
Wenn beide auf 1 stehen wird die Nachricht endgültig gelöscht...

Sollte doch nicht sooo schweer sein - ein bisschen Phantasie und denn gehts ;-)
 
Original geschrieben von Lars Michelsen
Nichts leichter als das...
Du nimmst einfach zwei weitere Felder: sdel und rdel

Wenn ein User dann die Nachricht löschen möchte wird diese Flag auf 1 gesetzt, diese dient dann als Filter bei der Anzeige...
Wenn beide auf 1 stehen wird die Nachricht endgültig gelöscht...

Sollte doch nicht sooo schweer sein - ein bisschen Phantasie und denn gehts ;-)

Ich habe eine andere Lösung. Heißt ja nicht, dass ich die Lösungen dafür nicht weiß. Ich speichere Lieber die Nachricht einfach zweimal und vertausche Empfänger und Absender. Ist dann zwar mehr Speicherverbrauch, war aber bisher sehr flexibel.
 
Dafür hat Lars den Nachteil (bzw. seine Lösung), das wenn die Nachricht physikalisch aus der DB soll muss noch irgendein Prozess drüberlaufen und schauen wo ldel und redl 0 sind (denn an die Lösung hatte ich vorhin auch gedacht)
 
Zurück