Ouverture des portes du TCHAT

Répondre


Cette question vous permet de vous prémunir contre les soumissions automatisées et intensives effectuées par des robots indésirables.
Émoticônes
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :arrow: :| :mrgreen: :geek: :ugeek:

Le BBCode est activé
La balise [img] est activée
La balise [url] est activée
Les émoticônes sont activées

Relecture du sujet
   

Agrandir Relecture du sujet : Ouverture des portes du TCHAT

Re: Ouverture des portes du TCHAT

par Murdoc » sam. 13 mars 2010 18:21

Tout à fait d'accord avec toi Rick !!!!

Re: Ouverture des portes du TCHAT

par RiCK » sam. 13 mars 2010 15:06

techniquement je crois qu'il fonctionne très bien.

maintenant pour ce qui est du contenu il est faible, les chances que 2 personnes s'y rencontre sont minces.

Je privilégie le forum, mieux présenté et organisé, ce qui est écrit peut être lu par tous en différé (plus tard dans la journée ou la semaine).

Maintenant comme déjà dit plusieurs fois, en cas de "réunion organisée" - quizz, discussions - le tchat sera l'outil idéal

Re: Ouverture des portes du TCHAT

par Murdoc » sam. 13 mars 2010 14:51

Cela fait un mois que le tcha ta été créé.
Quel bilan peut-on faire ?

Re: Ouverture des portes du TCHAT

par Murdoc » sam. 6 mars 2010 20:14

Je suis sur le tchat !!!

Re: Ouverture des portes du TCHAT

par sylvain1888 » mar. 23 févr. 2010 13:31

RiCK a écrit :les smileys sont dedans :D
:D :D :D :D :D

Re: Ouverture des portes du TCHAT

par RiCK » lun. 22 févr. 2010 20:14

les smileys sont dedans :D

Re: Ouverture des portes du TCHAT

par Murdoc » sam. 20 févr. 2010 17:19

Cela saurait une bonne idée mais il faut laisser le temps à Sylvain 1888 de savourer sa splendide victoire n'oublions pas que c'était face à toi Rick.

Re: Ouverture des portes du TCHAT

par RiCK » sam. 20 févr. 2010 16:43

Pour moi le tchat est maintenant fini, les smileys, c'est pour plus tard

un petit Quizz Murdoc pour tester tout ça ? :D

Re: Ouverture des portes du TCHAT

par RiCK » ven. 19 févr. 2010 20:51

Bon ça a l'air de marcher ! A vous de me le dire. :mrgreen:

Pour ceux à qui ça parle, j'ai remplacer les belles et modernes requêtes AJAX en Javascript, par de vieux mais toujours très utiles iFrame. :roll:

Re: Ouverture des portes du TCHAT

par RiCK » jeu. 18 févr. 2010 19:49

:D :D :D J'ai trouvé une nouvelle idée assez simple :D :D :D
pas le temps d'essayer ça avant ce W-E, mais si ça marche.... 8-) 8-) :!: :!:
si ça ne marche pas .... :arrow: :? :?

Re: Ouverture des portes du TCHAT

par sylvain1888 » jeu. 18 févr. 2010 17:39

ça à pas l'air d'être facile Rick je te souhaite comme le dit Murdoc bonne chance

Re: Ouverture des portes du TCHAT

par Murdoc » jeu. 18 févr. 2010 11:51

Ok, c'est sympa de savoir !!!
Bonne chance pour la suite !!! ;) ;) ;)

Re: Ouverture des portes du TCHAT

par RiCK » mer. 17 févr. 2010 19:46

Ah ben je peux pas tout dévoiler non plus :D

Il y a plein de php dans mon code (voir tout en bas), mais pour interagir comme ça en live sans actualiser la page, on n'a pas le choix c'est Javascript & Ajax... et c'est ça qui fait ramer les navigateurs....

Re: Ouverture des portes du TCHAT

par Ricardo » mer. 17 févr. 2010 19:32

Ça doit être plus facile à coder en Php, non ? ^^

PS : Cette ligne ne doit pas vraiment marcher :lol:

