Foros del Web » Programando para Internet » PHP »

Problemas con include

Estas en el tema de Problemas con include en el foro de PHP en Foros del Web. Hola amigos, el problema que tengo es el siguiente: Tengo un programa principal, TerminalesC.php donde he introducido unos includes que me harán falta para llamar ...
  #1 (permalink)  
Antiguo 23/03/2009, 06:23
 
Fecha de Ingreso: diciembre-2008
Mensajes: 21
Antigüedad: 15 años, 4 meses
Puntos: 0
Problemas con include

Hola amigos, el problema que tengo es el siguiente:

Tengo un programa principal, TerminalesC.php donde he introducido unos includes que me harán falta para llamar unas funciones cuando continue desarrollandolo

El problema está en un include, pues cuando ejecuto TerminalesC.php me muestra por pantalla todo el código seguido de ese include a partir de una cierta línea sin llamar a ninguna variable del mismo, he probado también quitando todos los echos de TerminalesC.php pero me sigue sacando el codigo del include por pantalla.

Ésto es lo que me saca por pantalla, las últimas 8 lineas es lo que me debe de sacar, lo que no entiendo es que me saque el include delante:

rutaRAW = $ruta; else $this->rutaRAW = SYS_RUTARAW; return; } // Métodos de la clase /** * Mete el email en la cola */ function encolar() { $ors = new oRS('email_log'); $ors->depura=1; for($i=0;$ito_email);$i++) { $ors->c['from_name'] = (string) $this->from_name; $ors->c['from_email'] = (string) $this->from_email; $ors->c['subject'] = (string) $this->subject; $ors->c['to_email'] = (string) $this->to_email[$i]; $ors->c['body'] = (string) $this->body; $ors->c['isHTML'] = (isset($this->isHTML)) ? $this->isHTML : 0; $ors->c['enviado'] = (int) 0; $ors->c['error'] = (int) 0; $ors->insert(); $ors->reset('email_log'); } } /** * Procesa la cola y realiza todos los envios via Mdaemon */ function procesarCola() { $cola = array(); $ors = new oRS(); $ors->select("select top 20 id,from_name,from_email,subject,to_email,isHTML,bo dy from email_log where enviado = 0"); if(!$ors->EOF) { while(!$ors->EOF) { // Código para tratar el recordset $cola[] = $ors->c; $ors->moveNext(); } } $mens = count($cola); for($i=0;$i<$mens;$i++) { // Creamos el contenido del archivo de acuerdo con el formato RAW de MDAEMON $nombre = md5($cola[$i]['to_email'] . time() . md5(rand(1,100))); $rawstr = "header " .chr(13).chr(10); if($cola[$i]['isHTML']) { $rawstr .= "header ".chr(13).chr(10); $rawstr .= "header ".chr(13).chr(10); } $rawstr .= "From \"{$cola[$i]['from_name']}\" <{$cola[$i]['from_email']}>" .chr(13).chr(10); $rawstr .= "To <{$cola[$i]['to_email']}>".chr(13).chr(10); $rawstr .= "Subject <{$cola[$i]['subject']}>".chr(13).chr(10); $rawstr .= chr(13).chr(10) . $cola[$i]['body']; // Creamos el archivo en la carpeta temporal $nombre .= ".raw"; $fp = fopen('rawtmp\\' . $nombre,"w+"); fwrite($fp,$rawstr,strlen($rawstr)); fclose($fp); // Copiar el archivo a la carpeta de Rawfiles copy('rawtmp\\' . $nombre,$this->rutaRAW . $nombre); // Insertamos una entrada en email_log para dejar constancia del envio $ors->depura=1; $ors->reset('email_log'); $ors->c['enviado'] = 1; $ors->c['archivo'] = $nombre; $ors->c['id'] = (int) $cola[$i]['id']; $ors->update('id'); } // for } // function /** * Inicializa las propiedades del objeto */ function reset() { $this->from_email = ""; $this->from_name = ""; $this->to_email = array(); $this->subject = ""; $this->body = ""; $this->isHTML = 0; } function enviar() { global $rutaRAW; // Se introduce el email en la cola, una estrada para cada entrada en // $to_email for($i=0;$ito_email);$i++) { // Creamos el contenido del archivo de acuerdo con el formato RAW de MDAEMON $nombre = md5($this->to_email[$i] . time()); $rawstr = "header " .chr(13).chr(10); $rawstr .= "From <{$this->from_email}>" .chr(13).chr(10); $rawstr .= "To <{$this->to_email[$i]}>".chr(13).chr(10); $rawstr .= "Subject <{$this->subject}>".chr(13).chr(10); if($this->isHTML) { $rawstr .= "MIME-Version: 1.0".chr(13).chr(10); $rawstr .= "Content-Type: text/html".chr(13).chr(10); } $rawstr .= chr(13).chr(10) . $this->body; // Creamos el archivo en la carpeta temporal $nombre .= ".raw"; $fp = fopen('rawtmp\\' . $nombre,"w+"); fwrite($fp,$rawstr,strlen($rawstr)); fclose($fp); // Copiar el archivo a la carpeta de Rawfiles copy('rawtmp\\' . $nombre,$this->rutaRAW . $nombre); // Insertamos una entrada en email_log para dejar constancia del envio // TODO: En un futuro se podrian eliminar las referencias al body etc, ya que como tod esta en el archivo no seria necesario y estamos duplicando tontamente informacion $ors = new oRS('email_log'); $ors->c['from_name'] = (string) $this->from_name; $ors->c['from_email'] = (string) $this->from_email; $ors->c['subject'] = (string) $this->subject; $ors->c['to_email'] = (string) $this->to_email[$i]; $ors->c['body'] = (string) $this->body; $ors->c['isHTML'] = (isset($this->isHTML)) ? $this->isHTML : 0; $ors->c['archivo'] = (string) $nombre; $ors->c['enviado'] = (int) 1; $ors->c['error'] = (int) 0; $ors->insert(); } // for } //function obtenerinfoarchivo() para cuando hayan errores } ?> El terminal 422499610 del barco Espiritu del Xarey 2 (INM. C) y cliente CONSTRUCTORA SAN JOSE tiene 14 mensajes emitidos
El terminal 422499610 tiene 8 mensajes teóricos
El Terminal 422499610 tiene una sobreemisión de 6 posiciones
El Terminal 422499610 tiene 0 polls
El terminal 422499610 tiene 14 posiciones sin contar los polls
El terminal 422499610 tuvo ayer 8 posiciones sin contar los polls

