Zend - The PHP Company




Chat

Add Code


Simple Chat 1.0  

Type: application
Added by: hanishi
Entered: 24/12/2001
Last modified: 05/12/2001
Rating: - (fewer than 3 votes)
Views: 13571
Simple Chat 1.0


<html>
<script language="javascript">
<!--//
var strChar;
var i=0, printStr;
var img1 = new Image();
var img2 = new Image();
var img3 = new Image();
var img4 = new Image();
img1.src="face_good.gif"; 
img2.src="face_happy.gif"; 
img3.src="face_bored.gif"; 
img4.src="face_sleepy.gif"; 
 
<?php
$mes_repeat
=($member==0) ? "(Welcome $name, enjoy chatting!)" ". . . . . . . . . . . . . . . . . .  "
echo(
$mes "var msg ="$mes";" "var msg="$mes_repeat ";");
?>
function printChar(){
if(i>msg.length){
        clearTimeout(timerID);}

else{
if(document.layers){
printStr = msg.substring(0,i);
    document.sText.document.open();
    document.sText.document.write(printStr);
    document.sText.document.close();
    }
    else if(document.getElementById){
    printStr=msg.substring(i, i+1);
        var obj = document.createTextNode(printStr);
        document.getElementById("sText").appendChild(obj);
}
i++;
timerID=setTimeout("printChar()", 20);}
document.frmChat.mes.focus();}


//-->
</script>
<body onLoad="printChar()">

<?php
$logfile 
"sample.txt"
define(USR_LST"member.txt");  
define(TIMEOUT300);  
$now time(); 
define(JOIN"Join"); 
define(RELOAD"Send/Reload"); 


