Foros del Web » Programando para Internet » PHP »

Registro de usuarios sin mysql

Estas en el tema de Registro de usuarios sin mysql en el foro de PHP en Foros del Web. Bueno tengo el agrado de presentar el script de un amigo mio, quisiera saber sus opiniones, siempre pregunte en los foros si conocian alguno pero ...
  #1 (permalink)  
Antiguo 20/10/2003, 19:42
Avatar de Gerald  
Fecha de Ingreso: julio-2003
Mensajes: 1.356
Antigüedad: 20 años, 9 meses
Puntos: 2
Registro de usuarios sin mysql

Bueno tengo el agrado de presentar el script de un amigo mio, quisiera saber sus opiniones,
siempre pregunte en los foros si conocian alguno pero nadie me daba razon.

Registro y reconocimiento de usuarios
versión: 1.0, PHP 4.2.0, sin MySQL, utiliza sesiones


http://www.informaticahispana.com/~tribunalibre/

Esperamos sugerencias e ideas.

Gracias.
__________________
Solo por Hoy: Trataré de fortalecer mi mente. Estudiaré y aprenderé algo útil
Hoteldipity
Arte Caracol
  #2 (permalink)  
Antiguo 21/10/2003, 01:55
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Es simple, lo que no tiene por que ser bueno o malo. Y es mejorable (como todos los scripts).

Para comenzar, creo que le falta una buena documentacion, para que la gente no tenga que entender el codigo directamente. Y recomendaciones de uso, como poner el fichero de claves en un directorio no accesible por HTTP.

Personalmente no me gusta el uso de 'global' en las funciones. Podria intentar ponerlo en una clase.

Mezcla demasiado el HTML con el PHP. Eso implica que el que lo use debe modificar los ficheros del sistema de autentificacion, con el riesgo de tocar algo que no deba. Se debe intentar la separacion de la logica de negocio (el meollo) de la logica de presentacion (el HTML y el codigo PHP que muestra datos).

Una cosa que deberia añadir es el uso de claves encriptadas, mejor con md5 que no se puede "desencriptar". Tal como esta las claves estan al alcance de cualquiera que tenga acceso via sistema de ficheros (o FTP) al fichero.

Este sistema solo es de autentificacion. Se podria completar con un sistema de usuarios y permisos, ya sea con roles o con listas de acceso (ACLs).

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 21/10/2003, 07:13
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Usando $HTTP_SESSION_VARS .. tu script funcionaría desde PHP 4.0.6 o algo más .. Es un detalle que debes confirmar .. pues si hubieras usados los array superglobales $_SESSION ..ahí sólo funcionaría tu aplicación desde PHP 4.1.0 en adelante.