Code : Tout sélectionner

         var pass = .................................................

Re: Ouverture des portes du TCHAT

par RiCK » mer. 17 févr. 2010 17:05

Quand j'aurai le temps ! je vous avez prévenu que c'était compliqué à réaliser.

J'ai essayé sous Internet Explorer 8 et effectivement comme tu l'as dit Murdoc, le logiciel commence à bugger après quelques minutes et finit par planter.... Sous Google Chrome ça n'a pas l'air d'aller beaucoup mieux.

Le tchat est fini dans le sens ou toutes les fonctionnalités que je voulais lui donner sont présentes, maintenant il est clair qu'il va falloir optimiser tout ça, pour que les ordinateurs ne plantent pas :D

En dessous je vous est mis un peu de code pour que vous puissiez avoir un aperçu de à quoi ressemble le tchat derrière la scène....

Code : Tout sélectionner

<script type="text/javascript">
	var BOUCLAGE = false;
	var textCouleur = "#000";
	var textGras = "";
	var textItalique = "";
	var insert = "text";
	
	function connexionTchat() {
		if( document.getElementById("nomTchat") && document.getElementById("passTchat") ) {
			var nom = document.getElementById("nomTchat").value;
			var pass = .................................................
		}
		else
			return false;
		var ajax;
		if(window.XMLHttpRequest) 
			ajax = new XMLHttpRequest();
		else 
		if(window.ActiveXObject)
			ajax = new ActiveXObject("Microsoft.XMLHTTP"); 
		if(ajax) {
			ajax.open('POST', '/pages/_connexionTchat.php', false);                  
			ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			ajax.send("nom="+nom+"&pass="+pass);
			
			if(ajax.readyState==4) {
				var response = ajax.responseText;
				var param = response.split("|||");
				document.getElementById("messageErreur").innerHTML = response;
				if( param[0] == "ok" ) {
					document.getElementById("formulaire").style.display = "none";
					document.getElementById("blocMembres").style.display = "block";
					document.getElementById("dialogue").style.display = "block";
					document.getElementById("affichageNomTchat").innerHTML = '<b>'+param[1]+' :</b>';
					document.getElementById("nomTchat").value = '';
					document.getElementById("passTchat").value = '';
					document.getElementById("messageTchat").focus();
					BOUCLAGE = true;
					boucleTchat(true);
				}
			}
		}
		else
			alert("Sorry but your browser don't support ajax");
		return false;
	}
	function envoyerTchat() {
		document.getElementById("messageTchat").focus();
		if( document.getElementById("messageTchat") && document.getElementById("messageTchat").value.replace(/^\s+|\s+$/g,"").length > 0 )
			var message = document.getElementById("messageTchat").value;
		else{
			return false;
		}
		document.getElementById("messageTchat").value = '';		
		message = message.replace(/&/g, "amp;");
		
		var ajax1;
		if(window.XMLHttpRequest) 
			ajax1 = new XMLHttpRequest();
		else 
		if(window.ActiveXObject)
			ajax1 = new ActiveXObject("Microsoft.XMLHTTP"); 
		if(ajax1) {
			ajax1.open('POST', '/pages/_envoyerTchat.php', false);                  
			ajax1.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			ajax1.send("type="+insert+"&message="+message+"&gras="+textGras+"&italique="+textItalique+"&couleur="+textCouleur);
			
			if(ajax1.readyState==4) {
				var response = ajax1.responseText;
				if( response == "ko" ) {
					document.getElementById("formulaire").style.display = "block";
					document.getElementById("blocMembres").style.display = "none";
					document.getElementById("dialogue").style.display = "none";
					document.getElementById("messageErreur").innerHTML = "";
					BOUCLAGE = false;
					return false;
				}
				else
				if( response.length > 1 && response != "ok" ) {
					alert(response);
					document.getElementById("messageTchat").value = message;
				}
			}
		}
		else
			alert("Sorry but your browser don't support ajax");
			
		actualiserTchat();
		return false;
	}
	function actualiserTchat() {
		if( document.getElementById("blocDialogue") && document.getElementById("blocDialogue").innerHTML.length > 30 )
			var actuelTchat = document.getElementById("blocDialogue").innerHTML.substr( document.getElementById("blocDialogue").innerHTML.indexOf('<i')+27, 19 ); //date et heure exacte
		else
			var actuelTchat = "nouveau";
		var ajax2;
		if(window.XMLHttpRequest) 
			ajax2 = new XMLHttpRequest();
		else 
		if(window.ActiveXObject)
			ajax2 = new ActiveXObject("Microsoft.XMLHTTP"); 
		if(ajax2) {
			ajax2.open('POST', '/pages/_actualiserTchat.php', false);                  
			ajax2.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			ajax2.send('ok='+actuelTchat);
			
			if(ajax2.readyState==4) {
				var response = ajax2.responseText;
				var rep = response.split("|||");
				if( rep[0] == "ok" ) {
					if( rep[1].length > 0 )
						document.getElementById("blocDialogue").innerHTML = rep[1]+document.getElementById("blocDialogue").innerHTML;
				}
				else
				if( rep[0] == "ko" ) {
					document.getElementById("formulaire").style.display = "block";
					document.getElementById("blocMembres").style.display = "none";
					document.getElementById("dialogue").style.display = "none";
					document.getElementById("messageErreur").innerHTML = "";
					BOUCLAGE = false;
				}
				else
				if( response.length > 1 )
					alert(response);
			}
		}
		else
			alert("Sorry but your browser don't support ajax");
	}
	function enligneTchat() {
		var ajax3;
		if(window.XMLHttpRequest) 
			ajax3 = new XMLHttpRequest();
		else 
		if(window.ActiveXObject)
			ajax3 = new ActiveXObject("Microsoft.XMLHTTP"); 
		if(ajax3) {
			ajax3.open('POST', '/pages/_enligneTchat.php', false);                  
			ajax3.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			ajax3.send("ok=ok");
			
			if(ajax3.readyState==4) {
				var response = ajax3.responseText;
				var rep = response.split("|||");
				if( rep[0] == "ok" )
					document.getElementById("blocMembres").innerHTML = '<b>Membres connectés :</b> <br/><br/>'+rep[1];
				else
				if( rep[0] == "ko" ) {
					document.getElementById("formulaire").style.display = "block";
					document.getElementById("blocMembres").style.display = "none";
					document.getElementById("dialogue").style.display = "none";
					document.getElementById("messageErreur").innerHTML = "";
					BOUCLAGE = false;
				}
				else
				if( response.length > 1 )
					alert(response);
			}
		}
		else
			alert("Sorry but your browser don't support ajax");		
	}
	function boucleTchat(enligne) {
		enligne = !enligne;
		if( BOUCLAGE == true )
			setTimeout( "boucleTchat("+enligne+")", 5000 );
		actualiserTchat(); 
		if( enligne ) 
			enligneTchat();		
		return false;
	}
	function afficherAideTchat() {
		if( !document.getElementById("aideTchat") )
			return false;
		var aide = document.getElementById("aideTchat");
		if( aide.style.display == "block" )
			aide.style.display = "none";
		else
			aide.style.display = "block";
		return false;
	}
	function TchatGras() {
		if( textGras == "" ) {
			textGras = "b";
			document.getElementById("textGras").style.color = "#B00";
			document.getElementById("textGras").style.borderColor = "#B00";
		}
		else {
			textGras = "";
			document.getElementById("textGras").style.color = "#444";
			document.getElementById("textGras").style.borderColor = "#444";
		}
		document.getElementById("messageTchat").focus();
		return false;
	}
	function TchatItalique() {
		if( textItalique == "" ) {
			textItalique = "i";
			document.getElementById("textItalique").style.color = "#B00";
			document.getElementById("textItalique").style.borderColor = "#B00";
		}
		else {
			textItalique = "";
			document.getElementById("textItalique").style.color = "#444";
			document.getElementById("textItalique").style.borderColor = "#444";
		}
		document.getElementById("messageTchat").focus();
		return false;
	}
	function TchatAfficherColor() {
		if( document.getElementById("paletteCouleurs").style.display == "block" ) {
			document.getElementById("paletteCouleurs").style.display = "none";
			document.getElementById("messageTchat").focus();
		}
		else
			document.getElementById("paletteCouleurs").style.display = "block";
		return false;
	}
	function TchatColor(choix) {
		textCouleur = choix;
		document.getElementById("textColor").style.color = choix;
		document.getElementById("textColor").style.borderColor = choix;
		document.getElementById("messageTchat").focus();
		TchatAfficherColor();
		return false;
	}
	function typeTchat(choixType) {
		document.getElementById("messageTchat").focus();
		document.getElementById("choixText").style.color = "#444";
		document.getElementById("choixText").style.borderColor = "#444";
		document.getElementById("choixImage").style.color = "#444";
		document.getElementById("choixImage").style.borderColor = "#444";
		document.getElementById("choixLien").style.color = "#444";
		document.getElementById("choixLien").style.borderColor = "#444";
		if( choixType == "image" ) {
			document.getElementById("choixImage").style.color = "#B00";
			document.getElementById("choixImage").style.borderColor = "#B00";		
		}
		else
		if( choixType == "url" ) {
			document.getElementById("choixLien").style.color = "#B00";
			document.getElementById("choixLien").style.borderColor = "#B00";
		}
		else {
			document.getElementById("choixText").style.color = "#B00";
			document.getElementById("choixText").style.borderColor = "#B00";
		}
		insert = choixType;
		return false;
	}	
