Stanmx

Buscando la accesibilidad

Hot Cakes de media noche

Publicado en personal php el 15/01/06 a las 04:07 am
Hot Cakes

Escribo después de haberme cenado en la madrugada unos hot cakes. No se parecían a los de la foto, pero bueno, uno hace lo que puede después de la una de la mañana.

Regresando al motivo por el cual escribí a estas horas, es por que ando investigando algunos temas sobre PHP, como son:

  • Creación de usuarios con PHP.
  • Sugerencias sobre creación de Historiales con PHP.
  • Sugerencias sobre impresión de paginas PHP.
  • Información sobre validar campos en PHP.

Creación de usuarios con PHP. lo que ando buscando es algún ejemplo y sugerencias a la hora de crear usuarios que se den de alta y unos modifiquen una parte del sistema y otros otra.

Sugerencias sobre creación de Historiales con PHP. Coloque un campo "status" en una tabla de alumnos, lo que aun no me queda claro como manejarlo, para decir que es alumno nuevo, viejo o de otra fecha.

Sugerencias sobre impresión de paginas PHP. He utilizado Javascript para esta tarea, lo que me interesan son algunas sugerencias donde pueda aprovechar CSS para no tener que generar otra pagina solo para impresión. ¿Se pueden evitar los enlaces que coloca el navegador en los documentos impresos de la Web?

Información sobre validar campos en PHP. Había visto la forma de validar campos con Javascript, mi pregunta seria, ¿si se puede hacer con PHP? u otras sugerencias.

Agradecería todas las sugerencias, enlaces y recomendaciones que puedan aportar en este post.

Bueno, por ultimo, volviendo al tema de los Hot Cakes, sabían a rayos!!!.

27 comentarios

luis

dijo el 15/01/06 a las 09:50 am

mejor compra de los tacos de a 3 por 10 pesos k... jajaja

Pablo Viojo

dijo el 15/01/06 a las 02:47 pm

Unas cuantas cosillas para un solo post :D
Con respecto al tema de la impresión de las páginas web lo mejor es crear una hoja de estilos en la que le indiques que media="print" y de ese modo se utilizará cuando el usuario quiero imprimir lo que está viendo en la página. Esto es manejo por el browser, por lo que no es necesario ningún codigo extra.
Con respecto a "¿Se pueden evitar los enlaces que coloca el navegador en los documentos impresos de la Web?" no me queda clara la pregunta, pero con css podes mostrar u ocultar lo que quieras.
Saludos

Stan

dijo el 15/01/06 a las 07:22 pm

jajaja che luis :P

Pablo, quieren que imprima desde la aplicacion, no desde el navegador; colocando un boton de impresion, la pregunta que tengo es referente a que cuando imprimes algun articulo de la web, aparecen en el marco de la impresion, el url de la imagen, fecha y creo que otros datos mas, por default.

Yo quiero mandar imprimir pero sin esos datos, ¿habra manera de ocultarlos?

fael

dijo el 16/01/06 a las 02:48 am

bien, sobre la creación de usuarios, no sé cuál es el problema considerando tu nivel de php. tengo una clase pero no la he publicado, no sé si te interese...
supongo que lo de la impresión te refieres a la url que viene al final del documento... no, no se puede quitar. lástima
para manejar fechas, utiliza el time(), que sería el segundo exacto (desde el "epoch") en que fue creado el usuario y simplemente los ordenas así. si quieres de una fecha en particular (un mes, digamos), simplemente conviertes esa fecha en segundos usando la función mktime
mi querido stan, para validar los campos no hay mejor cosa que ajax
si no entiendes algo (que es lo más probable), mejor platiquemos por messenger.

un saludo hermano

Octavio

dijo el 16/01/06 a las 04:49 am

Stan, no indicas si quieres o no usar una base de datos relacional, en cuyo caso se te facilitaría el trabajo bastante.

Creación de usuarios: Lo complicado de crear usuarios es la seguridad. La pregunta es cómo enviar la contraseña inicial del usuario encriptada y util a la vez. No sé cómo resolver esto, pero considero que es muy importante. Tal vez puedas sacarle la vuelta al problema con https. Si decides NO usar una base de datos relacional, toma en cuenta que no es muy seguro almacenar las contraseñas en text/plain sino --por ejemplo-- salada y en doble SHA1.