$usr_arr file(USR_LST); 
$n=sizeof($usr_arr); 
$fp = @fopen(USR_LST"wb");  
flock($fpLOCK_EX);     
                                                  

         
for(
$i 0$i $n$i++){  

list(
$regist_face$regist_addr$regist_name$time_stmp$point$status,) = explode("|"$usr_arr[$i]); 
if(
$i==0)$lock_img $status
if(
$now-$time_stmp TIMEOUT){  
        
    if(
$regist_addr == $REMOTE_ADDR && empty($room_lock) && $i == || $n 2){ unset($status); unset($lock_img);}         
        if(
$mes){ 
            
$point = ($regist_addr != $REMOTE_ADDR) ? $point-$point+2

        }elseif(
$member==1){     
            
$point = ($regist_addr != $REMOTE_ADDR) ? $point $point-1;  
        } 
         
         
        if(
$point 0) { if($point>10$point=10
            
fputs($fp, ($regist_addr != $REMOTE_ADDR) ? "$regist_face|$regist_addr|$regist_name|$time_stmp|$point|$status|n" "$regist_face|$regist_addr|$regist_name|$now|$point|$status|n" ); 
                   switch(
$point){
                case 
"10":
                case 
"9":
                case 
"8":  
                
$feeling="_happy.gif";
                break;
                case 
"7":
                case 
"6":
                case 
"5":
                
$feeling="_good.gif";
                break;
                case 
"4":
                case 
"3":
                
$feeling="_bored.gif";
                break;
                case 
"2":
                case 
"1":
                
$feeling="_sleepy.gif";
                break;
            }    
            
        
$regist_member="$regist_name|${regist_face}${feeling}";
          
$members[$regist_member] = $regist_addr
        
$how_many++;
            if((
$regist_addr == $REMOTE_ADDR) && $member==1){  
                
$my_feeling "${face}$feeling"
                
$message_box 1
                if(
$room_lock){ 
                    
rewind($fp); 
                    
fputs($fp,"$regist_face|$regist_addr|$regist_name|$time_stmp|$point|<img src="lock.gif">|n"); 
                    
$checked "checked"
                    
$lock_img "<img src="lock.gif">"
                                 
                } 
            } 
             
        } 
    } 

        
fclose($fp); 
if((
$lock_img && $how_many 1)&&(!$message_box || $member==0)){ 
    unset(
$name); 
    
$lock_msg ="This room is locked"
     
    }             
trim($name);
$name=htmlspecialchars($name);
if(
get_magic_quotes_gpc()) $name=stripslashes($name);

if(
$member==&& ereg("^[^[:blank:]]{1,}$"$name)){     
$i 0;
if(isset(
$members)){  
foreach(
$members as $key=>$value){
     list(
$member_name,)=explode("|"$key);            
          if(
ereg("^$value$"$REMOTE_ADDR) || ereg("^$member_name$"$name)){ 
            
$ng_msg="Use other name or you may have already entered once!"
        break;
        }
    
$i++;
    }}    
 
         
           
    if(
$i == $how_many){ 

        
$fp fopen(USR_LST"ab"); 
        
flock($fpLOCK_EX); 
        
fputs($fp,"$face|$REMOTE_ADDR|$name|$now|5||n"); 
    
$how_many++;
        
$message_box=1
    
$regist_member="$name|${face}_good.gif";
        
$members[$regist_member] = $REMOTE_ADDR;
    
$my_feeling="${face}_good.gif";
        
fclose ($fp); 
        } 
 
}
$w=$art_num
$lines file($logfile); 
$n=sizeof($lines);     
$fp = @fopen($logfile"w"); 
flock($fpLOCK_EX);
if(
$members && $message_box){ 
        if(!empty(
$mes)){  
         
          
trim($mes); 
          
$mes htmlspecialchars ($mes);  
            
          if(
get_magic_quotes_gpc()) 
          
$mes stripslashes($mes);  
          
$mes str_replace("rn""r"$mes);  
          
$mes str_replace("r""n"$mes);     
          
$mes nl2br($mes);     
          
$mes str_replace("n"""$mes);      
          
$my_message $mes
        
$count_fp fopen("count.txt","r+");     
        
flock($count_fpLOCK_EX);             
        
$num fgets($count_fp32); 
        if(
$how_many 1) ++$num;             
        
rewind($count_fp);             
        
fputs($count_fp$num);         
        
fclose($count_fp);             
        
$mes "$num|$REMOTE_ADDR|$name|$mes|n"
        
fputs($fp$mes);
    }    
 for(
$i=0$i $how_many$i++){
            
reset($members); 
       list(
$num$regist_addr$regist_name$regist_mes,) = explode("|"$lines[$i]); 
               while(list(
$key$value) = each($members)){  
        list(
$member_name, )=explode("|"$key);    
             if(
$mes && $value==$REMOTE_ADDR && $member_name==$name) continue; 
                if(
$value == $regist_addr && $member_name == $regist_name){  

                    if(
$num $art_num){  
                if(!
$new_art_num$new_art_num=$num;    
        
$members[$key]="$regist_mesn"
                }  
                    
fputs($fp$lines[$i]); 
                    break; 
                } 
                } 

    } 
reset($members);


fclose($fp); 

if(
$how_many 2)unset($lock_img);

$art_num $new_art_num;
if(empty(
$art_num)) $art_num $w

if(!
$lock_msg){ 

echo(
"<table border=0><form name="frmChat" method="post" action="/chat.php">"); 
    
if(
$name && $message_box){  

echo(
"<input type="hidden" name="name" value="$name"><input type="hidden" name="face" value="$face"><tr><td><table><caption align=bottom>$name</caption><td><center><img src="$my_feeling"> 
</center></td></table></td><td><table><tr><td><div id="
sText" style"position:absolute"></div></td></tr></table></td></tr><tr><td></td><td><input type=text name="mes" size=80 maxlength=80 ><input name=member type=hidden value=1>");
    echo(
"<input type="hidden" name="art_num" value=$art_num>"); 
         
}else{ 
echo(
"<td><table><td><font size=2 face=arial>Enter your name here :</font></td><td><input name="name" type="text" size="12" maxlength="12"><input type="radio" name="face" value="kao" checked ><img src="face_good.gif"><input name=member type=hidden value=0>n"); 
}
echo(
"<input type="submit" value=" "); 
     
    echo(empty(
$message_box) ? JOIN : RELOAD); 
     
echo(""><input type="
reset" value="reset"></td></tr></table><table><tr><td>");

if(!empty(
$message_box) && $how_many 1){ 
list(
$member_name, )=explode("|",key($members));
    
if(
$member_name==$name){
    echo(empty(
$lock_img) ? "<img src="unlock.gif">" $lock_img);
echo(
"<input type="checkbox" name="room_lock" value=1 $checked >");
}else{
    echo(
$lock_img $lock_img "<img src="unlock.gif">");

reset($members);
echo(
"</td></tr>");
}
echo(
"</table>");
}else{echo(
$lock_msg);}
echo(
"</form>");
echo(
"$ng_ms");


    
if(empty(
$members)){ 
$count_fp = @fopen("count.txt","w+");     
        
flock($count_fpLOCK_EX);             
        
fputs($count_fp0); 
        
fclose($count_fp);             


if(
$message_box && $members){ 
foreach(
$members as $key => $value){
list(
$member_name$member_face)=explode("|"$key);    
if(
ereg("^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$"$value)){
    unset(
$value);}
if(
$member_name!=$name)echo("<table><table border=0><td><table><caption align=bottom>$member_name</caption><td><center><img src="$member_face"></center></td></table></td></td><td>$value</td></table></table>");
}
}


?>  


Usage Example




Rate This Script





Search



This Category All Categories