Vallyan je suis d'accord avec toi, dans ce cas il reste les tâches Cron mais je n'est aucune idée de comment sa fonctionne. Alors je fais avec se que je connais un peu mieux pour le moment. exothermique, oui on m'avais déjà conseiller d'utiliser mysqli ou pdo plutôt que mysql. Mais je trouve mysql plus simple donc je l'utilise encore en attendant que j’apprenne pdo. En effet ma fonction kick s’exécute pas. [code]if(data.erreur=="ok"){ window.reload(); } else{ alert(data.erreur); }[/code] J'ai mis ceci, sa devrais m'afficher un message d'erreur toute les 2secondes normalement. Et aucun message d'erreur. Voici mon js "tchat.js" [code] var url="tchatAjax.php"; var lastid=0; var timer=setInterval(getMessages,2000); var timerk=setInterval(kick,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(); kick(); $("#tchatForm form input.message").val(""); } else{ alert(data.erreur); } timer=setInterval(getMessages,2000); hideLoader(); },"json"); return false; }) }); function kick(){ $.post(tchat.php,{fonction:"kick"},function(data){ if(data.erreur=="ok"){ location.reload(); } else{ alert(data.erreur); } },"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('
'); (".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\* ) ) { methods.scrollDown.apply( elements\* ); } } }, 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 ); [/code] Merci de votre aide.