Foros del Web » Programando para Internet » PHP »

Dudas diversas para administración de sitio

Estas en el tema de Dudas diversas para administración de sitio en el foro de PHP en Foros del Web. Buenos días: Estoy desarrollando la parte de administración de una web y me han surgido una serie de dudas, que espero podías resolverme, puesto que ...
  #1 (permalink)  
Antiguo 23/06/2008, 03:51
 
Fecha de Ingreso: noviembre-2007
Mensajes: 154
Antigüedad: 17 años
Puntos: 2
Pregunta Dudas diversas para administración de sitio

Buenos días:

Estoy desarrollando la parte de administración de una web y me han surgido una serie de dudas, que espero podías resolverme, puesto que aún se me escapan muchas cosillas de PHP, ya que no llevo mucho tiempo con ello.

Os pongo en antecedentes y os comento la idea 'global'. La web es para una empresa familiar, en la que tenemos una serie de clientes, a los que queremos darle la posibilidad de acceder a una zona privada, donde puedan descargarse documentación y modificar su ficha de cliente. Por otra parte, nosotros poder 'administrar', tanto la documentación subida al servidor, como la BB.DD. de clientes.

Una vez comentada la 'foto' de lo que sería el proyecto, entro en los pormenores, que separo en 'Dudas de maquetación', por decirlo de una manera, y en 'Dudas de código'.

1.- Dudas de maquetación:
1.1 La web está ya diseñada y la intención es que la 'parte privada' no sea diferente a la pública, simplemente muestre un menú nuevo e incluya la capa de seguridad, así como todo lo referente a las sesiones. Para ello, lo que he hecho, ha sigo crear un 'index.php', que muestra la web sin estar conectado y a partir de éste, he creado un 'index2.php', en el que se diferencia únicamente en que carga la capa de seguridad. La duda es si esta sería la forma más correcta de hacerlo.
1.2 Por otra parte, cuando carga el 'index2.php', en la capa donde se muestran los contenidos hace un 'include' de un fichero llamado 'switch2.php', que es igual que el del 'index1.php', pero con los nuevos enlaces.


2.- Dudas de código:
2.1 La BB.DD. de clientes, va a estar previamente cargada en la web, con lo que no necesitan registrarse como tal, aunque sí he creado un campo 'estado', con valores '0' y '1', que define si el cliente está activo o no. Para activar el usuario y evitar problemas con la protección de datos, la idea es que cuando accedan la 1ª vez, deben aceptar un contrato y demás rollos. La duda es que no estoy seguro de cómo hacerlo, ya que el usuario está registrado y con clave en BB.DD. En principio he pensado crear una clave genérica para cada usuario, de manera que se accede con su login y pass y si el campo estado está a '0', le obliga a leer el acuerdo o contrato de acceso, para el tema de la LOPD y en el momento en que acepta, ya le cambia el estado a '1' y no le volvería a salir. Mientras el cliente no active su cuenta, no debería pasar al 'index2.php', al no estar logado. Vale, pues esta es la idea y no estoy seguro de si se puede hacer o no, que compruebe el campo 'estado', si es '== 0', entonces, muestra el acuerdo y no hace el login, mientras que si '== 1', va directamente a 'login.php' o como finalmente se llame ¿Esto se podría hacer así?
2.2 Por más que leo en foros, no me queda muy claro el tema de cómo mostrar ciertos elementos a usuarios según perfil. Esto enlaza con el tema del archivo 'switch2.php' que comentaba anteriormente, en el que habilito ciertos enlaces. Creo que no es la mejor forma de hacerlo, el que al cargar el 'index2.php', cargue un nuevo switch, pero no estoy seguro de cómo hacerlo.


Bueno, pues después de este super-rollo, espero que podáis al menos orientarme un poco.

Muchas gracias.
  #2 (permalink)  
Antiguo 23/06/2008, 08:32
isra00
Invitado
 
Mensajes: n/a
Puntos:
De acuerdo Respuesta: Dudas diversas para administración de sitio

Hola, te ayudaré en el 1º punto, porque en el 2º francamente te has enrollado como una persiana

En primer lugar, te aconsejo que dejes de nombrar a tus scripts "index1", "index2" y por el estilo. Dale nombres que los definan, como "login", "cabecera", etc

