Tchat ajax/php fonction kick

Résolu/Fermé
florire
Messages postés
149
Date d'inscription
lundi 15 juillet 2013
Statut
Membre
Dernière intervention
8 mars 2020
- 29 mars 2014 à 18:02
florire
Messages postés
149
Date d'inscription
lundi 15 juillet 2013
Statut
Membre
Dernière intervention
8 mars 2020
- 2 avril 2014 à 17:54
Bonjour,

J'ai fais un tchat en ajax/php où il faut passer par une identification pour pouvoir l'utilisé.

Pour savoir si un utilisateur est administrateur, modérateur ou membre j'utilise:
$_SESSION['Auth']['perms'] = admin, modo ou membre


J'aimerais ajouté une fonction "kick". Je pense déclencher cette action en envoyant un message "/kick pseudo" comme sur la plupart des tchat.(si vous avez d'autre idée je suis preneur)

Cette fonction aurait pour but de déconnecté le membre.(soit en le redirigeant vers la page "logout.php" soit un autre moyen)

Je vous remercie de votre aide.

tchat.js:
var url="tchatAjax.php";
var lastid=0;
var timer=setInterval(getMessages,2000);

$(function(){
    $("#tchatForm form").submit(function(){
        clearInterval(timer)
        showLoader("#tchatForm");
        var message = $("#tchatForm form input.message").val();
        $.post(url,{action:"addMessage",message:message},function(data){
            if(data.erreur=="ok"){
                getMessages();
                $("#tchatForm form input.message").val("");
            }
            else{
                alert(data.erreur);
            }
            timer=setInterval(getMessages,5000);
            hideLoader();
        },"json");
        return false;
    })
});


function getMessages(){
    $.post(url,{action:"getMessages",lastid:lastid},function(data){
            if(data.erreur=="ok"){
                $("#tchat").append(data.result);
                lastid=data.lastid;
            }
            else{
                alert(data.erreur);
            }
        $('#tchat').manageScrollbar({timer: 2000, acceptDiff: 93});},"json");
        return false;
}


function showLoader(div){
    $(div).append('<div class="loader"></div>');
    $(".loader").fadeTo(500,0.6);
}


function hideLoader(){
    $(".loader").fadeOut(500,function(){
        $(".loader").remove();
    });
}


(function( $ ){
    var settings = new Object();
    var methods = {
        init : function( options ) { 
            settings = $.extend( {
                timer: 2000,
                acceptDiff: 80
            }, options);
            elements = new Array();
            this.each(function(){
                var element = this;
                elements.push(element);
            });
            var interval = methods.initInterval.call( this, elements );
        },
        initInterval : function ( elements ) { 
            return setInterval(function (){
                for(var i in elements) {
                    if ( methods.needToScrollDown.apply( elements[i] ) ) {
                        methods.scrollDown.apply( elements[i] );
                    }
                }
            }, settings.timer);
        },
        scrollDown : function () { 
            $(this).scrollTop($(this)[0].scrollHeight);            
        },
        needToScrollDown : function () {
            return ($(this).height() + $(this).scrollTop() >= $(this)[0].scrollHeight * settings.acceptDiff / 100);
        }
    };
    $.fn.manageScrollbar = function( method ) {
        if ( methods[method] ) {
            return methods[ method ].apply( this, Array.prototype.slice.call( arguments, 1 ));
        } else if ( typeof method === 'object' || ! method ) {
            return methods.init.apply( this, arguments );
        } else {
            $.error( 'Method ' +  method + ' does not exist on jQuery.manageScrollbar' );
        }
    };
})( jQuery );


tchatAjax.php:

<?php
session_start();
require("../connect.php");
$d =array();

