Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/03/2008, 16:24
Avatar de hgp147
hgp147
 
Fecha de Ingreso: diciembre-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 980
Antigüedad: 17 años, 4 meses
Puntos: 36
Problema con chat

Hola, encontre unos códigos en internet para crear un chat utilizando PHP y AJAX. Cada vez que uno deja un comentario, este se agrega a un archivo que contiene todos los comentarios; lo que quiero saber es si hay alguna forma de que vallan eliminando automaticamente los mensajes más viejos. Aquí dejo los códigos:

Gracias

index.php

Código PHP:
<?php
session_start
();

function 
createForm(){
?>
      <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
        <table align="center">
          <tr><td colspan="2">Por favor ingresa tu Nick para entrar!</td></tr>
          <tr><td>Tu Nick: </td>
          <td><input class="text" type="text" name="name" /></td></tr>
          <tr><td colspan="2" align="center">
             <input class="text" type="submit" name="submitBtn" value="Ingresar" />
          </td></tr>
        </table>
      </form>
<?php
}

if (isset(
$_GET['u'])){
   unset(
$_SESSION['nickname']);
}

// Process login info
if (isset($_POST['submitBtn'])){
      
$name    = isset($_POST['name']) ? $_POST['name'] : "Unnamed";
      
$_SESSION['nickname'] = $name;
}

$nickname = isset($_SESSION['nickname']) ? $_SESSION['nickname'] : "Hidden";   
?>

<html>
<head>
<script language="javascript" type="text/javascript">
    <!--
      var httpObject = null;
      var link = "";
      var timerID = 0;
      var nickName = "<?php echo $nickname?>";
      


      // Get the HTTP Object
      function getHTTPObject(){
         if (window.ActiveXObject) return new ActiveXObject("Microsoft.XMLHTTP");
         else if (window.XMLHttpRequest) return new XMLHttpRequest();
         else {
            alert("Your browser does not support AJAX.");
            return null;
         }
      }   

      // Change the value of the outputText field
      function setOutput(){
         if(httpObject.readyState == 4){
            var response = httpObject.responseText;
            var objDiv = document.getElementById("result");
            objDiv.innerHTML += response;
            objDiv.scrollTop = objDiv.scrollHeight;
            var inpObj = document.getElementById("msg");
            inpObj.value = "";
            inpObj.focus();
         }
      }

      // Change the value of the outputText field
      function setAll(){
         if(httpObject.readyState == 4){
            var response = httpObject.responseText;
            var objDiv = document.getElementById("result");
            objDiv.innerHTML = response;
            objDiv.scrollTop = objDiv.scrollHeight;
         }
      }

      // Implement business logic    
      function doWork(){    
         httpObject = getHTTPObject();
         if (httpObject != null) {
            link = "message.php?nick="+nickName+"&msg="+document.getElementById('msg').value;
            httpObject.open("GET", link , true);
            httpObject.onreadystatechange = setOutput;
            httpObject.send(null);
         }
      }

      // Implement business logic    
      function doReload(){    
         httpObject = getHTTPObject();
         var randomnumber=Math.floor(Math.random()*10000);
         if (httpObject != null) {
            link = "message.php?all=1&rnd="+randomnumber;
            httpObject.open("GET", link , true);
            httpObject.onreadystatechange = setAll;
            httpObject.send(null);
         }
      }

      function UpdateTimer() {
         doReload();   
         timerID = setTimeout("UpdateTimer()", 5000);
      }
    
    
      function keypressed(e){
         if(e.keyCode=='13'){
            doWork();
         }
      }
   
    //-->
    </script>   
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
<body onLoad="UpdateTimer();">
<div id="main">
<?php 

if (!isset($_SESSION['nickname']) ){ 
    
createForm();
} else  { 
      
$name    = isset($_POST['name']) ? $_POST['name'] : "Unnamed";
      
$_SESSION['nickname'] = $name;
    
?>
      
<div id="result">
</div>
      
<div id="sender" onKeyUp="keypressed(event);"> Envia tu mensage: 
<input type="text" name="msg" size="30" id="msg" />
<button onClick="doWork();">Enviar</button>
</div>

<?
          
}

?>
</div>
</body></html>
message.php

Código PHP:
<?php session_start();


if (isset(
$_GET['msg'])){



if (
file_exists('msg.html')) {

$f fopen('msg.html',"a+");

} else {

$f fopen('msg.html',"w+");

}
        
        
        
        
$nick = isset($_GET['nick']) ? $_GET['nick'] : "Hidden";
$msg  = isset($_GET['msg']) ? htmlspecialchars($_GET['msg']) : ".";

$line "<p><span class=\"name\">$nick: </span><span class=\"txt\">$msg</span></p>";

echo 
$line;



    
fwrite($f,$line);
fclose($f);
        
    
}else if (isset(
$_GET['all'])) {

$data file('msg.html');

foreach(
$data as $linea){

echo 
$linea;
    
}
    
}
    
    

?>
__________________
Spread Firefox | Download Day 2008
¡Únete en nuestra misión para alcanzar el Record Guinness al software más descargado en 24 horas! http://www.spreadfirefox.com/es-ES/worldrecord/

Última edición por hgp147; 15/03/2008 a las 16:29