Para crear historiales, depende de qué quieras. Lo que más te va a ayudar es la relación timestamp-usuario-acción, que --incluso-- te recomiendo que lo registres hasta con centi- o milisegundos. Si lo haces sin usar una DBMS, el problema al que te vas a enfrentar es una lenta búsqueda de información, pues en las DBMS puedes indizar la información.

Para imprimir las páginas, no hay mejor que @media print. Lo malo es lo que dices sobre los navegadores: no dejan de ser navegadores. Lo que puedes hacer es darles versiones en PDF de la información a imprimir, generada del lado del server, pero esto es engorroso y puede ser confuso para el usuario.

Para validar los campos, NUNCA confíes en el cliente: primero programa las validaciones del lado del servidor en PHP, y después, si quieres decorar la aplicación, métele Javascript (siguiendo el DOM) para darle un poquito de interactividad. Si no sigues mi consejo... no digas que no te lo advertí. ;-)

Me llama la atención una tabla "alumnos". Es mucha indiscreción preguntar qué quieres hacer?

Stan

dijo el 16/01/06 a las 06:19 am

Ando disponiendome a dormir, gracias por los comentarios.

Oscar

dijo el 16/01/06 a las 10:47 am

Para la gestión de usuarios yo solía utilizar el authentificator de Cluster. lo puedes encontrar en http://www.forosdelweb.com Necesita varias modificaciones pero no creo que ese sea problema y parece ser lo que buscas.

Validar los campos también es bastante sencillo en PHP, lo único que sucede es que tienes que hacerlo en la página que recibe la información y no puedes hacerlo en "tiempo real" o en la misma página como con AJAX. Solo valida las variables que recibes y si encuentras errores lo mandas de regreso al formulario.

Suerte!

Jose

dijo el 16/01/06 a las 10:02 pm

mmm, se me hace que andamos por las mismas.

Mencionaste lo de los alumnos, quieres decir que no sabes como identificar si el alumno es nuevo, es decir, acaba de entrar a la escuela, o es viejo, es decir, ya tiene por lo menos un semestre cursado. Yo estoy haciendo algo similar. Lo que a mi se me había ocurrido es crear una tabla que identifique a los semestres.

De tal manera que iniciamos con la identificación a partir del semestre Agosto-Diciembre 2005, siendo este el semestre 1, y estamos cursando el semestre Enero-Junio 2006, siendo este el semestre 2. Podemos utilizar el campo "status" con un número que identifique el semestre en el cual ingresó el alumno, pudiendo ahora identificar si el alumno es "viejo" o "nuevo".

El problema sería al manejar los semestres, pues tendría que ser de manera manual, agregando un campo "actual" para saber si es el semestre que se está cursando.

Ideas vagas...

okeimakei

dijo el 17/01/06 a las 06:41 pm

Chale, y a mi que siempre me encantan los hot-cakes!
*Sí, a falta de saber nada de PHP...

Esparta Palma

dijo el 17/01/06 a las 09:51 pm

Con respecto a lo de los usuarios, nada mejor que revisar clases ya hechas y probadas, en cualquier proyecto "decente" de SourceForge estan ahí puestas (por ejemplo ahora ando viendo la del proyecto DotProject).

Con respecto a la impresión siempre he preferido mandarlo a PDF, así tienes un control super preciso de qué y cómo será tu documento impreso (sin contar que es mucho mejor si dicho documento abarcará varias páginas).

Stan

dijo el 17/01/06 a las 10:46 pm

Por el momento tengo un respiro de unos dias, me pondre a terminar de leer mi libro de PHP y MySQL For Dummies :D

sosa

dijo el 24/01/06 a las 11:23 pm

Hola stan.

Creo que la solución de Pablo es correcta, con css y media=print puedes preparar tus documentos para que se vena chidos en la impresión. Si quieres que el usuario pueda imprimir desde la aplicación, busca la solución en Javascript, no en PHP (porque hay que acceder a una opción del navegador, no del servidor)

algo como:



invocará el dialogo de imprimir del navegador. Yo no le encuentro la utilidad pero los clientes suelen ser muy irrazonables.

sosa

dijo el 24/01/06 a las 11:26 pm

ahhrg el codigo no salió.

Stan

dijo el 25/01/06 a las 05:18 pm

gracias por el aporte Sosa, aunque no aparecio en el post, si lo revise desde la base de datos, de hecho tengo pensado hacerlos asi.

