Suche Tutorial für Persöhnliche Nachrichten System

Benjamin5

Mitglied
Ich möchte gerne das sich user Nachrichten über meine seite Schicken können. Die nachrichten sollen in der DB gespeichert werden und der Empfänger soll dann sehen das er eine neue Nachricht hat. Ich habe keine Idee wie ich das Umsetzen soll. Kennt jemand ein Gutes Tutorial oder könnte mir eins machen?

Die User sind auch in der Datenbank gespeichert.
 
Das zu realisieren ist nicht so schwer, wie es im ersten Moment aussieht.

Du brauchst eine Tabelle mit mindestens den folgenden Spalten:

ID (int), userFrom(int), userTo(int), subject(varchar), body(text), sendtime(datetime), readen(tinyint)

Wenn UserA an UserB eine Nachricht schicken will, kommt einfach die ID von UserA in die Spalte userFrom, die ID von UserB in die Spalte userTo, subject und body, sowie sendtime erklären sich von selbst. readen wird auf 0 gesetzt.

Bei jedem Seiten Aufruf checkst du, ob ein Eintrag in der Tabelle ist, bei dem userTo der ID des angemeldeten Users entspricht und readen auf 0 steht. Wenn ja, hat der angemeldete eine an ihn adressierste neue Nachricht. Wenn er sie liest, wird readen auf 1 gesetzt.

Das ist der grundsätzliche Aufbau.
 
Ok, soweit so gut, jetzt habe ich die Datenbank, aber wie Baue ich das jetzt auf meiner seite mit PHP ein? das er sein Postfach prüfen kann ob da was drinne ist?
Ich arbeite mit einem Sessionssystem, kann man das irgendwie mit dafür verwenden?
 
Ja, das Session-System ist recht sinnvoll dafür, da deine User-ID idealerweise (hoffentlich) in der Session gespeichert wird. Damit haste schon mal einen Teil, um herauszufinden, ob du Nachrichten hast. Folgende Annahme:

Deine User-ID: 25

Meine User-ID: 8245

Ich schicke dir Post, es wird also ein Datensatz angelegt, der folgendermaßen aufgebaut ist:

userFrom: 8245
userTo: 24
subject: "Test"
body: "Ein wunderbarer Hello World in Nachrichten-Form"


Alles was du machen müsstest, um generell anzuzeigen, ob du Nachrichten hast (wir orientieren uns mal an dem Beispiel von tutorials.de), ist ein SQL-Query, der folgendermaßen lautet:

"SELECT COUNT(*) AS count FROM nachrichten WHERE userTo = " . $_SESSION['userid'] . " AND readen = 0";

Das Problem ist, ich kann dir hier keine gültigen Queries geben, da ich gar keine Ahnung habe, wie dein Session-System aufgebaut ist. Daher musst du das natürlich an deine Bedürfnisse anpasssen.

Du hast nun im Ergebnis die Anzahl der ungelesenen Nachrichten an dich selbst und kannst die nun auf der Seite darstellen.
 
Ok, wenn ich das jetzt so einbaue wie du das gesagt hast dann sagt er mir nur an:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND readen = 0' at line 1
 
Das liegt vermutlich daran, das in der Session kein Eintrag userid ist. Daher steht dann im Query:

Code:
SELECT COUNT(*) AS count FROM nachrichten WHERE userTo = AND readen = 0

Das ist natürlich ein Syntax-Fehler, du müsstest erstmal die Struktur deiner Session-Variablen in Erfahrung bringen.

Verwendest du ein CMS?
 
Ok, entschuldigung ich habe die falsche Variabel genommen. Habe das jetzt ausgebessert, aber jetzt wenn eine Nachricht da ist, zeigt er mir das nicht an.
 
Ich zum beispiel arbeite so:

Posteingang, Postausgang

Im Posteingang kommen alle Nachrichten zum User
Im Postausgang sieht der User an wen er alles gesendet hat

So wie Saftmeister es schrieb ist es nur für den Posteingang bestimmt!

Aber reicht zumindestens fürs erste ;)
 
Zurück