[TEMPLATE PHP] Se busca platilla PHP..

Discusión en general sobre Gemix.

[TEMPLATE PHP] Se busca platilla PHP..

Postby erkosone » Sat Aug 10, 2013 7:10 pm

Buenas, escribo esto por si algún alma caritativa quiere y puede ayudar a la comunidad, aunque nadie lo dice, a todos nos hace falta, hablo de una plantilla escrita en PHP que permita almacenar un ranking online con un formulario y una base de datos, o mejor todavía, en un fichero de texto.

El tema de los formularios vinculados a un archivo de base de datos es un poco peliagudo, no por nada relacionado con el formato de archivo ni el acceso al mismo, el problema está en que si se usa una base de datos MySQL hay que disponer de este servicio, y bueno, los host grauitos no lo tienen o lo tienen estrictamente limitado a una única base de datos.

De lo que se trata en si es de lo siguiente:
1- Crear un formulario en PHP que pueda ser añadido facilmente a una web y que disponga de algún sistema de autentificación aunque sea simple para evitar intrusiones.
2- El formulario debe ser capaz de crear un archivo de texto en la nube y acceder al mismo para recuperar o actualizar información.

La esencia de esto no es la de crear una web ni nada parecido a algo "visual", si no que se trata de crear un sistema de almacenamiento en la nube para contener datos de caracter global para las aplicaciones, por poner un ejemplo:
Archivo dedicado a un supuesto juego llamado "wormed": 'datarank_wormed.txt'
Contenido:
1@pepito@50000@30@10
2@luis@48700@20@5
3@juan@36500@10@2

Contexto de contenido: "posición en el ranking" + "delimitador" + "INT puntos" + "delimitador" etc etc etc..

Alguien con conocimientos suficientes en PHP puede preparar esto? Nos haría un gran favor a todos los demás, pues la otra vía es por FTP, pero vaya.. que ese no es el camino..
User avatar
erkosone
 
Posts: 10654
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

Re: [TEMPLATE PHP] Se busca platilla PHP..

Postby TYCO » Sat Aug 10, 2013 10:12 pm

Yo me he pegado bastante con PHP y con crear archivos en el servidor para después leerlos y tal... así que creo podré echar una mano en esto.

erkosone wrote:De lo que se trata en si es de lo siguiente:
1- Crear un formulario en PHP que pueda ser añadido facilmente a una web y que disponga de algún sistema de autentificación aunque sea simple para evitar intrusiones.
2- El formulario debe ser capaz de crear un archivo de texto en la nube y acceder al mismo para recuperar o actualizar información.


El primer punto de crear un formulario con autentificación previa ya lo he hecho en PHP.

El segundo punto también lo he hecho en PHP así no habrá mucho problema con ello.

Pero necesito saber cada detalle de como debe ser todo y como debe comportarse, por ejemplo... el punto primero con un formulario (previa autentificación) que debe contener??? porque una plantilla... entiendo que sólo NOMBRE del JUGADOR y PUNTUACIÓN. Porque más datos requiere algo más de programación, aunque supongo que podría hacerlo con más tiempo. Es decir si los campos son fijos es más fácil de crear... ya que si no se saben todos los campos hay que programar teniendo en cuenta cada detalle por si hay muchos campos que se puedan mostrar en pantalla sin problemas, etc, etc.

Un boceto/croquis dibujado estaría genial de lo que se pretende crear.
Todo Modo Gráfico tiene por detrás una Línea de Comandos.

Proyecto: SnowCraft Remake (100%).
Proyecto: Bomb a Bomb Remake (100%).
Proyecto: Rally Mortal (87%).

[RETO]: 20lineas - [JUEGO]: eLaberinto[CONCURSO]: EL JUEGO DEL VERANO 2011 - [JUEGO]: PlayaBall
User avatar
TYCO
 
Posts: 3584
Joined: Tue Sep 02, 2008 7:38 pm

Re: [TEMPLATE PHP] Se busca platilla PHP..

Postby erkosone » Sun Aug 11, 2013 12:03 am

Ok Tyco, gracias por ofrecerte, ahora estoy en casa de unos familiares, en cuanto llegue a casa te comento en detalle el sistema, es bastante sencillete ;)
User avatar
erkosone
 
Posts: 10654
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

Re: [TEMPLATE PHP] Se busca platilla PHP..

Postby erkosone » Sun Aug 11, 2013 2:01 am

Bueno, te comento en detalle como va la cosa.

Lo ideal es tener algo así, teniendo en cuenta que las 3 variables son del tipo String:
Sistema de envío desde el APP hacia el form en la nube:
- Username.
- Password.
- Data.

Sistema de recepción desde el form hacia el APP:
- Username.
- Password.
- Data.

SISTEMA DE ENVIO DE INFORMACION:
- Para enviar algo al formulario de la única variable que disponemos es de 'data' la cual es un string, entonces nos identificamos con username y password y metemos en data toda la información de la partida sea cual sea.. como tenemos que definir un sistema específico dejemos que sea el siguiente:

Usaremos como delimitador un CHAR que es imposible de teclear por error desde el teclado, se trata del famoso chr(3), este char en especial es muy usado para delimitar TOKENS en archivos binarios o archivos secuenciales de datos, su descripción es "END OF TEXT" y es imposible de entrar por teclado, además que forma parte de standar ASCII, así que no hay ningún problema en usarlo ya que está disponible en absolutamente todos los equipos informáticos.