Es buena idea los de tener la parte privada igual que la pública pero con la capa de seguridad, yo te recomiendo que hagas un archivo que compruebe la sesión, por ejemplo, "seguridad.php":

Código PHP:
if (!$_SESSION["usuario"]) header("login.php) 
...con todas las comprobaciones que quieras hacer. Este archivo sería invocado en la cabecera (supongo que tendrás un include con la cabecera o algo del estilo), pero IMPORTANTE, antes de generar ninguna salida, ya que las cabeceras (en este caso de redirección) deben ser enviadas por HTTP antes de la propia página. Es decir, si tienes un archivo "cabecera.php" más o menos así:
Código PHP:
<html><head><title>Empresa</title></head><body><div id="cabecera"></div>... 
...que sería común para las páginas públicas y privadas, deberías modificarlo para que quedase:

Código PHP:
<?php if ($privado) include("seguridad.php"?><html><head><title>Empresa</title></head><body><div id="cabecera"></div>...
De este modo mantienes común la cabecera para parte pública y privada, y cargas la capa de seguridad en las páginas que te interese. La comprobación de que estás en parte privada (if ($privado)) te lo dejo a ti Compruébalo metiendo toda la parte privada en un directorio y verificando la URL, o como prefieras.

Y para el menú adicional de la parte privada, lo mismo. Si ese menú está en la cabecera, pongamos por caso, haces lo mismo:
Código PHP:
if ($privado) include("menu.php"
El secreto está en modularizar e intentar simplificar las relaciones entre los módulos. En este caso tenemos unos módulos para la parte restringida de la web, que se cargarán cuando a ti te interese.

Espero haberte ayudado.
Un saludo.

PD: intenta simplificar el punto 2, parece que estás complicando las operaciones más de lo necesario.
  #3 (permalink)  
Antiguo 23/06/2008, 16:45
 
Fecha de Ingreso: noviembre-2007
Mensajes: 154
Antigüedad: 17 años
Puntos: 2
Respuesta: Dudas diversas para administración de sitio

Muchas gracias por la temprana respuesta, me pondré con ello en ratos libres y a ver si consigo un 'backend' funcional ;)

Por otra parte, intentaré desenmarañar un poco el punto 2, que creo que no he conseguido plasmar lo que tenía en la cabeza :P aunque sigo respetando los dos puntos del punto 2.

2.1 El tema es que los usuarios como tal no se van a registrar en la web, ya que los datos están volcados desde la BB.DD. de clientes del despacho. Al no tener que darse de alta y tratar con documentos de la empresa cliente, tenemos que poner un contrato para el tema de la Ley de Protección de Datos. La única forma que se me ha ocurrido para 'obligarles' a leer y a aceptar el contrato, si están dispuestos a usar la 'zona privada', es crear un campo en la tabla de usuarios llamado 'estado', que indica si el usuario está inactivo si no ha aceptado el contrato; o activo, si sí lo ha aceptado. Estos estados en tabla son:
- inactivo == '0'
- activo == '1'

Hasta aquí, creo que voy más o menos bien ;)
La cosa es que cuando se rellena el formulario de acceso en la página principal, 'usuario/password', al enviarlo al fichero 'login.php', que comprueba los datos, coteje si el estado es =='0' ó =='1', de manera que si es el primer caso, muestre el contrato para la Ley de Protección de Datos y una vez aceptado, active la cuenta de usuario y acceda a la 'zona privada'; o, en caso de ser =='1', acceda directamente a la 'zona privada'.
Los clientes, al estar registrados de antemano, tienen el password preintroducido, que también deberían cambiar en el primer acceso.
La pregunta, ¿cúal sería la forma más optima para 'obligar' a leer el contrato y a cambiar el password en el primer acceso?

2.2 Esta parte es sobretodo duda por falta de soltura aún en PHP. El tema es que se me resisten un poco los switch y bueno, los manejo para cosas sencillas, pero ahora me surgen dudas al no saber si usar uno o dos 'switch' diferentes para registrar los enlaces a los distintos apartados. Uno que cuelgue del index.php y otro del index2.php, o página principal del backend.

2.3 ¿Cómo se hace exactamente para mostrar elementos sólo a ciertos usuarios según perfil?

Ahora hay 3 puntos 2, porque he divido el primitivo 2.2

Muchas gracias por todo.

Un saludo.

Última edición por jesusjj; 23/06/2008 a las 16:50
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 14:42.