</script>

<style type="text/css">
	.formulaireTchat {
		margin-top: 20px;
		display: block;
		float: left;
		background: url('images/tchat/fond.png') no-repeat center center; 
		height: 420px;
	}
	.rouleauTchat {
		display: block;
		float: left;
		border: 2px solid #B00;
		margin-top: 20px;
		padding: 5px;
		background: url('images/tchat/fond.png') no-repeat center 10px; 
		width: 570px;
		height: 400px;
		overflow: auto;
	}
	.rouleauTchat img{
		margin-left: 25px;
		max-width: 500px;
		max-height: 380px;
	}
	.rouleauTchat a{
		text-decoration: underline;
		color: #1a80b9;
	}
	.rouleauTchat a:hover{
		font-weight: normal;
		text-decoration: underline;
		color: #1a80b9;
	}
	.ecrireTchat {
		display: block;
		float: left;
		padding: 10px 0;
		width: 582px;
		height: 100%;
	}
	.boutonAideTchat {
		margin: 5px 0 0 420px;
		padding: 3px;
		text-align: center;
		display: block;
		float:left;
		width: 150px;
		height: 15px;
		cursor: pointer;
		font-size: 15px;
		color: #1a80b9;
		border: 2px solid #1a80b9;
	}
	.boutonAideTchat:hover {
		font-weight: bold;
		cursor: pointer;
	}
	.aideTchat {
		display: none;
		float:left;
		margin-top: -2px;
		color: #1a80b9;
		padding: 3px;
		width: 570px;
		height: auto;
		border: 2px solid #1a80b9;
	}
	.boutonStyle {
		display: block;
		float:left;
		margin: 5px;
		width: 14px;
		height: 14px;
		background: url('images/tchat/button.png') repeat-x;
		color: #444;
		border: 2px solid #444;
		text-align: center;
		cursor: pointer;
	}
	.boutonColor {
		width: 70px;
	}
	.paletteCouleurs {
		display: none;
		float:left;
		width: 430px;
		height: 100%;		
	}
