Foros del Web » Programando para Internet » PHP »

Acerca de Template

Estas en el tema de Acerca de Template en el foro de PHP en Foros del Web. Hola a todos . . . E bajado un libro de visitas que no utiliza base de datos, al momento de subirlo a mi servidor ...
  #1 (permalink)  
Antiguo 01/08/2006, 10:56
Avatar de Chudux  
Fecha de Ingreso: marzo-2006
Mensajes: 247
Antigüedad: 18 años, 1 mes
Puntos: 3
Acerca de Template

Hola a todos . . .
E bajado un libro de visitas que no utiliza base de datos, al momento de subirlo a mi servidor no ejecuta acciones submit, pero si lo ejecuto en mi apache funciona sin problema.
e notado que trae siertas lineas de codigo que jamas habia visto como por ejemplo template(admin/admin.php);
yo supongo que es para abrir una pagina llamada admin, es algo asi como include o no?
ahora esta instruccion funciona en todas las versiones de php?
igual la instruccion switch tambien funciona en todas las versiones?

la verda es que no comprendo por que en el servidor no funciona correctamente
favor de ayudarme

saludos
  #2 (permalink)  
Antiguo 01/08/2006, 11:11
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
No supongas nada ni hagas que lo hagamos nosotros .. INDICA el código que usas (o donde verlo) y deja que opinemos al respecto.

Por mi parte el tema que dices que "no ejecuta acciones de submit" .. podría! (gran suposición) que tu aplicación no usa los arrays superglobales ($_POST ... $_GET .. etc) y que tu servidor donde no funciona usa (php.ini): register_globals a OFF (cosa segura y recomendable).

El tema de los "template(.....)" ... así como lo mencionas totalmente sacado de contexto es imposible saber que hace exactamente .. (en principío es una "función" .. ahora .. lo que haga es otra cosa).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 01/08/2006, 11:15
Avatar de Chudux  
Fecha de Ingreso: marzo-2006
Mensajes: 247
Antigüedad: 18 años, 1 mes
Puntos: 3
Hola gracias por responder, pero la verdad es que siempre que tu respondes tus respuestas son poco agradables como que ofendes a los usuarios, no lo tomes mal es solo una critica constructiva.

aca esta el codigo al cual me referi

Código PHP:
include("config.php");
    include(
"funciones.php");

    
Template("html/tpl_arriba.html");

    switch(
$accion) {

    
// Formulario para publicar un mensaje

    
case firmar:
    
Template("html/tpl_formulario.html");
    break;

    
// Publicar un mensaje

    
case publicar:

    
$fecha date("d-m-y H:i a");

    
// Comprobación de campos

    
$nombre trim($nombre);
    
$email trim($email);
    
$mensaje trim($mensaje);

    if(empty(
$nombre)) {
          
$error[] = $alerta[0];
    }
    if(
$email != "") {
         if (!
ereg("^[^@]+@([a-zA-Z0-9\-]+\.)+[a-zA-Z0-9]{2,}$"$email)) {
            
$error[] = $alerta[1];
        }
    }
    if(empty(
$mensaje)) {
        
$error[] = $alerta[2];
    }

    
// Filtro de malas palabras

    
if($FiltroGroserias == "SI") {
    for(
$i 0$i sizeof($palabrotas); $i++) {
    if(
ereg($palabrotas[$i], $nombre) OR ereg($palabrotas[$i], $email) OR ereg($palabrotas[$i], $mensaje)) {        
        
$error[] = $alerta[3];
    }
    }
    }

    if(
$error) {

    include(
"html/tpl_error.html");

    } else {

    
// Filtramos el mensaje

    
HTML();
    
Remplazar();
    
$mensaje ereg_replace("\r\n","<br>"$mensaje);

    
//  Guardamos la firma en el fichero

    
$fp fopen($FicheroId,"r");
    
$id fread($fpfilesize($FicheroId));
    
$id ++;
    
fclose($fp);

    
$fp fopen($FicheroId"w");
    
fwrite($fp$id);
    
fclose($fp);

    
$firma "$id|@|$nombre|@|$email|@|$url|@|$mensaje|@|$fecha|@|\n";
    
$fp fopen($FicheroBase"a");
    
fwrite($fp$firma);
    
fclose($fp);

    
Template("html/tpl_correcto.html");

    }
    break;
    default:

    
// Mostrar todas las firmas

    
$Base file($FicheroBase);
    
$Orden array_reverse($Base);

    if(empty(
$paginado)) {
        
$paginado 0;
    }

    
$Mostrar $paginado $LimiteMensajes;

    for (
$i $paginado$i count($Orden) AND $i $Mostrar$i++) {
        
$dato explode("|@|"$Orden[$i]);

    
$nombre $dato[1];
    
$email $dato[2];
    
$url $dato[3];
    
$mensaje $dato[4];
    
$fecha $dato[5];

    
// Template

    
Template("html/tpl_mensajes.html");

    }

    echo 
"<table cellpadding='4' cellspacing='1' width='450' align='center' class='normal'>";
    echo 
"<tr><td width='50%'>";
    
Paginacion();
    echo 
"</td><td width='50%' align='right'>";
    echo 
"<b><a href='index.php?accion=firmar'>Nueva Consulta</a></b>";
    echo 
"</td></tr></table>";

    }

    
