Ver Mensaje Individual
  #2 (permalink)  
Antiguo 14/11/2005, 05:06
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Olvidate de "Autentificator" para preguntas de este estilo . . sé más genérico, tu problema concreto es más bien de "conecptos" sobre PHP (te hago el comentario para que obtengas más opiniones y respuestas).

Cuando tu dices usar la "estructura" de "Autentificator" como un script para hacer várias acciones .. te refieres al "gestion_usuarios.php". Dicho script realiza várias acciones, concretamente de -dos- tipos bien diferentes:

* las que presentan salida (generan HTML para componer una página).
* las que NO presentan salida (proceso PHP puro).

Si un script de estas características puede hacer esas dos cosas, necesáriamente para los procesos que "generen salida" debes componer tu página HTML completa para ese caso. Como en "mi caso" (Autentificator) .. mis cabeceras son iguales para todos los procesos que generan salida .. uso "funciones" para generar esas cabeceras .. así que para componer un "caso" de los que gestiona el script que genera salida, simplemente voy llamando a esas funciones que en el fondo generan "HTML" para componer la página que Necesito para ese caso concreto.

Si tu tienes "cabeceras" (o mejor dicho "página HTML" que generar) distintas .. perfectamente puedes incrustrar directamente en el "caso" (if() ... o switch() ....) que corresponda tu HTML "fijo" como comentas tu como método "clásico" (que no es que sea clasico .. sino que es el caso típico para un script PHP que genera -sólo- una "salida" (una página HTML completa .. cuando se procesa).

De lo dicho, podrías hacer algo tipo:

Código PHP:
switch($_GEt['accion']){
case "ver":
?>
<html>
<head>
</head>
<body>
blablabal
<a href="<? echo $_SERVER['PHP_SELF']?accion=proceso ?>">procesar</a>
</body>
</html>
<?
break;
case 
"proceso":
// código PHP
// Proceso PHP "puro" .. aquí no se genera salida, se redirecciona a este mismo script cuando se termine el proceso al "caso" que corresponda .. normalmente a uno que "genera" salida.
header ("Location: $_SERVER['PHP_SELF']?accion=ver");
exit;
break;
case 
"listar":
?>
<html>
<head>
</head>
<body>
blablabal listar
</body>
</html>
<?
break;
}
Si te fijas .. generamos igualmente UNA página completa HTML para cada "caso" que requiera salida.

NO uso una estructura tipo:
Código PHP:
<html>
<head>
</head>
<body>
<?
switch ($_GET['accion']){
case 
"ver":
echo 
"blala blabla";
break;
case 
"proceso":
header ("Location .....");
break;
}
?>
</body>
</html>
Por qué generarían conflicto con el "header()" que hay por médio de la "salida" generada al principio del mismo script (del "HTML" de la cabecera). Esto se puede "solventar" con funciones de tratamiento del buffer de PHP (ob_start() .. etc) .. Por mi parte no soy nada partidario de este tipo de soluciones pues -sobrecargas- PHP en un proceso que perfectamente puedes solventar "ordenando" tu código como te presento más arriba o si realmente se "Repite" esa "cabecera/pié" ... usa funciones o motores de gestión de "templates".

Un saludo,