Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

problema con classes

Estas en el tema de problema con classes en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Buenas yo hago un include del fichero q contiene el código q proporciono a continuación y me queda la pagina en blanco, cuando le comento ...
  #1 (permalink)  
Antiguo 28/04/2009, 13:20
 
Fecha de Ingreso: diciembre-2008
Mensajes: 190
Antigüedad: 15 años, 4 meses
Puntos: 6
problema con classes

Buenas yo hago un include del fichero q contiene el código q proporciono a continuación y me queda la pagina en blanco, cuando le comento la linea donde a la vez incluyo inc.class.virt.mail.php me muestra bien la pagina, pero obviamente necesito ese archivo para utilizar... tb mas abajo pongo el codigo del inc.class.virt.mail.php ... (y en realidad ademas de este mail.php son muchos archivos mas, pero con todos ocurre lo mismo asi pongo a este nada mas)
Como aclaración esta aplicacion funcionaba perfectamente antes de que cambien el servidor, y donde tenia instalado php4 (creo q en el nuevo tiene php5).
Saludos, y espero q puedan ayudarme.

Código PHP:
<?php    class local_dirs
    
{
        function 
local_dirs($site_offset=""
        {
            global 
$DOCUMENT_ROOT;
            
$this->root                 $DOCUMENT_ROOT "/$site_offset/";

            
$this->sys                    $this->root        "sys/";
            
$this->inc                    $this->sys        "inc";
            
$this->classes            $this->sys        "classes";
            
$this->lib                    $this->sys        "lib";

            
$this->media                $this->root        "sys/media/";
            
$this->skins                $this->media    "skins";
            
$this->images                $this->media    "images";

            
$this->files                $this->root        "files/";
            
$this->tmp                    $this->files    "tmp";
            
$this->notas                $this->files    "notas";
        }
    }

    
$local_dirs    = new local_dirs($offset);

    require(
"$local_dirs->classes/inc.class.virt.mail.php");            ?>
y aca el inc.class.virt.mail.php


Código PHP:
 <?php

class email
{
    var 
$from;
    var 
$subject_generalizer;

    function 
email($from="V",$gen="[VServices]")
    {
        
$this->from=$from;
        
$this->subject_generalizer=$gen;
    }

    function 
sendText($to,$subject,$contenido)
    {
        
//echo "$to<Br> $subject<Br> $contenido<Br>";
        
mail($to$this->subject_generalizer.$subject$this->simpleBoundary($contenido), $this->messageHeader());
    }

    function 
sendHtml($to,$subject,$contenido)
    {
        
//echo "$to<Br> $subject<Br> $contenido<Br>";
        
mail($to$this->subject_generalizer.$subject$contenido$this->messageHeaderHtml());
    }

    function 
sendForm($to,$subject,$contenido,$header="",$footer="")
    {
        
$tcontent"$header\n\nFecha>> "date("d-m-Y H:i"). " \n";
        
//var_dump($contenido);
        
foreach($contenido as $nombre => $contenido)     $tcontent.= "[$nombre] $contenido\n";
        
$tcontent.="\n$footer";
        
mail($to$this->subject_generalizer.$subject$this->simpleBoundary($tcontent), $this->messageHeader());
    }

    function 
sendForms($to,$subject,$contenido,$header="",$footer="")
    {
        
$tcontent"$header\n\nFecha>> "date("d-m-Y H:i"). " \n";
        
//var_dump($contenido);
        
foreach($contenido as $clave => $formulario
        {
            
$tcontent.= "=$clave================== \n";
            foreach(
$formulario as $nombre => $contenido
            {
                
$tcontent.= "[$nombre] $contenido\n";
            }
        }
        
$tcontent.="\n$footer";
        
//echo $tcontent;
        
mail($to$this->subject_generalizer.$subject$this->simpleBoundary($tcontent), $this->messageHeader());
    }

    function 
messageHeader()
    {
        
$message_headers="From: $this->from\n";
        
$message_headers.="MIME-Version: 1.0\n";
        
$message_headers.="Content-type: multipart/alternative; boundary=\"simple boundary\"\n";
        
$message_headers.="X-Mailer: PHP/" phpversion() . "\n";
        return(
$message_headers);
    }

    function 
messageHeaderHtml()
    {
        
$headers  ="From: $this->from\n";
        
$headers .= "MIME-Version: 1.0\n"
        
$headers .= "Content-type: text/html; charset=iso-8859-1\n"
        
$message_headers.="X-Mailer: PHP/" phpversion() . "\n";
        return(
$headers);
    }

    function 
simpleBoundary($tcontent)
    {
        
$message_preamble="This is a multi-part message in MIME format.\n\n";
        
$message_boundary="--simple boundary\n";

        
$message .= $message_preamble;
        
$message .= $message_boundary;
        
$message .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
        
$message .= "Content-Transfer-Encoding: quoted-printable\n\n";
        
$message .= $tcontent."\n";
        
$message .= $message_boundary;
        return(
$message);
    }


}
?>
  #2 (permalink)  
Antiguo 28/04/2009, 13:53
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: problema con classes

Tema trasladado desde PHP
  #3 (permalink)  
Antiguo 28/04/2009, 15:44
Avatar de lisandro Arg  
Fecha de Ingreso: octubre-2003
Ubicación: Cordoba, Argentina
Mensajes: 945
Antigüedad: 20 años, 6 meses
Puntos: 24
Respuesta: problema con classes

Hola,

Si el problema lo tuviste al cambiar de servidor provablemente sea el $DOCUMENT_ROOT, probá con $_SERVER['DOCUMENT_ROOT']

http://ar.php.net/manual/es/faq.usin...gister-globals

deberia funcionar pero si no lo hace podes hacer un echo $local_dirs->classes antes del include
  #4 (permalink)  
Antiguo 29/04/2009, 09:30
Avatar de anlhp  
Fecha de Ingreso: agosto-2008
Mensajes: 121
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: problema con classes

hola, me parece que lo que te esta pasando es que tienes desactivada la notificacion de errores en php, por eso cuando incluyes, php detecta un error en el archivo que estas incluyendo y para la ejecucion del script, para comprobarlo mira la hora, recarga la pagina y ve al fichero error_log (o algo parecido, no recuerdo bien) y mira ver si te ha puesto algun error con hora y fecha actuales(asi es a las malas)

(a las buenas y mas facil)
crea un script php con una unica llamada a la funcion phpinfo()
y busca la seccion

Configuration
PHP Core
...
display_errors
...

si display_errors esta en off ese es el problema y todo lo que tienes que hacer es habilitarlo en el archivo de configuracion php.ini que utiliza el servidor (hay veces que existe mas de uno, para saber cual es miralo en la salida de phpinfo() en la seccion: Loaded Configuration File)

Última edición por anlhp; 29/04/2009 a las 09:37
  #5 (permalink)  
Antiguo 29/04/2009, 11:27
 
Fecha de Ingreso: diciembre-2008
Mensajes: 190
Antigüedad: 15 años, 4 meses
Puntos: 6
Antes q nada gracias por su tiempo.
si, esta desactivado el display_errors, ya pedi q lo activen pero no creo q me orienten mucho igual...
En cuanto al $_SERVER['DOCUMENT_ROOT'] ya lo habia intentado y no habia caso...
el echo me devuelve bien la ruta donde se encuentra var\httpdocs\sys\classes
el problema evidentemente se da cuando intenta entra al fichero donde estan las clases ,porq incluirlo, lo incluye...

Bueno habia un par de problemas en php.ini, el principal era q estaban deshabilitadas las variables globales, y el otro es q estaba en safe_mode on y por ahi se utiliza la funcion para parsear un .ini ...
Gracias por la colaboracion.Saludos.

Última edición por GatorV; 29/04/2009 a las 14:05
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 11:45.