A menos que me pidan otra cosa, saludos :)

Gancé

dijo el 29/01/06 a las 09:59 pm

que libro de php y MySql para Dummies estas leyendo?
Yo estoy buscando algo bien elemental por que estoy en un nivel basico.

Stan

dijo el 30/01/06 a las 01:16 am

Gance: el libro se llama: PHP y MySQL Para Dummies 2a Edición
Puedes consultar su portada y una breve descripcion de su contenido en este enlace.
A mi me parecio muy completo y aunque aun no lo termino, los terminos estan claros y van al grano.

Saludos y espero te sirva, cualquier duda o algo, mandame un correo, saludos.

Maverick

dijo el 06/03/06 a las 12:56 pm

Solamente te quiero decir que no te entendi nada

samus

dijo el 29/06/06 a las 12:51 pm

Saludos pongase a desarrollar código seguro

Jose Linder

dijo el 18/12/06 a las 11:54 am

HOLA Q TAL QUISIERA PEDIRLES UNA AYUDA, HABRA UNA POSIBILIDAD DE IMPRIMIR EN EL LADO DEL CLIENTE UTILIZANDO CODIGO PHP.

TENGO UN PHP SCRIPT Q ME GENERA UN TEXTO ".TXT" Y LO Q QUIERO ES Q EL CONTENIDO DE ESE TEXTO SE IMPRIMA EN LA IMPRESORA DEL CLIENTE.

GRACIAS DE ANTEMANO. AGRADECERE SU AYUDA.

omar

dijo el 16/03/07 a las 11:27 pm

Alguien me puede vender el libro de php y mysql para dummies???, es que los de la ediotrial st dejaron de hacerlo :(, y no lo he podido conseguir.

sergio

dijo el 05/05/07 a las 03:59 pm

Hola a todos. Gracias de antemano por la ayuda que puedan brindarme respecto de IMPRIMIR UNA PÁGINA WEB.

Les cuento mi dilema...
Si bien no soy experto en código php o javascript, he podido reunir algunos pequeños conocimientos .. Mi objetivo es que luego de un proceso de ingreso de info via formularios, se genera una página en php que se imprima de forma perfecta, el problema es que lo programado hace todo, menos imprimir.

Aquí mi avance al momento:

1) He averiguado que el formato máximo de impresión para A4 es de 750 px de ancho o que debo diseñar los CSS con 100% (Explorer convierte esto a la medida de A4 real en pixeles) Haciéndolo así supuestamente no tendré cortes de sección o imágenes en la impresión. (estoy modificando mi css para ver si es verdad tanta belleza).

2) Leí que al mostrar la data en la pantalla, debo utilizar una sola columna, pero bueno (no entendí bien eso) yo uso

(nada de tablas) uno debajo del otro (con border) y no se si eso estará afectando. (no he realizado cambios en el código usando
s aún pero cuando esa página era "borrador" en html puro sin $variables, si imprimía perfecto!)

3) La página en php viene de una secuencia anterior de selección y configuración de información que realiza el usuario e incluye una zona para que firme y envíe por fax; de ahí la necesidad de imprimirla. Ese proceso está Ok aparentemente pero no se si lo que sigue afecta en algo...

4) No estoy usando BDs en MySql, sólo en los s para pasar la info de una página a otra.

5) Esa página php genera toda la información dentro de etiquetas
lo que concluye en un buttom (obviamente dentro)para imprimir, que invoca mi función de impresión usando javascript El javascript establece parámetros de window.print() y oculta los botones en el resultado de impresión.

7. La página levanta un popup en para mostrar instrucciones variadas-

Todo marcha perfecto en todos los procesos las variables pasan y las validaciones también, la página se crea, pero: No se imprime.
Sólo se ejecuta el selector de propiedades de impresoras, pero al hacer ACEPTAR no se imprime, no se guarda, no pasa nada, no sale en cola de impresión ni nada.. se muere!.

Todo un lío después de haber programado el bendito proceso por más de 6 horas ;)

Me quiero ahorcar !

¿Alguién podrá ayudarme?
(Mil perdones por el "papiro" que acabo de escribir)

Saludos,
Sergio

sergio

dijo el 05/05/07 a las 04:06 pm

