ilch Forum » Ilch Clan 1.1 » Module und Modifikationen » Messenger Sonderzeichen

Geschlossen
  1. #1
    User Pic
    H0walD Mitglied
    Registriert seit
    26.10.2011
    Beiträge
    71
    Beitragswertungen
    18 Beitragspunkte
    Hallo Zusammen

    Nun komme ich auch wieder einmal mit einem Problem wo ich nicht weiter komme.
    Ich habe bei einem Kollegen den Instant Messenger Installiert und über die Online Box integriert, der Messenger läuft bis auf die User die ein Sonderzeichen im Namen haben I.O.

    Nun haben Sie aber viele User die Ihr Clantag im Namen haben und bei diesen Usern lässt sich der Messenger nicht öffnen.
    Wenn ich bei den gleichen Usern per Webseite Untersuchen die Sonderzeichen wegnehme dann öffnet sich der Chat sofort.

    Hierbei handelt es sich um diese Zeichen [ { | .
    Die werden ja oft für Clantags verwendet.

    Nun weiß ich aber nicht wie ich diesen Bug beheben kann .
    Ich denke mal das ich dies in der func suchen muss.

    evtl. weiß ja jemand von euch Rat oder hat das selbe Problem schon mal gehabt.


    hier mal die func/messenger.php
    Denke mal das ich da am richtigen Ort suche
    <?php
    
    /*
    
    Copyright (c) 2009 Anant Garg (anantgarg.com | inscripts.com)
    Modified 2009 Florian Koerner (ilch.de | Flomavali)
    
    This script may be used for non-commercial purposes only. For any
    commercial purposes, please contact the author at 
    anant.garg@inscripts.com
    
    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
    OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
    HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
    WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
    FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
    OTHER DEALINGS IN THE SOFTWARE.
    
    */
    
    defined ('main') or die ( 'no direct access' );
    
    if ( loggedin() ) {
    	if ($_GET['messenger'] == "chatheartbeat") { chatHeartbeat(); } 
    	if ($_GET['messenger'] == "sendchat") { sendChat(); } 
    	if ($_GET['messenger'] == "closechat") { closeChat(); } 
    	if ($_GET['messenger'] == "startchatsession") { startChatSession(); } 
    
    	if (!isset($_SESSION['chatHistory'])) {
    		$_SESSION['chatHistory'] = array();	
    	}
    
    	if (!isset($_SESSION['openChatBoxes'])) {
    		$_SESSION['openChatBoxes'] = array();	
    	}
    } else {
    	if ($_GET['messenger'] == "chatheartbeat") {
    		if ( isset ( $_SESSION['guestblock'] ) ) {
    			echo '{"items":[{"s":"0","i":"'.$_SESSION['guestblock'].'","f":"System","m":"<i>Es können nur Mitglieder an dieser Sitzung teilnehmen.</i>"}]}';
    			unset( $_SESSION['guestblock'] );
    		} else {
    			echo '{"items":[]}';
    		}
    	}
    	if ($_GET['messenger'] == "sendchat") {
    		$_SESSION['guestblock'] = escape($_POST['eid'],'integer');
    		echo '1';
    	} 
    	if ($_GET['messenger'] == "startchatsession") {
    		echo '{"username":"Gast","items":[]}';
    	}
    	
    	if (isset($_SESSION['chatHistory'])) {
    		unset($_SESSION['chatHistory']);	
    	}
    
    	if (isset($_SESSION['openChatBoxes'])) {
    		unset($_SESSION['openChatBoxes']);	
    	}
    	exit;
    }
    
    function chatHeartbeat() {
    	
    	$sql = 'SELECT * FROM `prefix_messenger` WHERE (`eid` = '.$_SESSION['authid'].' AND `recd` = 0) ORDER BY `id` ASC';
    	$query = db_query($sql);
    	$items = '';
    
    	$chatBoxes = array();
    
    	while ($chat = db_fetch_assoc($query)) {
    		if (!isset($_SESSION['openChatBoxes'][$chat['aid']]) && isset($_SESSION['chatHistory'][$chat['aid']])) {
    			$items = $_SESSION['chatHistory'][$chat['aid']];
    		}
    
    		$chat['txt'] = sanitize($chat['txt']);
    
    		$items .= '{"s":"0","i":"'.$chat['aid'].'","f":"'.utf8_encode(get_n($chat['aid'])).'","m":"'.$chat['txt'].'"},';
    
    		if (!isset($_SESSION['chatHistory'][$chat['aid']])) {
    			$_SESSION['chatHistory'][$chat['aid']] = '';
    		}
    
    		$_SESSION['chatHistory'][$chat['aid']] .= '{"s":"0","i":"'.$chat['aid'].'","f":"'.utf8_encode(get_n($chat['aid'])).'","m":"'.$chat['txt'].'"},';
    			
    		unset($_SESSION['tsChatBoxes'][$chat['aid']]);
    		$_SESSION['openChatBoxes'][$chat['aid']] = $chat['sent'];
    	}
    
    	if (!empty($_SESSION['openChatBoxes'])) {
    		foreach ($_SESSION['openChatBoxes'] as $chatbox => $time) {
    			if (!isset($_SESSION['tsChatBoxes'][$chatbox])) {
    				$now = time()-strtotime($time);
    				$time = date('g:iA M dS', strtotime($time));
    
    				$message = "Sent at $time";
    				if ($now > 180) {
    						$items .= '{"s":"2","i":"'.$chatbox.'","f":"'.utf8_encode(get_n($chatbox)).'","m":"'.$message.'"},';
    
    					if (!isset($_SESSION['chatHistory'][$chatbox])) {
    						$_SESSION['chatHistory'][$chatbox] = '';
    					}
    
    					$_SESSION['chatHistory'][$chatbox] .= '{"s":"2","i":"'.$chatbox.'","f":"'.utf8_encode(get_n($chatbox)).'","m":"'.$message.'"},';
    					$_SESSION['tsChatBoxes'][$chatbox] = 1;
    				}
    			}
    		}
    	}
    
    	$sql = 'UPDATE `prefix_messenger` SET `recd` = 1 WHERE `eid` = '.$_SESSION['authid'].' AND `recd` = 0';
    	$query = db_query($sql);
    
    	if ($items != '') {
    		$items = substr($items, 0, -1);
    	}
    	
    	header('Content-type: application/json');
    	echo '{"items":['.$items.']}';
    	exit(0);
    }
    
    function chatBoxSession($chatbox) {
    	
    	$items = '';
    	
    	if (isset($_SESSION['chatHistory'][$chatbox])) {
    		$items = $_SESSION['chatHistory'][$chatbox];
    	}
    
    	return $items;
    }
    
    function startChatSession() {
    	$items = '';
    	if (!empty($_SESSION['openChatBoxes'])) {
    		foreach ($_SESSION['openChatBoxes'] as $chatbox => $void) {
    			$items .= chatBoxSession($chatbox);
    		}
    	}
    
    
    	if ($items != '') {
    		$items = substr($items, 0, -1);
    	}
    
    	header('Content-type: application/json');
    	echo '{"username":"'.$_SESSION['authname'].'","items":['.$items.']}';
    	exit(0);
    }
    
    function sendChat() {
    	$aid = $_SESSION['authid'];
    	$eid = escape($_POST['eid'],'integer');
    	$txt = escape($_POST['txt'],'string');
    
    	$_SESSION['openChatBoxes'][$eid] = date('Y-m-d H:i:s', time());
    	
    	$c_txt = sanitize($txt);
    
    	if (!isset($_SESSION['chatHistory'][$_POST['eid']])) {
    		$_SESSION['chatHistory'][$_POST['eid']] = '';
    	}
    
    	$_SESSION['chatHistory'][$_POST['eid']] .= '{"s":"1","i":"'.$eid.'","f":"'.utf8_encode(get_n($eid)).'","m":"'.$c_txt.'"},';
    
    	unset($_SESSION['tsChatBoxes'][$_POST['eid']]);
    
    	$sql = 'INSERT INTO `prefix_messenger` (`aid`,`eid`,`txt`,`sent`) VALUES ('.$aid.','.$eid.',"'.$txt.'",NOW())';
    	db_query($sql);
    	echo "1";
    	exit(0);
    }
    
    function closeChat() {
    
    	unset($_SESSION['openChatBoxes'][$_POST['chatbox']]);
    	
    	echo "1";
    	exit(0);
    }
    
    function sanitize($text) {
    	$text = htmlspecialchars($text, ENT_QUOTES);
    	$text = str_replace("\n\r","\n",$text);
    	$text = str_replace("\r\n","\n",$text);
    	$text = str_replace("\n","<br>",$text);
    	return $text;
    }


    Besten Dank für eure Hilfe


    verwendete ilch Version: 1.1 P


    Zuletzt modifiziert von H0walD am 21.07.2015 - 08:21:03
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    FeTTsack Hall Of Fame
    Registriert seit
    27.06.2012
    Beiträge
    188
    Beitragswertungen
    26 Beitragspunkte
    kannst du mir mal den link zu der SEite zeigen.

    ploppt dort das fenster des Messengers nicht auf ??
    oder geht das schreiben nicht ?

    bsp.
    externer Link

    hier hab ich 2 User angelegt [test]1 und {test}2
    beiden kann man schreiben.

    leider hatte ich bei mir im messege-modul einiges verändert...
    währe dies eine Lösung für dich, wenn ich meinen Messenger zusammenpack und als erweiterte Version zur Verfügung stelle ??

    dort kann man auch links verschicken usw.

    ---
    ps.
    ich glaub du musst in der includes/js/messenger.js nachschauen lächeln

    sry für die nicht hilfreiche hilfe...

    lg fetti
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    H0walD Mitglied
    Registriert seit
    26.10.2011
    Beiträge
    71
    Beitragswertungen
    18 Beitragspunkte
    Das Fenster blobt nicht auf.
    Bei allen anderen Usern aber schon.

    Natürlich könntest du mir auch das packet zusammen stellen, dann könnte ich es mal testen.

    Ich müsste dann nur noch den Sound und den timestam einfügen bzw. anpassen.

    Sorry bin grad unterwegs und daher nur schnell mit dem Handy geschrieben

    externer Link


    Zuletzt modifiziert von H0walD am 21.07.2015 - 15:20:21
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Module und Modifikationen

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten