Dedicado a mis proyectos en Gambas ,un lenguaje de programación parecido al Visual Basic + Java pero ampliamente mejorado y...¡¡para gnu/linux!!.La potencia del gnu/linux sumada a la facilidad del Basic



Consultas, Desarrollo de programas y petición de presupuestos:



Mostrando entradas con la etiqueta servidor. Mostrar todas las entradas
Mostrando entradas con la etiqueta servidor. Mostrar todas las entradas

martes, 21 de abril de 2015

MANUAL PASO A PASO: Creando una aplicación web usando PHP y JavaScript (jquery y jeasyui)



MANUAL PASO A PASO: 

Creando una aplicación web usando PHP y JavaScript (jquery y jeasyui)

 Este manual trata el desarrollo paso a paso de una aplicación web (multiplataforma, cliente-servidor),  usando los lenguajes de programación PHP y JavaScript, además  los framework jquery y jeasyui.
Johan Guerreros Montaya y el que escribe este artículo, hemos tardado un mes en elaborarlo con la idea de:
  • Explicar como realizar una aplicación web cliente-servicor, con las operaciones básicas: añadir, borrar y modificar registros.
  • Hemos usado el framework jeasyui para crear  un "entorno de trabajo" fácil y cómodo dentro del navegador web. Usando controles como los combobox, datagrid, textbox, cuadros de dialogos, formularios, y cuadros de mensajes, y explicando su uso.
  •  Además hemos añadido como trabajar con tablas relacionadas (vinculados por un campo), para que se vea como se resuelven los problemas de presentación en los formularios y en los cuadros de dialogos de petición de datos.



Os dejo un video para que veais como es la aplicación que podeis hacer siguiendo el manual:




Libro en formato .pdf:
http://www.lulu.com/shop/julio-sanchez-berro-and-johan-guerreros-montoya/creando-una-aplicaci%C3%B3n-web-paso-a-paso-usando-php-y-javascript-jquery-y-jeasyui/ebook/product-22137504.html


Libro en Tapa Blanda
http://www.lulu.com/shop/julio-sanchez-berro-and-johan-guerreros-montoya/creando-una-aplicaci%C3%B3n-web-paso-a-paso-usando-php-y-javascript-jquery-y-jeasyui/paperback/product-22137592.html


Os dejo también el indice del manual:

El problema que tiene que resolver nuestra aplicación
Análisis. Nuestra estructura de la base de datos.
Creando la base de datos y las tablas en el servidor.
Controles de jeasyui
Paso de los resultados de las consultas a los controles de jeasyui
Control easyui-datagrid:
Control easyui-combobox:
Paso de datos del easyui-datagrid a easyui-dialog:
Estructurada de nuestra aplicación:
Carpeta Principal o raíz: Archivo index.html
Ciudades
index.html:
NewCiudad()
EditCiudad()
SaveCiudad()
DestroyCiudad()
conn.php
get_Ciudad.php
save_Ciudad.php
update_Ciudad.php
destroy_Ciudad.php
Usuarios
index.html
NewUser()
EditUser():
SaveUser():
DestroyUser()
conn.php
get_users.php
get_dataCiudad.php
save_user.php
update_user.php
destroy_user.php
Anexo 1: Como conseguir un alojamiento web para hacer las pruebas de tu aplicación.
Anexo 2: Uso de FTP con Filezilla
Anexo 3: Como usar Filezilla y Sublime, para crear y editar el código fuente.
Anexo 4: Enlaces de descarga del código fuente de la aplicación.

Un cordial saludo

Julio

miércoles, 22 de octubre de 2014

Mi nueva publicación en Lulu.com: Aplicación Cliente-Servidor: Marcador Online


Mi nueva publicación en Lulu.com: Aplicación Cliente-Servidor: Marcador Online

Os dejo aqui mi nueva publicación en lulu.com.: enlace a lulu.com

Es la recopilación en el formato en pdf, del proyecto que estuve desarrollando en este mismo blog de como hacer un marcador online usando php, mysql, python y gambas3.

Espero que os guste.


Saludos

lunes, 6 de octubre de 2014

Desarrollo Online de un marcador de records para un juego (I)

Marcador de Records


Desarrollo Online de un marcador de records para un juego



1) Descripción del proyecto
Competir entre los jugadores es la forma de dar más interés a una juego. La forma más sencilla de competencia es una tabla de puntuaciones máximas conseguidas por los jugadores, donde se vean reflejados. Ser el primero y/o estar por delante de los otros jugadores es un modo de que los jugadores sigan "enganchados al juego", intentando mejorar su posición en la tabla de records aumentando sus puntuaciones.

¿donde situar esta tabla? Esta tabla debería de estar accesible para el juego desde cualquier lugar.
No nos vale una carpeta compartida, ya que solo lo tendremos accesibles a ordenadores de nuestra intranet o red interna. O sea la podemos subir a un sitio web en internet y tenerla siempre online, para que sea posible leerla y añadirle los resultados que consiga el jugador (el jugador debe de disponer de conexión a internet) las 24 horas del día, los jugadores pueden estar en cualquier parte del mundo.

Tendremos que crear un "sitio" web encargado de servir los datos  y modificar la tabla de  datos (el llamado ordenador servidor).
El programa  "cliente", el que tendrá instalado en su ordenador cada jugador, se encargará de enviar y leer los datos al servidor, mostrándolo en la pantalla del ordenador del cliente.



Esquema de varios clientes conectados a través de internet a un servidor



