Ich versuch es mal:
Du brauchst prinzipiell eine Tabelle (wobei man sich überlegen könnte, es aufzuteilen) mit Spalten für
- ID (Primärschlüssel)
- Datum
- Sender (bspw. Fremdschlüssel auf die ID in der User-Tabelle)
- Empfänger (wie Sender)
- Betreff (Optional) (Varchar)
- Inhalt (Text)
- Sender-Status (könnte "gesendet", "gelöscht", was da sonst noch für Status sein könnten)
- Empfänger-Status ("neu", "gelesen", "gelöscht", was da sonst noch für Status sein könnten)
Dann kannst du anfangen, ein Script zu bauen, was man zum Senden verwenden kann, sprich, Formular, dann Formular-Verarbeitung, Auslesen der Session für den angemeldeten Benutzer, Speichern der Daten in der Datenbank.
Danach brauchst du zwei Scripts.
Eines für das Auflisten (evtl. Tabellen-Form) der eingegangen Nachrichten. Dazu liest du die ID, den Betreff, den Status und das Datum aus der Datenbank aus, bei Datensätzen, denen die Empfänger-ID der in der Session liegenden Benutzer-ID (also dem angemeldeten Benutzer) entspricht, und listest Datensatz nach Datensatz pro Tabellen-Zeile auf. Der Betreff wird verlinkt (ID als GET-Parameter) mit Ziel auf das zweite Script:
Im zweiten Script liest du aus $_GET die Nachrichten-ID und zur Sicherheit noch die Benutzer-ID aus der Session. Beides übergibst du an den SELECT, der den kompletten Datensatz für die Nachrichten-ID ausliest. Anschließend setzt du ggf. den Status auf "gelesen" um. Dann stellst du den Nachrichten-Inhalt dar und ein paar Aktions-Links für Löschen und was du sonst noch brauchst.
Dann kannst du evtl. noch ein drittes Script bauen, was die Aktions-Links verarbeitet.
So würde ich es lösen. Wenn du Fragen zu konkreten Problem hast, gern her damit
