Einer Session von einer anderen Session Daten senden !!!

Alles, was PHP betrifft, kann hier besprochen werden.

Einer Session von einer anderen Session Daten senden !!!

Postby Zerberus03 » 15. October 2008 11:04

:oops:

Hallo Leute, hab da ein Anfänger Problem....
Ich verwalte meine User über Session, nun möchte ich folgendes Ausführen:

User 1 möchte daten an user 2 senden...
Session_id von user 1 und User 2 sind bekannt
Wie erreiche Ich es das User 2 (wenn beide online sind)
sofort die Daten erhält und bei Text auch lesen kann...

Meine ganzen Versuche scheiterten :cry:

Im Voraus mal vielen Dank.
Euer Zerberus03
User avatar
Zerberus03
 
Posts: 9
Joined: 22. March 2008 18:55
Location: Mannheim

Postby Nobbie » 15. October 2008 11:56

Sessions sind nicht dazu geeignet, Daten zwischen verschiedenen Usern (und verschiedenen "Sesssions") auszutauschen.

Du müßtest Deine Anforderung ggf. genauer beschreiben (einfach mal sagen, was Du erreichen möchtest), ohne mit Sessions zu argumentieren - was sollen die User machen? Dann wird sich bestimmt eine Lösung finden lassen - aber mit Sessions ist es der falsche Weg.
Nobbie
 
Posts: 13171
Joined: 09. March 2008 13:04

Postby Zerberus03 » 15. October 2008 14:52

hi, was ich erreichen möchte ist folgendes,
Ein user soll einem anderen eine sofortnachricht direkt senden können,
zb.: wie bei flüstern im chat

oder User 1 sieht user 2 ist online, und möchte im mitteilen er ist nun im chat und wartet....

sowas soll es im übertragenen sinne sein....
nun möchte ich halt erreichen as sich user welche Online sind auch in sofortnachrichten (was für ein Wort :? :P ) schreiben können.

LG Zerberus
User avatar
Zerberus03
 
Posts: 9
Joined: 22. March 2008 18:55
Location: Mannheim

Postby Xardas der Dunkle » 15. October 2008 17:37

Du musst die Benutzer online verwalten, z.B. in einer Datenbank.
D.h. meldet sich ein Benutzer an, muss in der DB ein Eintrag erfolgen, mit der entsprechenden SessionID (damit diese Daten nicht für immer in dieser Tabelle bleiben, müsstest du dafür sorgen, das Datensätze die seit X-Minuten unverändert sind, wieder gelöscht werden).

Wenn ein Benutzer einem anderen nun eine Nachricht senden möchte, müsstest du diese Nachricht nun wiederum in der DB speichern mit einem verweis auf den Empfänger und den Absender.
Wenn der Empfänger nun die Seite neuläd, müsstest du anhand seiner SessionID feststellen, das die Nachricht für ihn ist.

Das ist der offizielle Weg um so etwas umzusetzen. Bei diesem Forum z.B. ergibt sich das bereits daraus, das jeder Benutzer beim anmelden eben eine eindeutige ID bekommt, der dann eben bei jedem login eine SessionID zugeordnet wird.

Wobei anzumerken ist, für Chats ist PHP nicht wirklich geeignet.
User avatar
Xardas der Dunkle
 
Posts: 482
Joined: 09. March 2008 19:40
Location: /var/www

Postby csx » 19. October 2008 20:57

Datenbank wäre natürlich die beste Methode.

Falls du mit Datenbanken nicht so vertraut bis, geht es auch quick&dirty über das Dateisystem. Erstelle einfach ein Verzeichnis "usermsgs" oder so ähnlich und schreib dort die Nachrichten in einfache Textdateien rein.

Ich würde es jeweils unter [id_des_empfängers].txt abspeichern (also user_id oder session_id) und bei jedem Seitenaufruf fragst du mit is_readable('usermsgs/[meine_id].txt') ob nachrichten fuer den user vorliegen und liest sie ggf ein.
csx
 
Posts: 6
Joined: 19. October 2008 20:34
Location: Hamburg

Postby Xardas der Dunkle » 19. October 2008 21:35

Wieso readable o_Ô?
Entweder file_exists oder filesize, aber is_readable ist in dem Fall sinnfrei :p.
User avatar
Xardas der Dunkle
 
Posts: 482
Joined: 09. March 2008 19:40
Location: /var/www

Problem nun Teilweise gelöst.

Postby Zerberus03 » 21. October 2008 09:14

Hi Leute
erstmal vielen Dank !!! :lol:
hab über mysql die userdaten gespeichert , login und username,
hab nun über ne abfrageroutine es so geregelt das wenn länger nicht geschieht er entfernt wird.... Naja nicht das gelbe vom Ei...
aber es funkt wenigstens...

Biba euer Zerb... :wink:
User avatar
Zerberus03
 
Posts: 9
Joined: 22. March 2008 18:55
Location: Mannheim

Postby csx » 26. October 2008 00:55

Xardas der Dunkle wrote:Wieso readable o_Ô?
Entweder file_exists oder filesize, aber is_readable ist in dem Fall sinnfrei :p.


file_exists bedeutet nur, das die Datei existiert, aber ich weis nicht, ob ich sie auch lesen kann. Mit is_readable weis ich auch gleich, dass ich sie auch einlesen kann, sonst macht es genau das gleiche wie file_exists. Wieso sollte das "sinnfrei" sein?

noch besser waere wohl (is_readable($f) && filesize($f)>0), denn die datei koennte ja auch leer sein.
csx
 
Posts: 6
Joined: 19. October 2008 20:34
Location: Hamburg

Postby Xardas der Dunkle » 26. October 2008 14:09

Das mit dem readable ist Blödsinn.
Ganz einfach weil du auf das Verzeichnis wo du die Dateien hinpackst Lese- und Schreibrechte haben sollte, weil sonst das ganze System nicht funktionieren würde ...
Wo liegt der Sinn darin auf ein Verzeichnis das zum Nachrichtenaustausch gedacht ist die Leserechte zu verweigern?
User avatar
Xardas der Dunkle
 
Posts: 482
Joined: 09. March 2008 19:40
Location: /var/www


Return to PHP

Who is online

Users browsing this forum: No registered users and 16 guests