2) Lenguajes a usar en el servidor
Para guardar los datos usaremos una base de datos, en concreto el motor de bases de datos MySQL.
Algunos sitios web, permiten que se puedan acceder a la base de datos directamente. Normalmente esto no es posible, y/o hay que pagar un suplemento para hacerlo.
Lo más corriente es que para acceder a la base de datos, usemos un lenguaje de programación del lado del servidor. Para el lenguaje del servidor, se podrían usar varios: Python, PHP, Java,  etc.
Normalmente, y es lo más frecuente, los alojamientos web ofrecen servicios para MySQL y soportan el lenguaje PHP.  Por lo cual usaremos PHP, que es  un lenguaje muy utilizado en las páginas web y del  puedes encontrar mucha información en internet (manuales, tutoriales, foros, etc).

3) Buscando alojamiento web.
Existen multitud de empresas que nos ofrecen alojamientos web. Como lo que vamos a hacer  es una prueba, vamos a usar un alojamiento web gratuito que acepte tener bases de datos MySQL y PHP. Si fuera para usarlo en "producción", si deberíamos tener un alojamiento contratado para tener más garantías del funcionamiento del servicio.

He encontrado este alojamiento,  http://www.hostinazo.com , donde se pueden crear cuentas gratuitas, y tiene los servicios que necesitamos (admite el lenguaje PHP y bases de datos MySql),y  es el que voy a usar.

4) Implementación al lado del servidor
4.1) Crear la base de datos en el alojamiento.
Para crear la base de datos en el alojamiento web, vamos a usar la herramienta PHPmyAdmin.
¿que datos vamos a guardar en la base de datos?
Vamos a crear una tabla "datos", con los campos siguientes:

  • id: identificador único y autonumérico  para cada registro
  • jugador: nombre del jugador
  • pais: país de donde es el jugador (lo ponemos sin acento para que no de problemas)
  • marcador: puntuación


Se podían añadir más campos,  por ejemplo el nivel, la fecha , etc., pero nos quedamos con estos campos que son los típicos.

4.2) Crear el programa que nos de información del  marcador de records
Este programa lo crearemos mediante PHP  y se encargará de:
1) Leer las variables que se le pasen en la url, y con estos datos,  añadirlo a la tabla de datos de la base de datos.
2) Borrar registros que no sirvan: Vamos a limitar el número de registros a 20, para que solo guarde los 20 mejores resultados. Conseguimos que así que la base de datos ocupe muy poco en el sitio web. Con lo cual abrimos la posibilidad de crear más tablas de datos para distintos juegos.
3) Salida de datos del marcador: nos muestra los registros de la tabla de la base de datos, en formato html.

5) Implementación al lado del cliente
Para el lado del cliente, podemos usar cualquier lenguaje (gamba3,python, java, C,etc) que sea capaz de leer páginas web o por lo menos que tenga una librería o módulo para tal fin.
Vamos a usar la url de la página web para pasar los datos al servidor, siendo el servidor el encargado de leer e insertar los datos nuevos en la tabla.
Luego, nuestro programa Cliente,  simplemente leyendo la salida que genere el programa cliente, (que será una página web en formato html), obtendrá los datos de la tabla de records, para mostrar en la pantalla del ordenador cliente.


Continuaremos en la siguiente entrada, describiendo la parte del servidor: uso de PhpMySql y PHP

Nota: Enlace a indice del "Desarrollo Online": enlace

Saludos

Jsbsan



viernes, 15 de junio de 2012

Acceder a un servidor ftp desde un programa en C++


Acceder a  un servidor ftp
 desde un programa en C++

Me ha surgido la necesidad, de crear un programa que acceda a un ftp para subir unos archivos.

El tema es que lo podia hacer desde la linea de comandos desde un script, por ejemplo, pero asi tendria de enseñar la contraseña, y es lo que no deseo...


Buscando por internet, me he encontrado una forma de ejecutar comandos desde el lenguaje C++, y no es usando la orden "system(..)" de C++, ya que con este no lo he conseguido hacerlo, ya que no podia mandar varias ordenes.


He usado la orden "popen(...)", con ella he podido tanto conectarme, ademas de hacer un listado de varios subdirectorios (cambiandome de directorio)...

Aqui podeis ver como es el codigo:




/*
* EJEMPLO DE ACCESO A FTP, por un programa en C.
* JsbSan, licencia GPL.
* Basado en el ejemplo de: Javier Abellán. 26 de Marzo de 2003
*
* Programa de demo de la función popen()
* http://www.chuidiang.com/clinux/funciones/funciones.php#popen
*/
#include <iostream>
#include <stdio.h>

using namespace std;

int main()
{
/* Fichero con el que abriremos
FILE *fichero=NULL;
/* Variable auxiliar para leer el fichero */
char aux[1000];
/* Se abre el fichero lftp, pasándole el parámetro y se comprueba
* que se ha podido abrir correctamente */
// lftp -u nombre,clave direccionftp
fichero = popen ("lftp -u nombre_usuario,clave direccion_ftp","w");

if (fichero == NULL)
{
perror ("No se puede abrir /bin/lftp");
return -1;
}
/* Se lee la primera linea y se hace un bucle, hasta fin de fichero,
* para ir sacando por pantalla los resultados.
*/
fprintf(fichero,"ls\n"); // escribo el listado del contenido del directorio del servidor
fprintf(fichero,"quit\n"); // cierro el lftp
/* Se cierra el fichero */
pclose (fichero);
return 0; //termino el programa
}

De esta manera, una vez compilado el codigo fuente, consigo listar el contenido del servidor ftp sin que "nadie" vea la contraseña necesaria para entrar en el servidor (al estar esta contraseña "compilada" junto al código fuente).





Me he basado en el ejemplo de popen() de la pagina web: