Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/06/2009, 18:22
cantona
(Desactivado)
 
Fecha de Ingreso: mayo-2009
Mensajes: 37
Antigüedad: 15 años, 7 meses
Puntos: 0
Pregunta Script PHP con XML no funciona si lo modifico...

Buenas tardes, estoy trabajando con un script PHP que le manda variables XML a un script JavaScript, el cual actualiza un HTML, la cuestión es que quiero hacer una modificación en el primero, pero si le muevo algo ya no se me actualiza el HTML, lo que quiero hacer es poner una función "mail()" en el primero, pero si la pongo o la mando a llamar ya no funciona la actulización automática, por favor ayuda...A continuación pongo lo script's para ver si alguién me podría ayudar dieciendome que hago mal...

Código PHP:
<?php
header
("Last-Modified: " gmdate"D, d M Y H:i:s" ) . "GMT" ); 
header("Content-Type: text/xml; charset=utf-8");
header("Cache-Control: no-cache, must-revalidate" ); 
header("Pragma: no-cache" );

require(
'basededatos.php');

$xml '<?xml version="1.0" ?><root>';

    
$last = (isset($_GET['last']) && $_GET['last'] != '') ? $_GET['last'] : 0;
    
$limit '';
      if (
$last == || $last == '0') { 
          
$numlogs mysql_query("SELECT seq FROM logs WHERE seq > " $last); 
          
$numlogs mysql_num_rows($numlogs); 
          
$logsamostrar 1
             if (
$numlogs $logsamostrar) { 
                 
$limit " LIMIT " . ($numlogs $logsamostrar) . ', ' $logsamostrar
             } 
      }
    
    
$sql "SELECT seq,msg FROM logs  WHERE seq > " $last $limit;
        
    
$resultado mysql_query($sql); 
    
$mensaje mysql_fetch_row($resultado);
    
$cadena $mensaje[1];
    
//Aquí realizo la obteción de los valores de las variables que envío, no lo puse para no poner tanto código...
            
    
$message_query db_query($sql);
    while(
$message_array db_fetch_array($message_query)) {
                
        
$xml .= '<message id="' $message_array['seq'] . '">';
        
$xml .= '<seq>' .htmlspecialchars($message_array['seq']) . '</seq>';
        
$xml .= '<host>' .htmlspecialchars($nombre) . '</host>';
        
$xml .= '<priority>' .htmlspecialchars($prioridad) . '</priority>';
        
$xml .= '<date>' .htmlspecialchars($fecha) . '</date>';
        
$xml .= '<time>' .htmlspecialchars($hora) . '</time>';
        
$xml .= '<id>' .htmlspecialchars($id) . '</id>';
        
$xml .= '<src>' .htmlspecialchars($fuente) . '</src>';
        
$xml .= '<interface>' htmlspecialchars($interface) . '</interface>';
        
$xml .= '<interfaced>' .htmlspecialchars($interfaced) . '</interfaced>';
        
$xml .= '<dst>' .htmlspecialchars($dst) . '</dst>';
        
$xml .= '</message>';        
        
    }

$xml .= '</root>';
echo 
$xml;
   
$sql2 mysql_query("SELECT seq FROM logs"); 
   
$logs mysql_num_rows($sql2);

 if((
$last != || $last != '0') && $logs $_GET['last'] && $_GET['last'] != ''){
   
    
$query "SELECT email,alerta,intrusion,virus,aweb,vtrafico,bloq,caida,vpncaida,sesiones,severidad".
            
" FROM config WHERE seq=1 ";
    
$config mysql_query($query); 
    
$salida mysql_fetch_row($config);
    
    if(
$salida[1]=="eventos"){
      
mailer();    //*********Si mando a llamar aqui la función "mailer()" ya no me actuliza el html. Aquí es mi problema.
            
    
}elseif($salida[1]=="severidad"){
          
    }
    
    
//Inserción a logsfg
    
$inserta "INSERT INTO logsfg (nombre,prioridad,fecha,hora,idlog,fuente,ifuente,destino,idestino,mensaje)".
    
" VALUES ('$nombre','$prioridad','$fecha','$hora','$id','$fuente','$interface','$dst','$interfaced','$cadena')";
    
$resultado mysql_query($inserta);
    
//Termina Inserción a logsfg
   
 
}
 
 function 
mailer(){
       
   
$nombre "Yo";
   
$mail "algún mail";             
   
$empresa "yo Corp";
   
$mensaje "...";

   
$header 'From: ' $mail " \r\n";
   
$header .= "X-Mailer: PHP/" phpversion() . " \r\n";
   
$header .= "Mime-Version: 1.0 \r\n";
   
$header .= "Content-Type: text/plain";

   
$mensaje "Este mensaje fue enviado por " $nombre ", de la empresa " $empresa " \r\n";
   
$mensaje .= "Su e-mail es: " $mail " \r\n";
   
$mensaje .= "Mensaje: " .$mensaje." \r\n";
   
$mensaje .= "Enviado el " date('d/m/Y'time());

    
$para 'algun otro mail';
    
$asunto 'Sistema de Análisis de Eventos';

    
mail($para$asuntoutf8_decode($mensaje), $header);
    
 }          