</style>

<h1 style="text-align:center; color:#B00">
	MacGyver : le Tchat (<i>BeTa</i>)
</h1>
<div class="LeTiersDeGauche">
	<?php echo '
	<div id="blocMembres" style="display:'.$afficheDialogue.'; margin:80px 0 0 50px;">'; ?>
		<b>Membres connectés :</b> <br/>
	</div>
</div>
<div id="blocTchat" class="DeuxTiersDeDroite">	
	<div class="boutonAideTchat" onclick="afficherAideTchat();">
		Besoin d'Aide ?
	</div>
	<div id="aideTchat" class="aideTchat">
		<h4>Pré-requis :</h4>
		Pour participer au tchat, vous aurez besoin d'un compte sur le forum ainsi qu'une version récente de votre navigateur web, acceptant les requêtes AJAX, les cookies, et le JavaScript. Le tchat étant en version beta, il n'a été testé que sur Internet Explorer 7 et +, et Mozila Firefox 3 et +. L'affichage des personnes en ligne pose problème avec Google Chrome.
		<br/>
		<h4>J'ai un message d'erreur à la connexion :</h4>
		Pour pouvoir se connecter au tchat, vous devez disposer d'un compte sur le forum du site, qui soit validé et actif. Essayez donc de vous connecter au forum. Si cette opération fonctionne réessayez de vous connecter au tchat. Si la connexion échoue encore, il s'agit alors d'un problème technique : désolé pour le désagréement et merci de me le signaler.
		<br/>
		<h4>Je me fait exclure automatiquement du tchat :</h4>
		Vous avez été inactif pendant plus de 20 minutes, ou vous n'acceptez pas les cookies. Si ni l'une ni l'autre de ces raisons sont vraies, il s'agit alors d'un problème technique : désolé pour le désagréement et merci de me le signaler.
		<br/>
		<h4>Je ne retrouve plus mes textes précédents dans le dialogue du tchat :</h4>
		Seuls les 200.000 derniers caractères du dialogue sont concervés. Le reste est supprimé définitivement.
		<br/>
		<h4>Dialoguer uniquement au clavier :</h4>
		Pour n'utiliser que le clavier, saisissez votre message, puis appuyer sur "Entrée" pour le poster, le curseur revient automatiquement dans la zone de saisie, prête à recevoir un nouveau message.
		<br/>
		<h4>Trois modes de saisie :</h4>
		Vous avez le choix entre poster du texte, une image, ou un lien. Pour une image ou un lien, veuillez saisir l'URL complète de ce dernier (<i>exemple : http://www.domaine.fr/image.jpg</i>).
		<br/>
		<h4>Personnaliser le texte :</h4>
		Vous avez la possibilité de poster votre texte en Gras et/ou en Italique et/ou en Couleur. Les paramètres restent actifs pour tout les messages suivants, jusqu'à ce que les paramètres soient à nouveau désactivés ou modifiés.
		<br/>
		<h4>Pour toutes questions : <a href="/rick/Contact.php">Contactez-moi</a></h4>
		<br/>
	</div>
	
	<?php echo '
	<div id="formulaire" class="formulaireTchat" style="display:'.$afficheFormulaire.';">'; ?>
		Pour se connecter au Tchat, veuillez utiliser vos identifiant du forum, ou inscrivez-vous d'abord sur ce dernier. <br/>
		<br/>
		<table width="560" border="0">
			<tr>
				<td width="115">Nom d'utilisateur :</td>
				<td width="445"><input type="text" size="20" id="nomTchat" /></td>				
			</tr>
			<tr>
				<td>Mot de passe :</td>
				<td><input type="password" size="20" id="passTchat" onKeyPress="if(event.keyCode == 13) connexionTchat();" /></td>
			</tr>
			<tr>
				<td>
					<input type="image" src="<?php echo URL.'images/tchat/valider.png'; ?>" alt="connexion" title="ok" onclick="connexionTchat();" style="cursor:pointer;" />					
				</td>
				<td id="messageErreur" style="color:#E00000;">					
				</td>
			</tr>
		</table>
	</div>
	<?php echo '
	<div id="dialogue" style="display:'.$afficheDialogue.';">'; ?>
		<div id="blocDialogue" class="rouleauTchat">
		</div>
		<div class="ecrireTchat">
			<table width="580" border="0">
				<tr>
					<td id="affichageNomTchat" width="100">
						<b><?php echo $_SESSION["nomTchat"]; ?> :</b>
					</td>
					<td width="365">
						<input type="text" size="68" maxlength="2000" id="messageTchat" onKeyPress="if(event.keyCode == 13) envoyerTchat();" />
					</td>
					<td width="15">
						<input type="image" src="<?php echo URL.'images/tchat/validerPetit.png'; ?>" alt="envoyer" title="envoyer" onclick="envoyerTchat();" style="cursor:pointer;" />
					</td>
				</tr>
			</table>
			<br/>
			<div class="boutonStyle" id="textGras" onclick="TchatGras();"><b>B</b></div>
			<div class="boutonStyle" id="textItalique" onclick="TchatItalique();"><i>i&nbsp;</i></div>
			<div class="boutonStyle boutonColor" id="textColor" onclick="TchatAfficherColor();"><b>Couleur</b></div>
			<div id="paletteCouleurs" class="paletteCouleurs">
				<div class="boutonStyle" style="background:#000; color:#000; border-color:#000;" onclick="TchatColor('#000');"></div>
				<div class="boutonStyle" style="background:#80C; color:#80C; border-color:#80C;" onclick="TchatColor('#80C');"></div>
				<div class="boutonStyle" style="background:#04F; color:#04F; border-color:#04F;" onclick="TchatColor('#04F');"></div>
				<div class="boutonStyle" style="background:#0CE; color:#0CE; border-color:#0CE;" onclick="TchatColor('#0CE');"></div>
				<div class="boutonStyle" style="background:#4C0; color:#4C0; border-color:#4C0;" onclick="TchatColor('#4C0');"></div>
				<div class="boutonStyle" style="background:#484; color:#484; border-color:#484;" onclick="TchatColor('#484');"></div>
				<div class="boutonStyle" style="background:#FC4; color:#FC4; border-color:#FC4;" onclick="TchatColor('#FC4');"></div>
				<div class="boutonStyle" style="background:#E50; color:#E50; border-color:#E50;" onclick="TchatColor('#E50');"></div>
				<div class="boutonStyle" style="background:#C00; color:#C00; border-color:#C00;" onclick="TchatColor('#C00');"></div>
				<div class="boutonStyle" style="background:#840; color:#840; border-color:#840;" onclick="TchatColor('#840');"></div>
				<div class="boutonStyle" style="background:#F4C; color:#F4C; border-color:#F4C;" onclick="TchatColor('#F4C');"></div>
			</div>
			<br/><br/>
			<div class="boutonStyle boutonColor" id="choixText" onclick="typeTchat('text');" style="color:#B00; border-color:#B00;"><b>Texte</b></div>
			<div class="boutonStyle boutonColor" id="choixImage" onclick="typeTchat('image');"><b>Image</b></div>
			<div class="boutonStyle boutonColor" id="choixLien" onclick="typeTchat('url');"><b>Lien</b></div>			
		</div>
	</div>	