La cosa es simple, disponemos 5 tokens para enviar, osea, representando un ejemplo y asumiendo que chr(3) es el delimitador entre tokens te pongo un ejemplo de la trama a enviar como un string:

data = "pepito" + chr(3) + "50675" + chr(3) + "120" + chr(3) + "41" + chr(3) + "superguai";

Haciendo esto desde el APP tenemos que en la variable 'string data' tenemos toda la información que queremos enviar al servidor, separada por el delimitador chr(3) que es el que juega el papel clave en todo esto.

Bien, pues ahora viene lo "complejo", y digo entre comillas por que no lo es, pero si que puede tomar un poco de tiempo el programarlo si PHP no tiene algo ya nativo estilo split.
El servidor ha recibido una petición de POST con una autentificación y un string como dato, vale, pues desde la parte del servidor en PHP lo que hay que hacer es lo siguiente:

El primer token indica el Nick del usuario, debe ser indiferente su contenido para el algoritmo de ordenación..
El segundo token indica el número de puntos que ha alcanzado el jugador, este debe ser el campo mediante el cual se proceda a ordenar la información recibida.
Los siguiente tokens "3, 4 y 5" forman parte de la reserva, son indiferentes para la ordenación, pero contienen información variada que el programador puede necesitar alojar también en el servidor.

Que debe hacer el servidor con todo esto? simple, en el archivo de texto asociado al juego y contenido en el servidor, por ejemplo "gameData.txt" se debe actualizar la información tras cada entrada de datos por parte de cualquier usuario, como se debe ordenar? simple, estos son los pasos:

1 - comprobar si está presente una linea en el archivo gameData.txt que contenga el NICK que se acaba de recibir, si está presente se elimina y se suplanta por la que se acaba de recibir y punto.
Esto aunque parezca un error tiene lógica, se trata de no colapsar al servidor con demasiados trabajos que bien se pueden hacer desde el APP, osea, desde el APP si voy a enviar algo al servidor me tengo que asegurar de que es "mas actualizado" que lo que el servidor tiene de mi, osea, se almacena lo que se recibe, toda la gestión de envio si esto o si lo otro se hace desde el APP.

Vale, el servidor ha recibido un string con 5 tokens, el segundo token hay que parsearlo a INT y será el que indique en que número de linea se introuce el string recibido "en el gameData.txt" del servidor.

SISTEMA DE RECEPCION DE INFORMACION:
- Para recibir información de la nube se hace de la siguiente manera:
* Se mandan el username y password como siempre acompañado de un solo dato en la variable DATA, en data se indicará el número de línea que se desea recibir del archivo gameData.txt alojado en el servidor.

Por manetener la coherencia y la simplicidad en la programación desde el APP en gemix o en cualquier otro lenguaje que usemos, el dato será del tipo STRING al igual que el usado en el sistema de envio de datos, de esta manera es mas simple no equivocarse y simplemente desde el servidor se parsea la variable data a INT, el servidor tiene un número entero que le indica la linea que tiene que enviar y listo, el equivalente a rellenar desde un formulario web esto sería entrar en la web, indicar el username y password y un número, al darle al boton send el explorador nos mostraría una ventana con el unico contenido en texto "la linea dentro del archivo gameData.txt que se corresponde al número de linea indicado en data".


Pues esto es todo.. no es demasiado complejo y es un mecanismo muy polivalente para rankings online en juegos, y dado que el sistema usa curl se podrá usar desde cualquier lenguaje de programación.


Se entiende el sistema? le ves alguna laguna?
Incluso he pensado que para dejarlo mucho mas polivalente y versatil, los tokens a enviar podrían ser estos:
1 - nombre del archivo de rankings en el servidor.
2 - nick.
3 - puntos.
4 - reserva.
5 - reserva.

Con este formato queda un sistema completamente funcional y capaz de almacenar en una misma web cientos o miles de rankings para aplicaciones, incluso dotando al sistema de la propiedad de crear el archivo si no existe.. ya ni te cuento.. con un solo sitio web podremos usarlo todos..

Bueno, como lo ves?
User avatar
erkosone
 
Posts: 10654
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

Re: [TEMPLATE PHP] Se busca platilla PHP..

Postby TYCO » Sun Aug 11, 2013 10:21 pm

Déjame que intento montarlo y lo vemos, hago un pequeño boceto inicial y vamos viendo.
Todo Modo Gráfico tiene por detrás una Línea de Comandos.

Proyecto: SnowCraft Remake (100%).
Proyecto: Bomb a Bomb Remake (100%).
Proyecto: Rally Mortal (87%).

[RETO]: 20lineas - [JUEGO]: eLaberinto[CONCURSO]: EL JUEGO DEL VERANO 2011 - [JUEGO]: PlayaBall
User avatar
TYCO
 
Posts: 3584
Joined: Tue Sep 02, 2008 7:38 pm

Re: [TEMPLATE PHP] Se busca platilla PHP..

Postby erkosone » Mon Aug 12, 2013 2:50 am

Genial TYCO, no sabes lo que supone esta ayuda.. si logramos hacerlo funcionar en condiciones podemos montar un host loquesea.com y dar soporte a la comunidad para este tema tan necesario, yo tengo ya el dominio fasetconasa.com, y se como cojer un .com gratuito por un año XD.. si funciona nos montamos un site para rankings online de los juegos en un plis plas.
Muchisimas gracias por la ayuda de verdad.
User avatar
erkosone
 
Posts: 10654
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.


Return to General

Who is online

Users browsing this forum: No registered users and 10 guests