En el punto 2 decía que usaba sólo DIVS
En el punto 4 que utilizo HIDDENs dentro de los INPUTs del formulario.
En el punto 5 que lo que genero en PHP lo he colocado dentro de las etiquetas html del formulario

Parece q el html no sale.. :(
Espero salga la ruta de la página..
http://www.perunegocios.net/imprimir_orden.php

Gracias nuevamente

sergio

dijo el 05/05/07 a las 04:09 pm

Stan quizá puedas aprovechar de esta web para encontrar respuestas a lo que preguntas..
http://www.illasaron.com
Es muy buena acabo de conocerla.
Saludos,
Sergio

sergio

dijo el 05/05/07 a las 04:11 pm

José. Respecto de imprimir un txt generado por un php me parece que lo mejor sería que puedas diseñar una interface que descargue el txt en la pc del cliente y que el cliente se encargue del resto. Creo que el txt por ser un archivo generado funciona de la misma forma que el pdf que podrías generar ...

Saludos
Sergio

sergio

dijo el 05/05/07 a las 04:14 pm

Stan lo de creación de historiales.. al menos aquí los chicos de programación generan algo sencillo..
Decidimos luego de que buttoms que lleven onclic etc etc-- vamos a grabar en una tabla un texto (que se puede editar en otro lado) más datos tales como fechas, luego una interfaz lee esa tabla y genera el historial. La tabla guarda el usuario que hizo el clic (ya sea para generar un reporte o para entrar a una página cualquiera) y esa interfaz puede entonces tener filtros de búsqueda.
Fue una solución sencilla que implementé para un cliente que quería saber todo lo que hacían sus usuarios y para las estadísticas propias del sistema en cuanto a las visitas del sitio web.
Espero el concepto te sirva.
Saludos,
Sergio

sergio

dijo el 05/05/07 a las 04:25 pm

Stan aquí unas ideas para la creación de usuarios con PHP
Lo que hacemos aquí es lo siguiente:
- Una tabla de permisos que equivale a todas las secciones del sistema a utilizar (identifica los IDs de las secciones)
- Una interfaz de creación de usuarios que:
* Permite seleccionar que secciones estarán activas para ese usuario
* Guarda la contraseña cifrada (me parece que eso se ejecuta en el mismo MySQL vía phpmyadmin al crear la tabla de usuarios)
* Un control que le permite editar su pass sólo al usuario que ingresa una frase o código inicialmente ingresado que no sale nunca más. (esto en la opción "Mis Datos de usuario")

* Un script que al detectar la sesión de un usuario, lee en la tabla de permisos y sólo muestra en los menues las secciones aprobadas en dichos permisos.
* Hay un Administrador que tiene todos los accesos y puede modificar lo que sea sin que se le solicite esa frase de la que hablo, esto ya que el user puede perder su contraseña.
* Desde el web el registro de usuarios coloca todos los permisos para usuarios de forma activa (dicho de otro modo los "aprueba" todos).
* El usuario puede estar autorizado o no (validado o no) simplemente con el hecho de una columna más en la tabla donde esté guardado su contraseña (0) para no se le permite crear sesion y (1) para si se le permite crear sesion...
El sistema tiene además una serie de permisos generales y específicos para que una sección la vean todos o esté destinada a sólo usuarios (ello afecta la tabla de permisos que se muestran al crear un usuario, clasificándolas. Los que todos ven no tienen por qué autorizarse o filtrarse en el front)
Espero te sirvan las ideas, por que para hablar de códigos no soy experto.. mi trabajo es planificar sistemas solamente.. :(
Saludos,
Sergio

sergio

dijo el 05/05/07 a las 04:30 pm

MIS LIBROS DE CABECERA para un sin fin de temas de programación:
http://onweb.tectimes.com
Yo me compré algunos en Buenos Aires cuando estuve allí son fantásticos.. y tienen de varios niveles... por lo pronto pueden bajarse 1 capítulo de cada uno de los libros que están ahí según la publicidad que está impresa en c/libro.
Espero sirva.
Sergio

Ahora si, abandono este foro ;) parecerá que me lo he tomado.. sorry. hasta la vista
Si alguien puede ayudarme con lo que pregunté les dejo mi email:
sgonzalez@marketingred.com
Cualquier ayuda que pueda también brindarles no duden en consultar a ver si algo se me ocurre.

Aporta tu comentario

Tu Email no sera publicado.

Opcional.