EcommerceDEV. Développement, optimisation et sécurisation des sites de commerce électronique.
arrowAccueil arrow Programmation arrow ASP/.Net/PHP arrow Ajouter des fonctionnalités de chat de base à votre site ASP
Vendredi 25 juil 2008
Nom d'utilisateur     Mot de passe      Conserver       Mot de passe perdu ?  Inscription
Menu
Accueil
A propos du site
Carte du site
Moteur de recherche
Nouvelles
Contactez-nous
Evénements
Lettres de nouvelles
- - - - - - -
Analyse
Conception
Optimisation
Programmation
Sécurité
Produits/Services
avr 11 2006
Ajouter des fonctionnalités de chat de base à votre site ASP Version imprimable Suggérer par mail
Appréciation des utilisateurs: / 1
FaibleMeilleur 
Programmation - ASP/.Net/PHP
Ecrit par jice   
11-04-2006
New Page 1

Ajouter des fonctionnalités de chat de base à votre site ASP. 
 

1- Présentation


Il s'agit d'un code très simple. Pour le stockage des messages saisis par les chatteurs et leurs pseudos, il n'utilise pas de base de données mais seulement deux fichiers texte (l'un pour les messages et l'autre pour les pseudos des visiteurs).  Un fichier .wav est lancé à chaque fois  qu'un nouveau message est saisi. En outre un bouton permet à chaque utilisateur de changer de conversation en effaçant les fichiers et en recréant d'autres. Avant d'intégrer ce code à votre application, il faut être conscient que les bases de données sont mieux optimisées  que les fichiers textes pour la gestion des opérations d'écriture  (dépendamment du nombre de visiteurs et de messages, les performances de votre site pourraient être affectées).

Avant de commencer à coder créer  2 fichiers vides .txt que vous nommerez "login.txt" et "messages.txt". Regroupez-les dans un dossier nommé "messages". A noter qu'il faut autoriser les opérations d'écriture sur ce répertoire  sinon le programme ne fonctionnera pas. Il faut aussi ajouter un fichier .wav (gling.wav par exemple) au répertoire ainsi crée.

 

2- Les scripts :

Création d'une page principale qui sera le conteneur de plusieurs frames. 

 

<html>
<head>
<title>Le mini chat</title>
</head>
<frameset rows="9%,60%,*" framespacing="0" border="0" frameborder="0">
<frame name="haut" src="banniere.html" scrolling="no" noresize target="_self">
<frame name="centre" src="frame.html" scrolling="auto">
<frame name="bas" src="form.asp" scrolling="no" noresize target="_self">
<noframes>
<body>
</body>
</noframes>
</frameset>
</html>

 

Création d'un frame caché qui va inclure la page message.asp, frame.html

 

<html>
<head>
</head>
<frameset rows="*">
  <frame name="principal" src="message.asp">
  <noframes>
  <body>
  </body>
  </noframes>
</frameset>
</html>

 

 

Création d'une page pour les bannières : banniere.html
 

<html>
<head>
<title>bannière</title>
<base target="_self">
</head>
<body topmargin="2" leftmargin="2" bgcolor="#CCCCFF" style="border-bottom: 1 solid #C0C0C0">
<table border="0" cellpadding="0" cellspacing="0" width="100%" height="46"><tr>
<td width="100%" bgcolor="#CCCCFF" height="45" valign="top" style="font-size: 10 pt;
margin-left: 10; margin-top: 0">
<font size="2" face="Verdana" color="#0000FF">
<span style="background-color: #FFB951">&nbsp;Derniers messages :</span></font></td>
<td width="100%" bgcolor="#CCCCFF" height="45" valign="top" 
style="font-size: 10 pt; margin-left: 10; margin-top: 0">
<p align="right">
<font face="Verdana" size="1" color="#0000FF">
<span style="background-color: #FFB951">v
</span></font>
<span style="background-color: #FFB951">
<font face="Verdana" size="1"color="#0000FF">1.0
</font></span></p>
</td>
</tr>
</table>
</body>
</html>
 


Enfin création d'une dernière page qui servira à lancer le minichat.(pop up Javascript)
 