</div>
<?php 
	if( $afficheDialogue == "block" )
		echo '
			<script type="text/javascript">
				window.onload = function() { 
					BOUCLAGE = true; 
					boucleTchat(true); 
					document.getElementById("messageTchat").focus(); 
				}
			</script>';
?>

<?php
	session_start();
		
	function stop ( $mess ) {	
		echo $mess;
		exit(0);
	}
	
	if( isset( $_POST["type"] ) && $_POST["type"] == "text" ) {
		if( isset( $_POST["message"] ) && strlen( $_POST["message"] ) >= 1 )
			$mess = $_POST["message"];
		else
			stop( "message trop court" );
		
		$mess = str_replace('\"', "'", $mess);
		$mess = str_replace("\'", "'", $mess);
		$mess = str_replace("amp;", "&", $mess);
		
		$text = '<span style="';
		if( isset( $_POST["couleur"] ) && $_POST["couleur"] != "#000" )
			$text .= 'color:'.$_POST["couleur"].';';	
		if( isset( $_POST["italique"] ) && $_POST["italique"] == "i" )
			$text .= 'font-style:italic;';
		if( isset( $_POST["gras"] ) && $_POST["gras"] == "b" )
			$text .= 'font-weight:bold;';
		$text .= '">'.$mess.'</span>';
		
		if( strpos($mess, "html>")!==false || strpos($mess, "href")!==false || strpos($mess, "<a")!==false || strpos($mess, "iframe")!==false || strpos($mess, "<img")!==false || strpos($mess, "src=")!==false || strpos($mess, "<script")!==false || strpos($mess, "/img>")!==false || strpos($mess, "/>")!==false ) 
			stop("Votre message contient des balises HTML interdites");
			
		$mess = str_replace('<', "<", $mess);
		$mess = str_replace(">", ">", $mess);
	}
	else
	if( isset( $_POST["type"] ) && $_POST["type"] == "image" ) {
		if( isset( $_POST["message"] ) && strlen( $_POST["message"] ) >= 1 )
			$mess = $_POST["message"];
		else
			stop( "message trop court" );
			
		if( !preg_match('#^http:\/\/(.*)\.(gif|png|jpg|jpeg|bmp|)$#i', $mess) ) 
			stop( "lien image incorrect" );
		else
			$text = '<br/><img src="'.$mess.'" />';
	}
	else
	if( isset( $_POST["type"] ) && $_POST["type"] == "url" ) {
		if( isset( $_POST["message"] ) && strlen( $_POST["message"] ) >= 1 )
			$mess = $_POST["message"];
		else
			stop( "message trop court" );
		
		if( !preg_match('#^http:\/\/(.*)$#i', $mess) ) 
			stop( "lien url incorrect" );
		else
			$text = '<a href="'.$mess.'" target="_blank">'.$mess.'</a>';
	}
	else
		stop( "type incorect" );
		
		
	
	if( isset( $_SESSION["nomTchat"] ) ) {
		$mess = '<b>'.$_SESSION["nomTchat"].'</b> (<i style="font-size:9px;">'.date("d.m.Y H:i:s").'</i>) : '.$text.'<br/><br/>';
		$dial = file_get_contents('../tchat/tchat.txt');
		
		if( (int)(filesize('../tchat/tchat.txt')) > 200000 )
			$dial = substr( $dial, 0, 160000 );
		
		$file = fopen('../tchat/tchat.txt', 'w');
		fwrite( $file, $mess."\n".$dial );
		fclose($file);
		stop("ok");
	}
	else
		stop("ko"); //probleme d'itentification