Otro detalle .. En tus ejemplos (index.php) propagas el SID por el URL. Deberías explicar los "pro y contras" de propagar el SID por el URL .. ademas de indicar que deben propagar el SID manualmente en los links que puedieran usar .. redireccionamientos (javacript, meta de refresh o header("location ...") si desean continuar propagando el SID en modo manual y por el URL. A su vez .. si propagas el SID en modo automático (session.use_trans_sid = 1) se van a "duplicar" los SID (apareceran dos por ahí en el URL si no me equivoco) ..

Bueno, .. como veras, el tema "sesiones" a la hora de hacer aplicaciones "genéricas" como esta de autentificación de usuarios, debes de documentarlo bien y explicar que configuración requieren los "php.ini" o bien que recomiendaciones haces tu de uso. Configuraciones de php.ini apartado sesiones hay muchas y depende de eso .. tu aplicación se puede comportar de una manera u otra.

La forma que tienes de guardar en tu archivo de texto plano los datos de tus usuarios .. si bien es "comoda" para trabajar con los scripts de validación de los usuarios (pues creas un array asociativo con toda su sintax en tu archivo de usuarios ..) .. a la hora de "ampliar" el script por ejemplo ...para añadir algún campo extra al dato del usuario como .. el "nivel de acceso" por ejemplo .. se complica el asunto, tanto que hay que modificar por completo el script. Cuando, si guardases una estructura tipo:

usuario1|password (en MD5 por seguridad|otrocampo ....
usuario2|password (en MD5 por seguridad|otrocampo ....
etc

Sería lo ideal ..pues, PHP disponde de funciones como getcvs() (si mal no recuredo) para leer estructuras similares de tus archivos.

Como recomendación .. te haría que hicieras una versión nueva de tu script que use los array superglobales $_POST .. $_GET .. $_SESSION completamente (sin session_register() ) .. Así avisas de paso que tu script funcionaría en configuraciones de register_globals a ON o a OFF (siendo recomendable trabajar a OFF) junto con las otras recomendaciones de como han de propagar el SID en el uso que le den a tu aplicación ..


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 21/10/2003, 07:28
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
¿Ves a lo que me referia con que le faltaba buena documentacion? Se nota que Cluster tiene un script semejante, saber por donde pillarte.

Si fuese una clase, te diria que abstrayeras la capa de acceso a datos, para que en un plisplas puedas crear un modulo para que pueda usar base de datos u otro tipo de autentificacion (webservices, LDAP, ...). Si, ya se que el objetivo del script es ser sencillo, pero por pedir ...

Por cierto, deberias hacer pruebas. Por el problema de concurrencia (¿Que pasa si varios usuarios se dan de alta a la vez? ¿Que datos se guardan?). Es importante si quieres que tu script se apto para sitios con un trafico aceptable.

Y volviendo a la documentacion, deberia añadir una seccion indicando los pasos para realizar un backup de los datos y su posterior restauracion. No creo que a los usuarios registrados de una web le haga gracia tener que volver a registrarse por culpa del webmaster que no tenia un backup.

En fin, que si se me ocurren mas cosas las pondre por aqui.

A seguir trabajando.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 21/10/2003, 16:06
Avatar de Gerald  
Fecha de Ingreso: julio-2003
Mensajes: 1.356
Antigüedad: 20 años, 9 meses
Puntos: 2
Ok

Registro y reconocimiento de usuarios
versión: 1.0, PHP 4.2.0, sin MySQL, utiliza sesiones

Bueno se que al script le falta documentacion, pero ya veran es la version 1.0 y reconoce que hay errores y debe mejorarse. gracias por sus aportaciones ya se las hice llegar a mi amigo TL.

Bueno espero sigan aportando y dando mas ideas.
__________________
Solo por Hoy: Trataré de fortalecer mi mente. Estudiaré y aprenderé algo útil
Hoteldipity
Arte Caracol
  #6 (permalink)  
Antiguo 21/10/2003, 19:11
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Como "idea" .. desde que un script sale a "producción" debe llevar documentación .. por minima que sea esta.

Mientras tanto se pueden ir "tirando" versiones "Beta" a los "conocidos" y "entendidos" para que testeen el script. Sino, se hace complicado incluso su uso .. por muy básica que sea esta y algunas "páginas" ejemplo tenga ... algo de "prosa" has de poner.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 21/10/2003 a las 19:13
  #7 (permalink)  
Antiguo 22/10/2003, 01:10
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Como dice Cluster, la version 1.0 se supone que es la primera de produccion. Se supone que ya esta preparada para la distribucion.

Si es la primera version de desarrollo, deberia ser la 0.1 o 0.0.1, dependiendo el formato de versiones que pienses usar.

Si es la version de produccion sin haberle hecho el test, pues tienes que indicar alpha o beta, dependiendo de la fase de pruebas.

Si es la version de produccion, con los test hechos, pero liberada al publico en general para que la prueben, puedes ponerle release candidate (RC) con un un numero.

Pero si la nombras 1.0, yo espero un producto terminado, con toda la documentacion.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 22:12.