function minichat()
{window.open('mini_chat.html','_blank','toolbar=0,location=0,directories=0,
status=0,scrollbars=0,resizable=0,copyhistory=0,menuBar=0,width=395,height=250')
}


<a href="javascript:minichat()">Aller sur le minichat</a>

 

 

Passons maintenant au formulaire dans une page que vous appellerez form.asp

 

<html>
<!--//DEBUT-->
<%
' on demande au serveur de créer un objet de type fichier
Set FSO = Server.CreateObject("Scripting.FileSystemObject")

' on désigne le chemin de deux fichiers intitulés "message.txt" et "login.txt"
' Le premier va être le fichier qui va collecter les messages
' Le second va collecter les pseudos des utilisateurs dans le but de controler leur validité
 
cible = Server.MapPath("messages/messages.txt")
logs = Server.MapPath("messages/login.txt")


' Si on clique sur le bouton ok ou 
' si le champ message n'est pas vide alors

if ((request.form("go")<>"") or (request.form("message")<>"")) then

session("log")="in"

' On controle la validité du pseudo avec le fichier login.txt grâce au cookie
   
if ((request.cookies("login")<>"") and (request.cookies("login")<>request.form("pseudo"))) then%>

<script>
alert("Vous ne pouvez pas changer de pseudo en cours de conversation !")
</script>

<%
session("log")="out"
end if
   
if request.cookies("login")="" then
   
set controle = FSO.OpenTextFile(logs,1)
while not controle.atendofstream
if request.form("pseudo")=controle.readline then
session("log")="out"
response.cookies("login")=""
%>
 
<script>
alert("Ce pseudo est en cours d'utilisation !")
</script>

<%
end if
wend
end if
            
if session("log")="in"  then
      
if session("login")="" then
set ajout_pseudo= FSO.OpenTextFile(logs,8)
ajout_pseudo.writeline request.form("pseudo")
response.cookies("login")=request.form("pseudo")
response.cookies("login").Expires = date+1 
end if
         
'   Ajout du nouveau message dans le fichier si tout est ok
   
' on ouvre le fichier en mode "écriture à la fin du fichier" désigné par le nombre 8 
set ajout = FSO.OpenTextFile(cible,8)
          
' on incrémente le pseudo et le message dans le fichier 
ajout.writeline formatdatetime(now(),4)&"   "&request.form("pseudo")&" > "&request.form("message")
           
' on vide l'objet Fichier
set FSO = nothing

end if

' Sinon, si on clique sur "Tout Effacer" alors
elseif request.form("destruct")<>"" then

session("login")=""
session("log")="out"

' Suppression du fichier en cours...
set efface_message = FSO.getfile(cible)
set efface_logs = FSO.getfile(logs)
efface_message.delete
efface_logs.delete
      
' ...et on en recrée un nouveau
FSO.CreateTextFile(cible)
set ajout = FSO.OpenTextFile(cible,8)
ajout.writeline "NOUVELLE CONVERSATION"
ajout.writeline "-----------------------------"
FSO.CreateTextFile(logs)
      
' enfin on vide l'objet Fichier
set FSO = nothing
      

' fin de condition      
end if
%>

<head>
<base target="_self">
<title></title>
</head>

<body topmargin="2" leftmargin="5" style="font-family: verdana; font-size: 8 pt;
border-top: 1 solid #C0C0C0" bgcolor="#CCCCFF">

<!--//Contrôle javascript du formulaire-->
<script><!--
function controle_Validator(theForm)
{

if (theForm.pseudo.value == "")
  {
alert("Identifiez vous !");
theForm.pseudo.focus();
return (false);
  }
  

if (theForm.pseudo.value.length > 8)
  {
alert("Pas plus de huit caractères pour le pseudo !");
theForm.pseudo.focus();
return (false);
  
  }
  return (true);
}
//--></script>

<!--//Fin du script de contrôle-->


    
<!--//Début du formulaire-->
<form method="post" action="form.asp" onsubmit="return controle_Validator(this)"> 
    
Votre pseudo : 
<input type="text" name="pseudo" size="20" 
value="<%=request.cookies("login")%>" style="font-size: 10 px"> 
&nbsp;
<input type="submit" value="Tout effacer !" name="destruct" style="font-size: 10 px">
<br><br>Votre message :<br>
      
      <input type="text" name="message" size="49" style="font-size: 8 pt; font-family: verdana">
      <input type="submit" value="ok" name="go" style="font-size: 10 px">
   </form>
   <!--//Fin du Formulaire-->

</body>
<!--//FIN-->
</html>
 

 

Enfin la page de visualisation des messages intitulée message.asp

 

<html>
<!--//DEBUT-->
<% 
' On demande au serveur de créer un objet de type Fichier
Set FSO = Server.CreateObject("Scripting.FileSystemObject")

' On désigne le chemin et le fichier cible à atteindre 

liste = Server.MapPath("messages/messages.txt")

' on ouvre le fichier en mode lecture désigné par le nombre 1
set message = FSO.OpenTextFile(liste,1)%>


<!--//Partie Head-->
<head>
<%

' controle du nombre de lignes et 
' renvoi des chaines de caractères
' trouvées dans le fichier

' On désigne par le A le nombre de ligne
a=0
      
' Tant qu'il y a des lignes jusqu'a la fin du fichier
While not message.atEndOfStream
      
' Ajout de 1 à la variable A
a=a+1
      
' Renvoi des chaines de caractères trouvées et formatées en html
response.write("<font face=verdana size=1>"&message.readline &"<br>")
      
Wend

' Si la valeur de la variable session appellée nbline est différente de la variable A alors
if session("nbline")<>a then
         
' Exécute le fichier gling.wav 1 fois%>

<bgsound src="gling.WAV" loop="1">
      
      
<%
' la variable session nbline (nombre de ligne d'avant) vaut
' alors la valeur de A (nombre de lignes actuelles)
session("nbline")=a
      
