Proyecto web de firmas dinámicas
-
he hecho algunos cambios que tenía en mente. Ahora la lista de firmas (sig1.jpg, sig2.png etc etc) se guarda en un archivo txt. Cada vez q se añade una firma, se añade a ese archivo. Cada vez q se borra una (aun no he metido lo de borrar) se borra de ese archivo.
A la vez, esa lista de archivos es la que se guardará en un array:
$firmas = ("sig1.jpg","sig2.png","sig3.png");Y ese array es el que usará nuestro script para mostrar cada vez una imagen. En vez de andar buscando firmas a ciegas, le decimos qué firmas hay exactamente (la extension y todo) y así será más eficiente a la hora de "sortear" una firma.
Sólo hay que mantener ese array actualizado, cada vez q el archivo txt se modifica, modificamos el array de nuestro script.
Es parecido a lo que hacíamos de modificar la variable $max para saber cuántas firmas teníamos en total. Solo que ahora en vez de saber cuántas hay, sabremos exactamente cuáles son y por tanto también cuántas son.
El objetivo del cambio es hacer más eficiente el script, sin usar bases de datos. Acceder a un archivo es lento, y modificarlo, pero sólo se accederá al añadir y borrar firmas. Por tanto es perfectamente aceptable.
Ya no será necesario acceder al archivo script para saber cuántas firmas hay, bastará con consultar el archivo txt.He comprobado que al registrarse desde cero funciona todo perfectamente: se pueden subir firmas y ver todas las que has subido. Aun no se pueden borrar, pero está medio hecho.
Falta eso, borrar firmas, y falta mantener actualizado el array del script cuando se modifica el txt. Será casi el mismo código que teníamos para el $max pero tengo q cambiarlo.otro día más.
-
Antes de seguir llenando el otro hilo mejor empezamos uno referente al proyecto. Para quien no se haya enterado, la idea es crear una web donde los usuarios puedan registrarse, subir unas cuantas firmas, y conseguir que todas esas imágenes queden metidas en una firma dinámica estilo la que llevo yo en el foro, que cada vez q actualizas salga una.
Bien, ya tengo el host gratuito, el registro de usuarios y la base de datos.
El que quiera participar, que me pida los datos por MP. Por seguridad no daré los datos a usuarios desconocidos.
Por cierto, si alguno quiere hacer la gracia de borrar archivos del host, o la base de datos, que no se moleste, tengo backup, me pondré muy furioso y lo mismo a alguien lo borro yo del foro también en broma (q conste q no se puede deshacer).A lo que vamos.
Ahora falta lo propio del proyecto, lo referente a las firmas dinámicas.Yo había pensado lo siguiente:
cada vez que se registra un usuario, creamos una carpeta en el host para él. Dentro de esa carpeta creamos un archivo "fulanito.php" con el código php similar al del tutorial: [http://foro.universojuegos.es/viewtopic.php?f=75&t=9439][0]">viewtopic.php?f=75&t=9439
En esa misma carpeta del usuario, se subirán las firmas. Nada de hacer ootra subcarpeta dentro llamada "firmas". No es necesario.Para evitar problemas con los nombres de las carpetas para cada usuario (nombre largos, caracteres raros, etc) he pensado que el nombre de la carpeta podría ser la ID de usuario que se asigna en la base de datos (empieza en 1, 2, 3... según van registrándose usuarios). Así no hay problemas, es cortito y no tiene pérdida.
Por tanto tendremos un árbol de directorios y archivos similar a esto: (entre corchetes las carpetas)
/
[usuarios]- [1]
-
- fulanito.php
-
- sig1.jpg
-
- sig2.png
- [2]
-
- menganito.php
-
- sig1.jpg
-
- sig2.png
-
- sig3.png
- [3]
-
- zutanito.php
-
- sig1.jpg
index.php
tusfirmas.php
agregarfirma.php
registro.php
contacto.php
etccomo podéis ver, he metido las carpetas de cada usuario dentro de una carpeta que los engloba a todos. Es por no mezclar las carpetas de usuario (1, 2, 3) con los archivos de la web.
[0]: <a href=
-
Entiendo, así con las carpeta se hace más ordenador diría yo.
Pero como se puede hacer que cuando un usuario se registre cree automáticamente una carpeta y un archivo php con X código, variando de cuantas firmas tenga se modifique a Y?O_oLo veo dificil :3
-
el único código que habría que modificar es el número total de firmas. El nombre base lo ponemos nosotros, y el nombre de la carpeta donde van las firmas ya no hará falta.
Es decir, sólamente hay q cambiar el máximo de firmas. No es tan complicado, sólo es modificar una línea de código cada vez que se agrege o borre una firma... vamos, está chupado jeje.
Voy a buscar un código de ejemplo. -
Está bien, si somos bastantes los que "administremos" esa web, si hay alguien que se de alta y tenga que quitarse la linea de código lo podría hacer cualquiera :3
PD: He editado todo un poco, lo que viene a ser eso de la entrada espero que no te moleste e_e
PD2: Cómo se puede poner para que aparezca una imagen debajo de un texto? puse
[img][/img]
pero claro, los BBCodes no rulan xD
-
bbcodes?? XD
para poner una imagen en html:![Texto alternativo si no carga la imagen](http://loquesea.com/imagen.png)
lo de modificar el número máximo de firmas ya lo he añadido en el archivo fuctions.php
No era una función sencillita para empezar :icon_mrgreen: acostumbrado a java me ha costado un buen rato dar con la forma...
pero bueno, ha quedado una función robusta, lo que haces es buscar en el archivo una línea tal que así:
$max = 5;
coge el 5 (o el número q pille ahí), y lo actualiza a 7, 10 o lo q sea. -
os he dejado también dentro de la carpeta HostingImagenesDemo una web estilo imageshack, que permite subir una imagen.
A partir de ese código podemos hacer nuestro "agregar firma" que será muy muy parecido. Echadle un vistazo, sólo tenéis que agregar /HostingImagenesDemo/ a la url. -
Bueno, he estado investigando una cosilla sobre el tema de subir imágenes. Os cuento:
En principio queremos limitar el tamaño de las firmas que los usuarios pueden subir. En el ejemplo que he colgado, el límite es 1 mega. Bien, todo perfecto, pero resulta que la forma de comprobar el tamaño del archivo no es la más adecuada. ¿por qué? Porque PHP mide el tamaño de archivos ya subidos, no puede medir el tamaño de un archivo en el ordenador de un usuario.
Funcionar funciona, probad a meterle 2 megas y veréis como os dice "limite sobrepasado" jejeje. Peeero, para darse cuenta de q excede el límite ha tenido que subir el archivo temporalmente, medir tamaño, ver q excede, dar error y deshacerse del archivo.Por tanto, si a alguien le da por subir 200 megas de foto, pues se tirará un buen rato subiendo, y luego dará error.
Lo que quiero es que de el error antes de subir el archivo.
Pues bien, investigando he descubierto que evidentemente php no puede hacer nada para evitarlo, que javascript, por seguridad tampoco tiene forma de acceder a archivos locales, y que una forma chapucera es usar un "ActiveX". Os sonará del Explorer... bien, solo funciona en explorer y poco más, a parte de que el usuario tiene q dar su autorización para que funcione.
Vamos, que mala idea.Así que he terminado llegando a otra solución:
[http://www.uploadify.com/demos/][0]">[http://www.uploadify.com/demos/][1]
Es una pequeña aplicación en flash y javascript, que nos viene perfecto. Lo más probable es que usemos esa aplicación, que es gratuita y se puede configurar, en nuestro uploader de firmas.[0]: <a href=
[1]: http://www.uploadify.com/demos/ -
SALVA, PERO QUEIN VA HA SER EL LUMBRERAS QUE SE VA A PONER HA SUBIR 200MB, YO CREO QUE CON AVISAR SOBRA, Y NO HACE FALTA COMERSE TANTO LA CABEZA
-
llega un señor (o una panda de señores) que tiene muy mala leche, y decide que va a tirarse toda la noche subiendo archivos.
Al día siguiente la web está caída porque se ha alcanzado el ancho de banda contratado para todo el mes.:icon_razz: cabum, adios web!
ya lo tengo más o menos apañadito, he bajado el uploadify ese, lo he medio configurado y ya sube imágenes aunque falta poner el tamaño máximo. Luego sigo, lo tenéis en la carpeta uploader2, echadle un vistazo.
edito: funciona! probad a subir una imagen de mas de 1 mega, mirad que pasa.