A ver si alguien me puede ayudar pues no encuentro la posible razón.Gracias
  #2 (permalink)  
Antiguo 23/03/2009, 06:27
Avatar de rafaconpu  
Fecha de Ingreso: febrero-2006
Mensajes: 331
Antigüedad: 18 años, 2 meses
Puntos: 3
Respuesta: Problemas con include

Hola.

Sería conveniente saber donde tienes ubicado el include anterior (el que te muestra todo el código)

Saludos.
  #3 (permalink)  
Antiguo 23/03/2009, 06:35
 
Fecha de Ingreso: diciembre-2008
Mensajes: 21
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Problemas con include

Hola, este es el principio de mi codigo principal, TerminalesC.php no lo copio todo porque es muy largo y no me lo permite:

Código:
<?php
include('functions.php'); 
include('inc/class.general.php');
//include('inc/class.terminal.php');
include('inc/class.db2.php');
include('inc/Xcontrol.config.php');
//include('inc/class.ors.php');
include('inc/function.funciones.php');
include('inc/config.ini.php');
include('inc/class.mail.php');


//CONEXIÓN BASE DE DATOS
 
Conectarse();
	
	
 //CONSULTA VISTA TRAFICO DE LOS TERMINALES QUE SE ENCUENTREN EN LA TABLA TERMINALESC_ESTADOS
 
 $term = mssql_query("SELECT * FROM vTraficoIrregularCyD");
 
 
  //Tabla polls     
 	
  /*  echo "<table border=\"3\">\n";
       echo "<tr><td><center><b>TERMINAL</b></td><td><center><b>ID</b></td><td><center><b>INICIO</b></td>
	   		     <td><center><b>FIN</b></td><td><center><b>EMITIDOS</b></td>
			     <td><center><b>TEORICOS</b></td><td><center><b>DESVIO</b></td>
			     <td><center><b>INTERVALO</b></td><td><center><b>COMMANDTYPE</b></td>
			     <td><center><b>FECHA</b></td></tr>";
  */
   
      
   //Empezamos si existen terminales en la vista
 	
   while($linea=mssql_fetch_array($term)){
 	
 	  
    //Terminales C con desvío > 100%
   
    if(($linea['Tipo']==4)and($linea['Porcent. Desvio']>100)){
   	
   	//(ESTADO = 1)
   
    //Guardo variables que me harán falta
    
    $cliente1 = $linea['Cliente'];
    $barco1 = $linea['Barco'];
    $idtc1 = $linea['Id Terminal'];
    $terminal1 = $linea['Terminal'];
    $intc1 = $linea['Intervalo programado'];
    $emitidos1 = $linea['Mensajes Emitidos'];
    $teoricos1 = $linea['Mensajes Teoricos'];
    $desvio1 = $emitidos1 - $teoricos1;
 	    
    echo"El terminal $terminal1 del barco $barco1 y cliente $cliente1 tiene $emitidos1 mensajes emitidos"."</br>";
    echo"El terminal $terminal1 tiene $teoricos1 mensajes teóricos"."</br>";
    echo"El Terminal $terminal1 tiene una sobreemisión de $desvio1 posiciones"."</br>";
Lo que me saca por pantalla es el include class.mail que copio en el siguiente mensaje seguido del resultado de mi codigo, lo que no entiendo es porque me lo saca por pantalla.
  #4 (permalink)  
Antiguo 23/03/2009, 06:37
 
Fecha de Ingreso: diciembre-2008
Mensajes: 21
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Problemas con include

Éste es el include class.mail.php que me muestra por pantalla:

Código:
<?

//-------------------------------------------------------------------------------
// PROYECTO: XControlCore
// ARCHIVO: class.mail.php
//
//
//-------------------------------------------------------------------------------
// DESCRIPCION: Nueva gestion de correo electronico descargando a servidor SQL
// de la gestion de las colas de correo
//
//-------------------------------------------------------------------------------

class mail4 {

	// Definicion de porpiedades

	var $from_email;
	var $from_name;
	var $to_email = array();
	var $subject;
	var $body;
	var $isHTML;
	var $rutaRAW;
    
	// Definicion del constructor

	function mail4($ruta='') {

		if($ruta!='') $this->rutaRAW = $ruta;
		else $this->rutaRAW = SYS_RUTARAW;
		return;
	}

	// Métodos de la clase
    
	/**
	* Mete el email en la cola
	*/
	function encolar() {
    	
    		$ors = new oRS('email_log');
    		$ors->depura=1;
    		
    		for($i=0;$i<count($this->to_email);$i++) {

			$ors->c['from_name'] = (string) $this->from_name;
			$ors->c['from_email'] = (string) $this->from_email;
			$ors->c['subject']  = (string) $this->subject;
			$ors->c['to_email'] = (string) $this->to_email[$i];
			$ors->c['body'] = (string) $this->body;
			$ors->c['isHTML'] = (isset($this->isHTML)) ? $this->isHTML : 0;
			$ors->c['enviado'] = (int) 0;
			$ors->c['error'] = (int) 0;
			
			$ors->insert();
			$ors->reset('email_log');
		}
	}
    
	/**
	* Procesa la cola y realiza todos los envios via Mdaemon
	*/
	function procesarCola() {
	
		$cola = array();
		
		$ors = new oRS();
 		$ors->select("select top 20 id,from_name,from_email,subject,to_email,isHTML,body from email_log where enviado = 0");
		if(!$ors->EOF) {
			while(!$ors->EOF) {

				// Código para tratar el recordset
				
				$cola[] = $ors->c;
				
				$ors->moveNext();
			}

		}
				
		$mens = count($cola);
		
		for($i=0;$i<$mens;$i++) {
					
			// Creamos el contenido del archivo de acuerdo con el formato RAW de MDAEMON
                
			$nombre = md5($cola[$i]['to_email'] . time() . md5(rand(1,100)));

			$rawstr  = "header <XcontrolID: $nombre>" .chr(13).chr(10);
			
			if($cola[$i]['isHTML']) {
				$rawstr .= "header <MIME-Version: 1.0>".chr(13).chr(10);
				$rawstr .= "header <Content-Type: text/html>".chr(13).chr(10);
			}
			
			$rawstr .= "From \"{$cola[$i]['from_name']}\" <{$cola[$i]['from_email']}>" .chr(13).chr(10);
			$rawstr .= "To <{$cola[$i]['to_email']}>".chr(13).chr(10);
			$rawstr .= "Subject <{$cola[$i]['subject']}>".chr(13).chr(10);
			$rawstr .= chr(13).chr(10) . $cola[$i]['body'];
			
			// Creamos el archivo en la carpeta temporal

			$nombre .= ".raw";
			$fp = fopen('rawtmp\\' . $nombre,"w+");
			fwrite($fp,$rawstr,strlen($rawstr));
			fclose($fp);
		
			// Copiar el archivo a la carpeta de Rawfiles
				
			copy('rawtmp\\' . $nombre,$this->rutaRAW . $nombre);

			// Insertamos una entrada en email_log para dejar constancia del envio

			$ors->depura=1;
			$ors->reset('email_log');
			$ors->c['enviado'] = 1;
			$ors->c['archivo'] = $nombre;
			$ors->c['id'] = (int) $cola[$i]['id'];
			$ors->update('id');
				
		} // for
	
	} // function

	/**
	* Inicializa las propiedades del objeto
	*/
	function reset() {
		
		$this->from_email = "";
		$this->from_name = "";
		$this->to_email = array();
		$this->subject = "";
		$this->body = "";
		$this->isHTML = 0;

	}
	
	
	function enviar() {

	global $rutaRAW;

	// Se introduce el email en la cola, una estrada para cada entrada en
	// $to_email
	
	for($i=0;$i<count($this->to_email);$i++) {
	
		// Creamos el contenido del archivo de acuerdo con el formato RAW de MDAEMON
                
			$nombre = md5($this->to_email[$i] . time());

		$rawstr  = "header <XcontrolID: $nombre>" .chr(13).chr(10);
		$rawstr .= "From <{$this->from_email}>" .chr(13).chr(10);
		$rawstr .= "To <{$this->to_email[$i]}>".chr(13).chr(10);
		$rawstr .= "Subject <{$this->subject}>".chr(13).chr(10);
	           
		if($this->isHTML) {
			$rawstr .= "MIME-Version: 1.0".chr(13).chr(10);
			$rawstr .= "Content-Type: text/html".chr(13).chr(10);
		}
	           
		$rawstr .= chr(13).chr(10) . $this->body;

		// Creamos el archivo en la carpeta temporal

		$nombre .= ".raw";
		$fp = fopen('rawtmp\\' . $nombre,"w+");
		fwrite($fp,$rawstr,strlen($rawstr));
		fclose($fp);
		
		// Copiar el archivo a la carpeta de Rawfiles
					
		copy('rawtmp\\' . $nombre,$this->rutaRAW . $nombre);

		// Insertamos una entrada en email_log para dejar constancia del envio
		// TODO: En un futuro se podrian eliminar las referencias al body etc, ya que como tod esta en el archivo no seria necesario y estamos duplicando tontamente informacion

		$ors = new oRS('email_log');
		$ors->c['from_name'] = (string) $this->from_name;
		$ors->c['from_email'] = (string) $this->from_email;
		$ors->c['subject']  = (string) $this->subject;
		$ors->c['to_email'] = (string) $this->to_email[$i];
		$ors->c['body'] = (string) $this->body;
		$ors->c['isHTML'] = (isset($this->isHTML)) ? $this->isHTML : 0;
		$ors->c['archivo'] = (string) $nombre;
		$ors->c['enviado'] = (int) 1;
		$ors->c['error'] = (int) 0;
		$ors->insert();

	} // for

    }

    //function obtenerinfoarchivo() para cuando hayan errores

}

?>
  #5 (permalink)  
Antiguo 23/03/2009, 06:48
Avatar de rafaconpu  
Fecha de Ingreso: febrero-2006
Mensajes: 331
Antigüedad: 18 años, 2 meses
Puntos: 3
Respuesta: Problemas con include

No he visto nada raro en cuanto a impresión por pantalla.

¿Has probado a cambiar la línea del include a otra posición, por ejemplo al inicio del todo? ¿Este include depende de otro include?

Me da que pensar que si te muestra el contenido es porque desde otro include o alguna parte de código puede que hagas un "echo" y hagas referencia a la class.mail.php (al objeto en cuestión) o algo así.

Prueba a comentar el include class.general.php. seguramente te de un error porque el class.mail tire de algunos datos pero es para comprobar si te sigue mostrando el código por pantalla.
  #6 (permalink)  
Antiguo 23/03/2009, 08:20
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 6 meses
Puntos: 18
Respuesta: Problemas con include

lo más probable de tu error es que sea por el tag corto que estás utilizando en el archivo de tu clase mail4.

esto se debe a que en el php.ini la directiva short_tags está en Off. Deberías de uniformizar el uso de los tags php, lo recomendable es el tag completo(<?php ?>), con esto no tendrás ningún problema cual sea la configuración del short_tag en el php.ini.

por otro lado es probable que en la versión 6 de php ya no esté disponible otros tags más que la completa.

suerte.
__________________
Software libre para un mundo libre.

Eventualmente en el foro.
  #7 (permalink)  
Antiguo 24/03/2009, 02:54
 
Fecha de Ingreso: diciembre-2008
Mensajes: 21
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Problemas con include

Gracias argy era lo que tu decías, me faltaba escribir php detras de <?, ahora ya funciona bién
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 14:11.