Problemas con $_SERVER[DOCUMENT_ROOT]

139 views
Skip to first unread message

Xavier Romero

unread,
May 10, 2012, 8:15:33 PM5/10/12
to php---pro...@googlegroups.com, php...@googlegroups.com
Hola a todos disculpen tengo un problema raro yo tengo mi paginas web en php que la hice en la plataforma linux ahi me funciona bien no me da errores en cambio cuando la pase a windows 7 que tiene servidor wampserver al ejecutar mi web  me arroja el siguiente error :




(! ) Fatal error: Cannot redeclare __autoload() (previously declared in C:\wamp\www\adminClientes\config\autoload.php:2) in C:\wamp\www\adminClientes\config\autoload.php on line 40




Este es mi codigo de index.php y el autoload.php a ver si me ayudan a ver donde esta el problema :

index.php


<?php
include($_SERVER[DOCUMENT_ROOT]."/adminClientes/config/config.php");
include(APLICA.'/config/autoload.php');
//include 'src/Controller/Controller.php';
abstract class index
 {
      public static function run()
      {
          //var_dump($_SERVER[DOCUMENT_ROOT]);
      $objetoContenido=new Controller();
                $datosGetPost=self::obtDatosGetPost($_POST['nombre'],$_POST['apellido'],$_POST['email'],$_POST['clave'],$_POST['opcion'],$_POST['mensaje'],$_GET['action']);
                $datosDecodificados=  self::obtDatosDecodificados($_GET['datos']);
                $presentar=$objetoContenido->presentarContenido($datosGetPost,$datosDecodificados);
   //           $presentar=$objetoContenido->presentarContenido($_GET['action'],$_POST['mensaje'],$_GET['email'],array($_POST['nombre'],$_POST['apellido'],$_POST['email'],$_POST['clave']));
    echo $presentar;       
      }
      public static function obtDatosGetPost($nombre,$apellido,$email,$clave,$opcion,$mensaje,$action)
      {
       
        $presentar= array ("nombre" => $nombre,"apellido" => $apellido,"email" => $email,"clave" => $clave,"opcion" => $opcion,"mensaje" => $mensaje,"action" => $action );
         
          return $presentar;
      }
     
      public static function obtDatosDecodificados($datos)
      {
         $presentar=stripslashes($datos);
         $presentar=unserialize($presentar);  
         
          return $presentar;
      }
 }  
 
 index::run();
?>


autoload.php

<?php
function __autoload($class)
{

  if($class  == "Controller") 
  {    
       $class =APLICA."/src/Controller/".$class.".php";
      
  }
   if($class  == "ControllerBuscar") 
  {    
       $class =APLICA."/src/Controller/".$class.".php";
  }
   if($class  == "ControllerAgregar") 
  {    
       $class =APLICA."/src/Controller/".$class.".php";
  }
     if($class  == "ControllerActualizar") 
  {    
       $class =APLICA."/src/Controller/".$class.".php";
  }
    if($class  == "ControllerBorrar") 
  {    
       $class =APLICA."/src/Controller/".$class.".php";
  }
   if($class  == "Usuario") 
  {    
       $class =APLICA."/src/entity/".$class.".php";
  }
   if($class  == "Mysql") 
  {    
       $class =APLICA."/src/entity/".$class.".php";
  }
     if($class  == "Plantilla") 
  {    
       $class =APLICA."/lib/".$class.".php";
  }
//var_dump($class);
     include $class;
}
?>


Ya he hecho algunas pruebas el error segun veo esta en el autoload sin embargo si entra al autoload y si incluye la clase controller  pero no se porque me marca el error espero q me puedan ayudar gracias .

Agustin Quiroga

unread,
May 10, 2012, 8:18:13 PM5/10/12
to php...@googlegroups.com

Proba remplazar los include por include_once

Agustín Quiroga
www.webq.com.ar

--
Has recibido este mensaje porque estás suscrito al grupo "Grupo PHP Argentina" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a php...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a php-arg+u...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/php-arg?hl=es.

Xavier Romero

unread,
May 11, 2012, 12:56:41 AM5/11/12
to php...@googlegroups.com
Hola el mismo error me sale :-/  jeje que sera es raro en verdad

Agustin Quiroga

unread,
May 11, 2012, 8:09:14 AM5/11/12
to php...@googlegroups.com

Consejo... Debug, anda poniendo die; hasta dar con el include que lo reescribe.
suena a una recursion en los includes.

Agustín Quiroga
www.webq.com.ar

Mariano Iglesias

unread,
May 11, 2012, 8:13:54 AM5/11/12
to php...@googlegroups.com
Y porque no haces un autoload mas efectivo, en lugar de hacerlo para
cada caso? Incluso te podrias apegar a las convenciones. Y para no
reinventar la rueda podrias usar el ClassLoader que es parte de los
symfony components:

http://symfony.com/doc/current/components/class_loader.html

--
Mariano Iglesias | Co-Founder & CTO at WORKANA
mar...@workana.com / http://workana.com

Xavier Romero

unread,
May 11, 2012, 11:18:14 AM5/11/12
to php...@googlegroups.com
Hola a todos jeje ya resolví el problema les agredes a todos ya estaba perdiendo un poco la practica en php jejeje
bueno Agustin Quiroga tenias razón era de cambiar el include_once en la parte de las demas páginas osea en el index.php y el autoload.php no modifique nada solo en el resto de las paginas le agreege  include_once   ya que si uso autoload.php en todas las demas paginas por logica lo deberia haber puesto include_once yo  habia puesto include   X-D. Por cierto Mariano Iglesias disculpa podrias explicarme o dejarme un tuto bien explicado jejeje de como implemento esa clase  ClassLoader no tengo ni idea de como hacerlo a ver si me das una mano me parece interesante,  de nuevo gracias a todos.


Saludos Cordiales.
Romero López Omar


Reply all
Reply to author
Forward
0 new messages