Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Frameworks y PHP orientado a objetos (http://www.forosdelweb.com/f68/)
-   -   Dudas por Clases creadas en PHP 4 y PHP 5 (http://www.forosdelweb.com/f68/dudas-por-clases-creadas-php-4-php-5-a-562497/)

quinqui 03/03/2008 15:55

Dudas por Clases creadas en PHP 4 y PHP 5
 
Holas a todos.

Les cuento que el año pasado programé un módulo administrador usando íntegramente clases php, específicamente como lo señala la referencia de php 4.x.

Pues bien, supe después que la construcción de clases en PHP 4.x es muy distinta y prácticamente incompatible con la de PHP 5.x

Por ello, cuando intenté ejecutar el administrador en un servidor con PHP 5.x, no me sorprendió que no funcionara. Capturé la instancia e hice que mostrara un mensaje en pantalla si la versión de PHP era mayor igual a 5, de modo de avisar por qué se cancelaba la carga de la página, pero nada más.

Ahora bien, les contaré cuáles son los 3 servidores que tengo (donde he probado estos módulos):
- 1 de prueba (el mío, localhost) tiene PHP 5.2.5
- 1 de producción (que fue abandonado) tiene PHP 4.4.8
- 1 de producción (activo) tiene PHP 5.2.4

Ahora lo extraño:

Cuando intento ejecutar los módulos que llaman a las clases creadas bajo PHP 4.x, los resultados son los siguientes:

- En el servidor local (PHP 5.2.5) se ejecuta perfecto O_O
- En el servidor remoto con PHP 5.2.4 no se ejecuta *_*
- En el servidor remoto con PHP 4.4.8 tampoco se ejecuta! +_+

¿Por qué pasa esto? No entiendo nada!!! T________T

Desde ya agradezco su buena voluntad......
Saludos!

GatorV 03/03/2008 22:07

Re: Dudas por Clases creadas en PHP 4 y PHP 5
 
Podrias publicar una parte de tu codigo? Para identificar en donde puede estar el error....

quinqui 04/03/2008 07:07

Re: Dudas por Clases creadas en PHP 4 y PHP 5
 
Ay, ay! Qué me pides GatorV O_O
Es que son muchos archivos T___T..... Hay una clase con otras 5 hijas, más la clase que uso para conectarme a la base de datos... De hecho, es con esta última que estoy probando estos sucesos. Y como te decía, no es que me tire error: simplemente detiene la ejecución, por eso estoy tan confundida. Si tirara error al menos sabría qué pasa, grrrr............

Igual te dejo el script php de pruebas donde uso mi clase pa conectarse a la base:

Código PHP:

<h3>Pruebas Clase ConexionBD &copy; 2007 ccasanova</h3>
<?
print "<p>PHP V.".phpversion()."\n";
print 
"<br>Origen (".getenv("REMOTE_ADDR").")</p>\n";

foreach (
$_POST as $campo => $valor)
{    $
$campo $valor;    }

if (
$ok)
{
    
$letras = array();
    for (
$i 0$i strlen($cl); $i++)
    {    
$letras[$i] = $cl[$i];    }
    
    print
"<p>Intentando Acceder a $us @ $hs $bd (Clave ".str_replace($letras"*"$cl).")</p>";
    
    require_once 
"../lib/ConexionBD.class.php";
    
    
$c             = new ConexionBD();
    
$c->base    $bd;
    
$c->clave    $cl;
    
$c->usuario    $us;
    
$c->host    $hs;
    
    
$mens_error    "";
    
    if (
phpversion() >= 5)
    {
                
// Esto lo agrego por si acaso, sin mucho conocimiento de uso
                // más que nada porque esto es una prueba:
        
try
        {    
$c->Conectar();    }
        catch(
Exception $exc)
        {    
$c->estado false$mens_error $exc->getMessage();    }
    }
    else
    {    
$c->Conectar();    }
    
    if (
$c->estado)
    {    print
"<h4>OK!</h4>";    }
    else
    {    print
"<h5>Error: ".$c->error_mensaje[$c->error]." \n<br>Detalle: ".$c->error_detalle." <br>Mas: $mens_error</h5>";    }
}
else
{
    
$hs "localhost";
    
$bd "central";
}
?>

<form method="post">
 <input type="hidden" name="ok" id="ok" value="1">
 HS <input type="text" name="hs" id="hs" value="<?= $hs?>"> <br>
 BD <input type="text" name="bd" id="bd" value="<?= $bd?>"> <br>
 US <input type="text" name="us" id="us" value="<?= $us?>"> <br>
 CL <input type="password" name="cl" id="cl"> <br>
 <input type="submit" value="Conectar"> <br>
</form>
<p><a href="<?= pathinfo($_SERVER["PHP_SELF"], PATHINFO_BASENAME); ?>" title="Volver al Inicio">&laquo; Inicio &laquo;</a></p>

Olvidé decir que se cae, dentro de la clase, cuando intenta "Conectar()", específicamente cuando ejecuta el método mysql_connect()... Se queda pegado, y al rato lo suelta sin resultados ni mensaje de error, aunque detiene la ejecución del resto del script.

quinqui 04/03/2008 08:04

Re: Dudas por Clases creadas en PHP 4 y PHP 5
 
Lo he pillado!!! Bueno, lo que concierne al servidor con PHP 4.x que no ejecutaba los scripts :D
Era (llega a dar entre rabia y vergüenza, jejeje) que cuando subí los php al servidor, los dejó sin permisos de ejecución!!!! xD Jajajaja.......................

Bueno, esop. Sigo revisando, que si es el mismo descuido el que tengo en los otros servidores, tal vez entonces PHP 5 sí corra las clases creadas en PHP 4 después de todo o____o....

GatorV 04/03/2008 09:41

Re: Dudas por Clases creadas en PHP 4 y PHP 5
 
¿Podrías publicar el código de la clase ConexionDB?

Saludos.

quinqui 04/03/2008 11:08

Re: Dudas por Clases creadas en PHP 4 y PHP 5
 
Uhm, para qué? lo pregunto porque como dije, el problema al final no tenía que ver con el código sino con los permisos de los archivos en el servidor xD.... (de hecho corre en PHP 5, lo cual creí que no se podría... bueno, seguramente a la inversa sí sería lo difícil)

hector2c 04/03/2008 12:27

Re: Dudas por Clases creadas en PHP 4 y PHP 5
 
jajaja, esas caritas si que son de desesperación...

GatorV 04/03/2008 13:06

Re: Dudas por Clases creadas en PHP 4 y PHP 5
 
Pensé que todavía tenias el problema en el servidor de PHP5, pero me alegra saber que ya lo pudiste resolver.

Saludos.


La zona horaria es GMT -6. Ahora son las 21:34.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.