Template("html/tpl_abajo.html");
?> 

Última edición por Cluster; 01/08/2006 a las 12:24
  #4 (permalink)  
Antiguo 01/08/2006, 12:16
Avatar de pato_volador  
Fecha de Ingreso: octubre-2005
Ubicación: Planeta tierra
Mensajes: 254
Antigüedad: 18 años, 6 meses
Puntos: 0
Hola mi estimado, resulta que la funcion "template" es una funcion NO nativa de PHP, seguramente esta declarada en el archivo "funciones.php" checalo alli.

y si, switch es una funcion basica de php (y de todos los lenguajes de programacion, que yo sepa... jejejeje)

Ahora, por que no funciona? no lo se.. el codigo lo veo bien, por que no pones el mensaje de error q te devuelve el servidor..?

saludos!
__________________
De todas las cosas que queria ser... :-D acabe siendo un pato volador... :risa:
http://patovolador.wordpress.com
  #5 (permalink)  
Antiguo 01/08/2006, 12:22
Avatar de Chudux  
Fecha de Ingreso: marzo-2006
Mensajes: 247
Antigüedad: 18 años, 1 mes
Puntos: 3
Gracias pato_volador lo que pasa es que no manda ningun error al momento por ejemplo de hacer click en nuevo tema no realiza ninguna accion y si lo ejecuto en mi localhost funciona sin ningun problema
si gustas te doy mi msn para ablar por interno

saludos gracias
  #6 (permalink)  
Antiguo 01/08/2006, 12:31
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Te doy un consejo ..

Si usas:

http://www.php.net/nombre_funcion_qu..._que_es_de_php

podrías ver rápidamente si existe o no ... (hasta que conozcas más el lenguaje y veas por tí mismo si existen o no ..)

También ayuda ver el código que "llamas" en ese mismo código .. ese tal "funciones.php" y bueno .. conocer el concepto de "función" en sí.

Sobre el código que expones (sé que no es tuyo .. no te "hecho" la culpa a tí .. pero es como "aviso" para que que quiera usarlo):

NO usa los arrays superglobales $_GET .. $_POST .. etc. Esto de por si ya te va a plantear problemas como los que observas.

Por ejemplo .. no sería:
switch($accion)

sino

switch($_GET['accion'])
ó
switch($_POST['accion'])

Eso entre otras variables que llegan en forma "externa" a tu script.

Esta es "demasiado" para este tipo de tarea que se trata de convertir los sáltos de línea en sus tag's HTML corespondientes:

$mensaje = ereg_replace("\r\n","<br>", $mensaje);

Debería simplemente usarse (que no usa el motor de expresiones regulares):

$mensaje = nl2br($mensaje);


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 01/08/2006, 12:36
Avatar de Chudux  
Fecha de Ingreso: marzo-2006
Mensajes: 247
Antigüedad: 18 años, 1 mes
Puntos: 3
Gracias Cluster
Ahora me quedo todo claro, es verdad el codigo no lo realize yo pero con el voy a prender artas cosas
es mas voy agregar los $_post y los $_get
ahora por que si en localhost funciona?
  #8 (permalink)  
Antiguo 01/08/2006, 12:48
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por Chudux
Gracias Cluster
Ahora me quedo todo claro, es verdad el codigo no lo realize yo pero con el voy a prender artas cosas
es mas voy agregar los $_post y los $_get
ahora por que si en localhost funciona?
Si comparas tu configuración de PHP:

Código PHP:
<?
phpinfo
();
?>
ahí veras que en tu casa lo más probable uses:
register_globals = ON

y en tu servidor uses:
register_globals = OFF

Te recomiendo encarecidamente que leas esta FAQ al respecto:
http://www.forosdelweb.com/showthrea...989#post238989

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 16:56.