?>
Este es el JavaScript que recibe las variables.

Código HTML:
            var sendReq = getXmlHttpRequestObject();
			var receiveReq = getXmlHttpRequestObject();
			var sendDat = getXmlHttpRequestObject();
			var lastMessage = 0;
			var mTimer;
			//Función para inicializar la página.
			function startSOC() {
				//Iniciar recibiendo Logs.
				getLogs();
			}		
			//Obtener los objetos XmlHttpRequest especificos del navegador.
			function getXmlHttpRequestObject() {
				if (window.XMLHttpRequest) {
					return new XMLHttpRequest();
				} else if(window.ActiveXObject) {
					return new ActiveXObject("Microsoft.XMLHTTP");
				} else {
					document.getElementById('estado').innerHTML = 'No se puede crear el objeto XmlHttpRequest.';
				}
			}
			
			
			function getLogs() {
					receiveReq.open("GET", 'getLogs.php?logs=1&last=' + lastMessage, true);
					receiveReq.onreadystatechange = ReceiveLogs; 
					receiveReq.send(null);
			}
		
			//Funcion para obtener los mensajes de logs.
			function ReceiveLogs() {
					var logs_div = document.getElementById('div_logs');
					var xmldoc = receiveReq.responseXML;
					var message_nodes = xmldoc.getElementsByTagName("message"); 
					var n_messages = message_nodes.length
					for (i = 0; i < n_messages; i++) {
						var seq_node = message_nodes[i].getElementsByTagName("seq");
						var host_node = message_nodes[i].getElementsByTagName("host");
						var priority_node = message_nodes[i].getElementsByTagName("priority");
						var date_node = message_nodes[i].getElementsByTagName("date");
						var time_node = message_nodes[i].getElementsByTagName("time");
						var id_node = message_nodes[i].getElementsByTagName("id");			
						var src_node = message_nodes[i].getElementsByTagName("src");				
						var interface_node = message_nodes[i].getElementsByTagName("interface");			
						var interfaced_node = message_nodes[i].getElementsByTagName("interfaced");
						var dst_node = message_nodes[i].getElementsByTagName("dst");
						
						var seq = seq_node[0].firstChild.nodeValue;
						
						//Inserta el valor de los nodos en logs_div
						logs_div.innerHTML += "<div id='host'>" + host_node[0].firstChild.nodeValue + "</div>"; 
						//Selección de color para el campo Prioridad					
						switch(priority_node[0].firstChild.nodeValue){
							case 'emergency':
							logs_div.innerHTML += "<div id='priority1'>Emergencia</div>";
							break;
							case 'alert':
							logs_div.innerHTML += "<div id='priority2'>Alerta</div>";
							break;
							case 'critical':
							logs_div.innerHTML += "<div id='priority3'>Critico</div>";
							break;
							case 'error':
							logs_div.innerHTML += "<div id='priority4'>Eror</div>";
							break;
							case 'warning':
							logs_div.innerHTML += "<div id='priority5'>Advertencia</div>";
							break;
							case 'notice':
							logs_div.innerHTML += "<div id='priority6'>Notificaci&oacute;n</div>";
							break;
							case 'information':
							logs_div.innerHTML += "<div id='priority7'>Informaci&oacute;n</div>";
							break;
							case 'debug':
							logs_div.innerHTML += "<div id='priority8'>Depuraci&oacute;n</div>";
							break;
						}
						logs_div.innerHTML += "<div id='date'>" + date_node[0].firstChild.nodeValue + "</div>";
						logs_div.innerHTML += "<div id='time'>" + time_node[0].firstChild.nodeValue + "</div>";
						logs_div.innerHTML += "<div id='id'>" + id_node[0].firstChild.nodeValue + "</div>";						
						logs_div.innerHTML += "<div id='src'>" + src_node[0].firstChild.nodeValue + "</div>";
						logs_div.innerHTML += "<div id='interface'>" + interface_node[0].firstChild.nodeValue + "</div>";
						logs_div.innerHTML += "<div id='interfaced'>" + interfaced_node[0].firstChild.nodeValue + "</div>";
 						logs_div.innerHTML += "<div id='dst'>" + dst_node[0].firstChild.nodeValue + "</div>";	
 						logs_div.innerHTML += "<div id='mensaje'><a  href='javascript:mensaje(" + seq + ")'>Mensaje</a></div><br>";
						logs_div.scrollTop = logs_div.scrollHeight;
						lastMessage = (message_nodes[i].getAttribute('id'));					
						
					}
					mTimer = setTimeout('getLogs();',1000); //Verifica cambios en la base de datos cada segundo.
		        
			}
			
			function mensaje(seq){
             window.open('mensaje.php?seq='+seq+'&action=monitoreo','mensaje','width=550,height=425,left=230,top=50','target=Mensaje');
            }