?>

<?php
	session_start();
		
	function stop ( $message ) {	
		echo $message;
		exit(0);
	}
		
	if( !isset( $_POST["ok"] ) || $_POST["ok"] != "ok" )
		stop( "probleme de variable" );
		
	if( isset( $_SESSION["nomTchat"] ) ) {		
		$enligne = file_get_contents('../tchat/enligne.txt');
		$mes = "";
		
		$pos = strpos( $enligne, $_SESSION["nomTchat"] );
		if( $pos !== false ) // il est deja dans le fichier et donc loggé depuis un moment
			$enligne = substr( $enligne, ($pos+strlen($_SESSION["nomTchat"])+5) );
		else
			$mes = "La reponse dans moins de 10 secondes";
			
		$enligne .= $_SESSION["nomTchat"].'<br/>';		
		$file = fopen('../tchat/enligne.txt', 'w');
		fwrite( $file, $enligne );
		fclose($file);
		
		if( $mes != "" )
			stop("ok|||".$mes);
		else
			stop("ok|||".$enligne);
	}
	else
		stop("ko|||probleme d'itentification");
?>


<?php
	session_start();
	
	function _hash_encode64($input, $count, &$itoa64) {
		...
	}
	function _hash_crypt_private($password, $setting, &$itoa64)	{
		...
	}
	function phpbb_check_hash($password, $hash) {
		...
	}
	
	function stop ( $message ) {	
		echo $message;
		exit(0);
	}
	
	if( isset( $_POST["nom"] ) && strlen( $_POST["nom"] ) >= 1 )
		$nom = $_POST["nom"];
	else
		stop( "Veuillez entrer votre nom d'utilisateur" );
	if( isset( $_POST["pass"] ) && strlen( $_POST["pass"] ) >= 1 )
		$passTchat = .............
	else
		stop( "Veuillez entrer votre mot de passe" );
		
	//connexion a MySql
	// Ouverture d'une session mysql
	connexion();
	
	$reqPass = query( "SELECT ............");
	
	if( mysql_num_rows( $reqPass ) == 0 )
		stop( "Votre nom d'utilisateur est incorrect. Vous devez avoir un compte valide sur le forum pour participer au chat" );
	else {
		$row = mysql_fetch_assoc( $reqPass );
		
		if( !phpbb_check_hash( $passTchat, $row['user_password'] ) )
			stop( 'Votre mot de passe est incorect. En cas d\'oubli, <a href="http://forum.angusmacgyver.fr/ucp.php?mode=sendpassword" target="forget">cliquez ici</a>.' );
	
		$_SESSION["nomTchat"] = $row['username'];		
		stop("ok|||".$_SESSION["nomTchat"]);
	}
	
	mysql_close();