if(!isset($_SESSION['Auth']['pseudo']) || empty($_SESSION['Auth']['pseudo']) || !isset($_POST["action"])){
    $d["erreur"] = "Vous devez être connecté pour utiliser le tchat";
}
else{
    
    extract($_POST);
    $pseudo = mysql_escape_string($_SESSION['Auth']['pseudo']);
    $message = mysql_escape_string($message);
    /**
     * Action : addMessage
     * Permet l'ajout d'un message
     **/
    if($_POST["action"]=="addMessage" && !empty($message)){

        $sql = "INSERT INTO messages(pseudo,message,date,ip) VALUES('$pseudo','$message',".time().",'".$_SESSION['Auth']['ip']."')";
        mysql_query($sql) or die(mysql_error());
        $d["erreur"] ="ok";
    }
    
    
    /**
     * Action : getMessages
     * Permet l'affichage des dernier messages
     **/
    if($_POST["action"]=="getMessages"){
        $lastid =floor($lastid);
        $sql ="SELECT * FROM messages WHERE id>$lastid ORDER BY date ASC";
        $req=mysql_query($sql) or die(mysql_error());
        $d["result"]="";
        $d["lastid"]=$lastid;
        while($data=mysql_fetch_assoc($req)){

$message=htmlspecialchars($data["message"]);

$message=preg_replace('#\[b\](.*)\[/b\]#Usi', '<b>$1</b>',$message);
$message=preg_replace('#\[i\](.*)\[/i\]#Usi', '<i>$1</i>',$message);
$message=preg_replace('#\[u\](.*)\[/u\]#Usi', '<u>$1</u>',$message);
$message=preg_replace('#\[color=(.*)\](.*)\[/color\]#Usi', '<font color="$1">$2</font>',$message);
$message=preg_replace('#\[s\](.*)\[/s\]#Usi', '<s>$1</s>',$message);
$message=preg_replace('#\[img\](.*)\[/img\]#Usi', '<img src="$1"/>',$message);
$message=preg_replace('#\[url\](.*)\[/url\]#Usi', '<a href="$1">$1</a>',$message);
$message=preg_replace('#\[url=(.*)\](.*)\[/url\]#Usi', '<a href="$1">$2</a>',$message);
$message=preg_replace('#\[hr\](.*)#Usi', '<p>$1</p>',$message);


$smileysPath="smilies/";
if(file_exists($smileysPath."smileys.php")){
	  //les smileys
	  include $smileysPath."smileys.php";
	  foreach($phpbb_smilies as $smile){
	    $message=str_replace($smile['code'],'<img src="'.$smileysPath.$smile['smiley_url'].'" alt="'.$smile['smiley_url'].'"/>',$message);
	  }
	}

$sql1 = "SELECT * FROM users WHERE pseudo='".$data["pseudo"]."'";
            $req1 = mysql_query($sql1) or die(mysql_error());
            $d1 = array();
            while($data1 = mysql_fetch_assoc($req1)){
                $d1[] = $data1;
            }
            for($i1=count($d1)-1;$i1>=0;$i1--){ 

            switch ($d1[$i1]["perms"]) {
            case 'admin': $couleur = "#FFAF0F"; break;
            case 'membre': $couleur = "#0EE85A"; break;
            case 'modo': $couleur = "#4192D1"; break;

            default: $couleur = "black"; // Les autres cas 
            break; // On fait rien
            }
            }


            $d["result"].='<p><span class="chat-time" title="'.date("d/m/y H:i:s",$d[$i]["date"]).'">['.date("H:i:s",$data["date"]).'] </span><font color="'.$couleur.'"><strong>'.$data["pseudo"].'</strong></font>: '.$message.'</p>';
            $d["lastid"]=$data["id"];
        }
        $d["erreur"]="ok";
    }
        
}

echo json_encode($d);
?>

2 réponses

florire
Messages postés
149
Date d'inscription
lundi 15 juillet 2013
Statut
Membre
Dernière intervention
8 mars 2020
7
31 mars 2014 à 16:15
UP

Au moins est ce que c'est possible ?
0
florire
Messages postés
149
Date d'inscription
lundi 15 juillet 2013
Statut
Membre
Dernière intervention
8 mars 2020
7
2 avril 2014 à 17:54
UP !
0