' sinon
else
      
' la variable session nbline vaut alors la valeur de A tout simplement.
session("nbline")=a
      
' on vide l'objet Fichier
set FSO=nothing
       
' fin de condition
end if%>



</head>
<!--//Fin Partie Head-->

<!--//Partie Body-->
<!--//La page se réactualise toutes les deux secondes (1000 vaut 1 seconde)-->
<body onload="window.setTimeout ('history.go (0)',2000)">

<!--//On désigne par la balise "bas_de_page", la fin visuelle de la page-->
<a name="bas_de_page"></a>

<!--//On fait un renvoi visuel automatique vers la page en bas-->
<script>
{window.location.href="#bas_de_page"}
</script>


</body>
<!--//FIN-->
</html>
 

 

Référence: Le code source reproduit ci-dessus est extrait du site asp-php.net. http://www.asp-php.net/scripts/asp-php/mini-chat.php?page=4

Dernière mise à jour : ( 20-06-2006 )
< Précédent   Suivant >
Professional Development with Web APIs : Google, eBay, Amazon.com, MapPoint, FedEx
Professional Development with Web APIs : Google, eBay, Amazon.com, MapPoint, FedEx

Un livre idéal pour les programmeurs .Net qui veulent intégrer à leurs applications de commerce électronique, les fonctionnalités offertes à travers les services web de Google, Fedex, Ebay, Amazon et MapPoimt.

Après un bref rappel des concepts de base, ce livre aborde des sujets avancés comme l'appel des API à partir d'appareils mobiles ou des applications développées avec VBA, l'envoi d'un fax via l'API Paypal, la création de votre propre web API (cette liste n'est pas limitative). A la fin de ce livre vous trouverez des études de cas qui montrent comment utiliser les API précitées pour développer rapidement une application CRM et un un tableau de bord électronique.

 

Références

 

http://www.wrox.com/WileyCDA/WroxTitle/productCd-0764584456.html, Denise M. Gosnell, Wrox, ISBN: 0-7645-8445-6, April 2005, 324 pages

Moteur de recherche
Recommander ce site
Collaboration
Téléchargements
Derniers événements
Aucun événement
Sondages

Souhaiteriez-vous participer au développement d'un site e-commerce en .Net ?

  
Blogs Ecommerce
Blog de capitaine commerce
top

Ce site a été crée avec le CMS Mambo. Un logiciel gratuit disponible sous licence GPL.

Copyright Ecommerce DEV 2006.

Hosted by SiteGround