?>


<?php
	session_start();
		
	function stop ( $message ) {	
		echo $message;
		exit(0);
	}
	
	if( isset( $_POST["ok"] ) && strlen( $_POST["ok"] ) > 0 )
		$actualTchat = $_POST["ok"];
	else
		stop( "probleme de variable" );
		
	if( isset( $_SESSION["nomTchat"] ) ) {
		if( $actuelTchat == "nouveau" )
			stop("ok|||".htmlEntities( file_get_contents('../tchat/tchat.txt') ));
		else {
			$nouveauText = "";
			$fichier = fopen('../tchat/tchat.txt', 'r');		
			while ( !feof($fichier) ) {
				$ligne = fgets($fichier, 3000);
				if( $actualTchat == substr( $ligne, strpos($ligne, '<i')+26, 19 ) )
					stop("ok|||".$nouveauText);
				else
					$nouveauText .= $ligne;
			}
			stop("ok|||".$nouveauText);
		}
	}
	else
		stop("ko|||probleme d'itentification");
?>

Re: Ouverture des portes du TCHAT

par Murdoc » mar. 16 févr. 2010 15:36

Quand sera t-il au point ?

Re: Ouverture des portes du TCHAT

par Murdoc » ven. 12 févr. 2010 20:00

Ton chat n'est pas encore au point car a chaque fois que j'y vais mon ordinateur bug complètement !!!

