Fantasyelf
New member
[PHP] Profilogin und blueimp AJAXChat Session-Problem
Hallo,
ich verwende dieses Login
http://www.phpbuddy.eu/login-systeme-einfach-bis-profi.html?start=3 und
diesen Chat https://blueimp.net/ajax/.
Auf dieser Seite
http://sourceforge.net/apps/mediawiki/ajax-chat/index.php?title=Custom_integration_howto habe ich mich informiert, wie ich den Chat in meine Seite integrieren kann.
Ich habe folgende Dateien so bearbeitet:
Datei: lib/custom.php
Datei: lib/class/CustomAJAXChat.php
Zusätzlich habe ich das forceAutoLogin auf true gesetzt.
Auf den ersten Blick funktioniert alles prima. Klicke ich auf meiner Seite auf den Link zum Chat (das geht nur wenn man eingeloggt ist), wird der Chat in
einem Extra-Tab geöffnet. Man kann auch wunderbar untereinander chatten, aber wenn man nebenbei noch auf meiner Seite rumklickt, kann es sein, das die
Session-Variablen des Chats verloren gehen (habe mir $_SESSION ausgeben lassen). Das heißt, beim Chat sieht man die Loginseite. Per Klick auf "Login" ist
man zwar sofort wieder drin, aber das ist nicht gerade benutzerfreundlich. Es passiert auch nicht bei jedem Klick, aber es kann auch beim 1. Klick passieren. Es ist also zufällig.
Ich vermute, das es ein Problem mit den Requests ist, die kommen zeitgleich beim Server an und da gehen halt Session-Variablen verloren.
Oder der Fehler liegt doch woanders.
Ich würde mich über Eure Hilfe freuen.
Fantasyelf
Hallo,
ich verwende dieses Login
http://www.phpbuddy.eu/login-systeme-einfach-bis-profi.html?start=3 und
diesen Chat https://blueimp.net/ajax/.
Auf dieser Seite
http://sourceforge.net/apps/mediawiki/ajax-chat/index.php?title=Custom_integration_howto habe ich mich informiert, wie ich den Chat in meine Seite integrieren kann.
Ich habe folgende Dateien so bearbeitet:
Datei: lib/custom.php
PHP:
session_start();
Datei: lib/class/CustomAJAXChat.php
PHP:
function getValidLoginUserData()
{
if ($_SESSION['angemeldet'] == true AND $_SESSION['bengruppe'] < 6)
{
$userData=array();
$userData['userID']=$_SESSION['benutzerid'];
$userData['userName']=$this->trimUserName($_SESSION['chatname']);
if ($_SESSION['bengruppe'] == 1)
{
$userData['userRole']=AJAX_CHAT_ADMIN;
}
if ($_SESSION['bengruppe'] == 2)
{
$userData['userRole']=AJAX_CHAT_MODERATOR;
}
if ($_SESSION['bengruppe'] == 5)
{
$userData['userRole']=AJAX_CHAT_USER;
}
if ($userData['userRole'] == "") $userData['userRole']=AJAX_CHAT_GUEST;
return $userData;
}
else
{
// Guest users:
return $this->getGuestUser();
}
}
function &getChannels()
{
if($this->_channels === null)
{
$this->_channels = array();
if ($_SESSION['bengruppe'] == 1)
{
$this->_channels["Öffentlicher_Raum"]=0;
$this->_channels["Raum_für_Admins"]=1;
}
if ($_SESSION['bengruppe'] == 2)
{
$this->_channels["Öffentlicher_Raum"]=0;
}
if ($_SESSION['bengruppe'] == 5)
{
$this->_channels["Öffentlicher_Raum"]=0;
}
}
return $this->_channels;
}
Zusätzlich habe ich das forceAutoLogin auf true gesetzt.
Auf den ersten Blick funktioniert alles prima. Klicke ich auf meiner Seite auf den Link zum Chat (das geht nur wenn man eingeloggt ist), wird der Chat in
einem Extra-Tab geöffnet. Man kann auch wunderbar untereinander chatten, aber wenn man nebenbei noch auf meiner Seite rumklickt, kann es sein, das die
Session-Variablen des Chats verloren gehen (habe mir $_SESSION ausgeben lassen). Das heißt, beim Chat sieht man die Loginseite. Per Klick auf "Login" ist
man zwar sofort wieder drin, aber das ist nicht gerade benutzerfreundlich. Es passiert auch nicht bei jedem Klick, aber es kann auch beim 1. Klick passieren. Es ist also zufällig.
Ich vermute, das es ein Problem mit den Requests ist, die kommen zeitgleich beim Server an und da gehen halt Session-Variablen verloren.
Oder der Fehler liegt doch woanders.
Ich würde mich über Eure Hilfe freuen.
Fantasyelf
Zuletzt bearbeitet: