Foros del Web » Programando para Internet » PHP »

Problema con chat

Estas en el tema de Problema con chat en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 15/03/2008, 16:24
Avatar de hgp147  
Fecha de Ingreso: diciembre-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 980
Antigüedad: 17 años, 3 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
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:11.