Re: Ouverture des portes du TCHAT

par Murdoc » ven. 12 févr. 2010 16:45

Une excellente nouvelle !!!

Re: Ouverture des portes du TCHAT

par sylvain1888 » ven. 12 févr. 2010 16:30

voila une bonne nouvelle ce tchat rick

Re: Ouverture des portes du TCHAT

par RiCK » jeu. 11 févr. 2010 19:44

lol c'est fait ! :D :D

pour la connexion aussi -> une pression sur Entrée après la saisie du mot de passe

Re: Ouverture des portes du TCHAT

par RiCK » jeu. 11 févr. 2010 19:38

oui je vais rajouter ça.
pour le moment il faut utiliser TAB puis ENTREE pour ne pas à avoir à utiliser la souris

Re: Ouverture des portes du TCHAT

par zool » jeu. 11 févr. 2010 19:33

peut on juste a avoir à taper entrer et non cliquer sur le pass a droite pour avoir notre phrase de discour?

Ouverture des portes du TCHAT

par RiCK » jeu. 11 févr. 2010 18:46

Voici que l'idée lancée par zool commence tout doucement à prendre forme.

Le Tchat n'est pas fini, mais m'a l'air opérationnel! Il a surtout besoin d'être testé, donc voici son url : http://www.angusmacgyver.fr/tchat.html


Il reste à mes yeux 3 domaines à améliorer:
1/ permettre la mise en gras en italique en couleur du texte envoyer
2/ optimiser à fond le fonctionnement du tchat, sinon le serveur risque de pas suivre..................................
3/ permettre d'envoyer au choix du texte, une image, ou un lien
Plus tard peut être des smileys dans les textes.

J'attends vos retours d'idées, suggestions, problèmes.

Haut