jueves, 29 de octubre de 2009

Proyecto Web (Parte 2)

A paso de tortuga la cosa sigue avanzando. Ya he registrado un dominio gratuito, pero no por ello malo (la verdad es que tiene muy buenas cosas este servidor) y ya he alojado lo que llevo de web. Aun no hay nada, pero ya he metido un sencillito formulario de registro y se puede acceder al sistema tras registrarse.

La unica diferencia por ahora es el boton de logout.

Por ahora la autenticación y el método para mantenerse conectado son mediante el uso de cokies, pero mas adelante implementaré el uso de sesiones y, si el usuario lo desea, guardar la informacion mediante cookies, ya que las cookies dependen del navegador y podemos tenerlas desactivadas o desactivarlas, y si permitimos que solo se mantenga conectado con cookies pues es posible que la web no nos mantenga logados.

Podemos ver como va el proyecto en la url http://turkos.freetzi.com

El proyecto final, debido a la coña de montar una empresa de asesinos a sueldo debido a la crisis financiera y economica mundial, se ha titulado "The Turks", es decir, "Los Turkos" o "los Turcos", porque como todas mis cosas, o al menos la mayoría, están relacionadas con Final Fantasy VII ^^.

El sitio tiene la siguiente estructura:

[raiz del sitio]
|__[images]
|_______ contiene imagenes del sitio
|__[includes]
|_______ header.php (cabecera de la web)
|_______ footer.php (pie de la web)
|_______ funciones.php (archivo donde colocar las funciones usadas en la web)
|_______ configuracion.php (parámetros de configuracion del sitio)
|__ template_css.css (hoja de estilo en cascada)
|__ animatedcollapse.js (javascript de menus interactivos)
|__ index.php (cuerpo de la web)
|__ registrar.php (script que registra a los usuarios)
|__ ingresar.php (script que loguea a los usuarios)
|__ login.php (script qur comprueba las cookies y si el usuario está logado)

Primero hablaré del registro. Yo lo tengo en el mismo index.php pero puede estar en cualquier sitio. La cuestion es un formulario simple que envie una serie de datos mediante POST a otro archivo, que los procesará para realizar el registro. Esto se consigue con el parámetro ACTION="registrar.php". Se pone así porque el archivo registrar.php lo tengo en el mismo directorio que el archivo que ejecuta el codigo (en este caso el index.php). Si registrar lo tuvieramos, por ejemplo, en un directorio llamado "reg" entonces tendriamos que poner ACTION="reg/registrar.php". Y si el archivo que tiene el formulario está en la carpeta "reg" y el archivo registrar.php estuviera un nivel por debajo pondríamos ACTION="../registrar.php". Basta de tonterías, el código del formulario es el siguiente:

                <FORM ACTION="registrar.php" METHOD="post">
                <table align="left" border="0" cellspacing="0" cellpadding="1">
                    <tr><td align="left">Nick:</td><td align="right"><input type="text" name="nick" size="14"></td></tr>
                    <tr><td align="left">Pass:</td><td align="right"><input type="password" name="password" size="14"></td></tr>
                    <tr><td align="left">Name:</td><td align="right"><input type="text" name="nombre" size="14"></td></tr>
                    <tr><td align="left">Email:</td><td align="right"><input type="text" name="email" size="14"></td></tr>
                    <tr><td colspan="2" align="center"><INPUT TYPE="submit" CLASS="boton" VALUE="Registrar"></td></tr>
                </table>
                <br>       
                </FORM>

Cada input, es decir, cada caja de texto le damos un nombre para identificarlo. Cuando enviémos el formulario, registrar.php recibirá por POST informacion contenida en cada input, que capturaremos con la variable $_POST["nombreDeCajaDeTexto"].

Ahora vamos al archivo registrar, que lo explicaré por partes. Este archivo empieza así:

<?php
//incluimos datos de configuracion del servidor
require('includes/configuracion.php');
//incluimos archivo con funciones a usar
require("includes/funciones.php");
conectar() or die('No se puede conectar a la Base de Datos!');

Tendremos que conectarnos a la base de datos, y para ello requerimos los parámetros de configuración, así que por eso, antes de conectar con la base de datos, tendremos que tener presente el contenido de estos dos archivos, uno que define los parámetros del servidor para la base de datos y otro porque es donde se alojan las funciones que hacemos. conectar() llama a la funcion, sin require("includes/funciones.php"); no tendríamos nada que hacer.

Antes de seguir viendo registrar.php veamos estos dos archivos, donde configuration.php sería algo así:

<?php
//BASE DE DATOS
define('SERVIDOR', 'servidor'); //en local, por ejemplo, seria "localhost"
define('USUARIO_BD', 'usuariodelabasededatos'); //por defecto "root"
define('PASSWORD_BD', 'contraseñadelabasededatos'); // Con xampp, por defecto sin contraseña
define('NOMBRE_BD', 'nombredelabasededatos'); //nombre de la BD cuando la creamos con phpmyadmin, por ejemplo
?>

Mientras que funciones.php sería un recopilatorio de funciones. Yo pondré mis 2 funciones que tengo por ahora, una para conectar, y la otra para eliminar de lo que se escriba en las cajas de texto simbolos html o espacios, para que no nos intenten joder la web con simple inyección SQL:

<?php
  function conectar($server = SERVIDOR, $username = USUARIO_BD, $password = PASSWORD_BD, $database = NOMBRE_BD, $link = 'db_link') {
    global $$link;
    $$link = mysql_connect($server, $username, $password);

    if ($$link) mysql_select_db($database);
       return $$link;
  }
 
function quitar($mensaje)
    {
    $mensaje = str_replace("<","&lt;",$mensaje);
    $mensaje = str_replace(">","&gt;",$mensaje);
    $mensaje = str_replace("\'","'",$mensaje);
    $mensaje = str_replace('\"',"&quot;",$mensaje);
    $mensaje = str_replace("\\\\","\\",$mensaje);
    return $mensaje;
    }
?>

Bien bien, ahora sigamos con registro.php. Lo unico que tenemos en un if-else que nos comprueba primeramente que si los campos a rellenar estuvieran vacíos. De no rellenar ningun campo mandaría la página a index pasando una variable por GET con un mensaje. Este mensaje, en el index, podremos capturarlo y mostrarlo con una simple linea:

if ($_GET["msg"]) echo "<font color='ff0000'>".$_GET["msg"]."</font><br>";

Veamos el if-else

if(trim($_POST["nick"]) != "" || trim($_POST["pass"]) != "" || $_POST["nombre"]) != "" || trim($_POST["email"]) != "")
    {

    }
else
    {
    header('Location: index.php?msg=Rellene bien los campos');
    }

mysql_close();
?>

Ahora veamos lo que habrá dentro de la sentencia if. Básicamente hacemos una consulta a la base de datos que nos diga si hay algun usuario con ese nick enviado. Si lo hay, enviamos al index.php con un mensaje (igual que el mensaje si los campos estaban vacíos), y si no lo hay pues insertamos en la base de datos los datos puestos por el usuario y mandamos al usuario al index.php con un mensaje de exito al registrar:

    $sql = "SELECT id FROM usuarios WHERE nick='".quitar($_POST["nick"])."'";
    $result = mysql_query($sql);
    if($row = mysql_fetch_array($result))
        {
        header('Location: index.php?msg=¡Nick ya existente!');
        }
    else
        {
        $sql = "INSERT INTO usuarios (nick,pass,nombre,email) VALUES (";
        $sql .= "'".quitar($_POST["nick"])."'";
        $sql .= ",'".md5(quitar($_POST["password"]))."'";
        $sql .= ",'".quitar($_POST["nombre"])."'";
        $sql .= ",'".quitar($_POST["email"])."'";
        $sql .= ")";
        mysql_query($sql);
        mysql_free_result($result);
        header('Location: index.php?msg=¡Registro Exitoso!');
        }

Y con esto ya hemos registrado al usuario y acabado esta entrada

miércoles, 14 de octubre de 2009

Final Fantasy RPG en "Flash"

La gente se aburre mucho, y eso me gusta. No se cuantas horas de trabajo tiene que tener hacer algo como esto que voy a poner, pero seguramente serán muuuchas horas.

Os dejo esta maravilla, cutre, pero hay que valorar el trabajo:


viernes, 18 de septiembre de 2009

Nuevo Proyecto Web (Parte I)

Hace tiempo que no me dedico a mi mismo mis progresos informáticos. Llevo toda mi vida basándome en la comunidad que tanto aprecio y que lleva en funcionamiento ya para 8 años.

En lugar de usar un sistema de webs o códigos ya funcionales, para mi satisfacción personal voy a programarme yo solito absolutamente todo. Hombre, eso no quiere decir que me busque scripts ya hechos para aplicar, pero lo que es la base de datos, los registros, la encriptación, accesos restringidos, los permisos, el diseño, la hoja de estilos en cascada (css)... entre otras cosas, me la voy a comer con papas yo solito.

Ahora mismo solo he hecho un diseño plano, sin logotipos ni nada (En lugar de logos he puesto colores planos para diferenciar las partes y comprobar que todo encaja a la perfección). Me he llevado varias horas entre decidirme y encajar las piezas del puzzle y me he llevado un par de horitas solo para solucionar algunos espacios que quedaban entre las capas (divs), cosa que ya he solucionado.

Antes de poner la imagen de cómo queda, diré que el proyecto aun no tiene nombre y que pienso incluir dentro de la web todas las cosas en las que vaya trabajando, como el RPGCP (RPG Control Panel) con el que le meto presión a Ixidro, o el control de puntos para los amigos con el que bromea Charles y Dani ^^.

Este es el diseño base:



lunes, 7 de septiembre de 2009

Las vacaciones se fueron :(

Wau! No disfruto de unas vacaciones bien merecidas desde hace años, al menos no tan largas, pero me ha dado para tan poco... Como la economía va regular teniendo en cuenta mis proyectos de futuro y adquisiciones, yo no he salido de casa y las vacaciones han venido a mi.

Ha sido estupendo, he desconectado de manera brutal, solo he cogido el pc para tontear un rato y sobre todo jugar (Tales of Pirates NV 45 powa!), y he conocido en persona a gente maravillosamente encantadora como Laia y Alvaro (Tsuni e Ichi), con quienes he compartido momentos junto con Alvaro y Eva (Nekodeko y Karmatrix).

No es que haya sido algo grandioso pero al menos ha sido diferente, siempre es bueno conocer gente buena y agradable, cuyas vidas tienen por finalidad no hacer gilipoyeces ni frikadas desbordantemente estúpidas.

Pero agosto ya se ha ido y tras el ha llegado el horror, el comenzar de nuevo el trabajo, con más trabajo todavía si cabe que en cualquier otra epoca del año.

Ains, yo que quería aplicar muchas soluciones informáticas en mi blog y al final solo tengo una entrada pestosa sobre los archivos HTACCESS xDDDD.

Por otra parte, a parte de felicidad, agobio, trabajo, cansancio y mil cosas más, siempre uno tiene que seguir topándose con más tonterías de las necesarias. Como siempre, podría sentirme feliz el auto-daño que se hace la gente por culpa de sus propias tonterías, luego me parto la caja cuando la esta gente se pone a llorar con palabras estúpidas haciendose las victimas y ya para colmo es que me quieren asesinar de la risa cuando me mencionan entre lineas para tomar medidas contra mi.

Ains, si es que no puede ser, qué aburrida sobremanera está la gente que lo unico que hace es seguir desenterrando mierda, cuan cobarde es la gente como para decir tal cantidad de gilipoyeces en un blog y luego verte pasar por la calle y decirte "Escoria" mientras trata inutilmente de lanzar un rayo destructor con los ojos. Cobarde y estúpida gente que insulta a terceras personas que no tienen nada que ver.

Pero bueno, como dice una buena amiga mia, hay gente que si no le entra la vena psicotica unas poca veces al año, no se siente contenta.

En fín, por si la vida no fuera suficientemente complicada y con responsabilidades cada vez mayores, dejaré de hacer caso (aunque nunca le hice demasiado) a estas tonterías que la gente se toma tan a pecho y seguiré ascendiendo por mi escalera de cristal quebradizo, mientras otros se entretienen en hacer de la vida la patraña más grande de la historia.

Que a cada cual le duela su pecaminosa vida, y que cada insensato se ahogue en sus propias mentiras y hechos barbaros.

¿Por qué la gente es tan estúpida?

miércoles, 20 de mayo de 2009

Sobre los sucesos acontecidos...

Desde luego, desde la semana pasada han pasado muchas cosas que son para flipar en colores. Si hasta ahora hemos visto la mar de cosas absurdas sobre C. (M.F.), el tema ya ha desbordado y rayado a más de uno.

Muchas veces se le ha dado la palmadita en la espalda, y un "venga, a ver tio, no pasa nada", pero ya el juego se tiene que acabar. Una persona que llama por teléfono al padre de una chica para decirle -lo que todos sabemos lo que dijo-, es algo que supera los límites de la tontería, y si encima añadimos su papel de víctima por el mundo, pues para hartarse de reir.

Muchos podréis llegar a pensar que ¿para qué me meto en el tema?, pues muy fácil, yo no quiero defender a alguien que conozco de haberla visto 3 días, de hecho se lo dije por teléfono hará unos días, lo mio es algo que viene de atrás, porque hay cosas que deben saberse de C. (M.F.), que al paso que vamos tendremos que llamarle Voldemorth o "El que no debe ser nombrado".

En sus comentarios absurdos y sin ningún tipo de fundamento me ha llegado a decir que "Hinché a ostias a la novia esa que tuve, la de tenerife". Claro, con ánimo de echar por tierra mi política de bonachón. Claro que "mi querida ex-novia, la de tenerife" (que tiene nombre por cierto, y ese nombre es Gara) podría haber llegado y haber dicho "Eso no es verdad, en cambio lo que si es verdad es que el señor C. (M.F.) si que intentó varias cosas conmigo". Pero como borró sus comentarios, ya no hay pruebas, aunque sé de gente que lo leyó ^^.

Vamos a tirar por tierra entonces la calificación de esa persona que ha intentado dejarme mal:

- Entre muchas tonterías dijo que no es verdad, que si no le dió besitos en el cuello y el hizo que el chocho le dieran palmas, entre otras gilipoyeces, entonces es que él no intentó nada y que pensar lo contrario es fruto de divagaciones (Lo dijo de forma aun más grotesca y vulgar)[...] Pues bien, no solo intentó en varias ocasiones flirtear con Gara, si no que encima quiso aprovecharse de una situación en la que ella estaba brutalmente bajo los efectos del alcohol, además que esa misma noche, y a causa de la bebida, discutimos y yo no quise discutir más a causa de esa misma situación. C. (M.F.), aplicando su teoría de la manada, muy amigo de sus amigos, que ahora de repente se ha sentido traicionado por algunos de estos, que nos llama escoria cuando paseamos por la calle y nos cruzamos (xD), este pedazo de amigote, cuando hay mujeres de por medio, de repente le cambia el chip, y pasa a ser absolutamente lo contrario.

- C. (M.F.), que como yo digo, usa palabrería y filosofía de wikipedia, dice que "la unica arma que nos queda es la palabra", pero hace callar en su blog cuando los demás expresan lo que piensan, no vaya a ser que las chicas con las que filtrea (de la vida, del Tuenti, del Facebook) lean algo malo o que sea contrario a lo que sus palabras intentan transmitir cuando trata de ligar.

- C. (M.F.) miente como un bellaco, y después llama mentirosa a su ex-novia y cocainómano a su actual marido, dando ejemplo de su mega-madurez subiendo fotos al tuenti y poniendo un emoticono en la cara de esta chavala. No sé que pinta insultando a su marido ni acusándolo de esta forma solo por el hecho de haber conseguido lo que él mismo quiso y no pudo (Y menos mal).

- En el mismo punto anterior, a mi me dijo una noche que, "como dijo Confucio: si no tienes nada bueno que decir, mejor quédate callado". Ya podría dar algo de ejemplo, por eso digo su filosofía barata de wikipedia, cojo lo que me interesa y lo suelto, y lo que no me interesa lo dejo por ahi. Yo me quedo mejor con esta frase de Tales de Mileto: "La cosa más difícil es conocernos a nosotros mismos; la más fácil es hablar mal de los demás".

- Y voy a dar por concluido esto, no sin antes decir que en ningún momento he insultado a nadie, aunque yo si que he sido insultado en sus comentarios borrados. Me he dedicado a predicar con cierta maldad y soltar todo lo que tenía que soltar para hacer ver a la gente y a él mismo que no tiene razón, que no tiene excusa para hacer lo que ha hecho, que los demás no siempre son los malos, y que de vez en cuando uno debe apechugar con los actos que comete, y que si hay algún culpable sobre todo lo que pasa a su alrededor, puede que sea él mismo, al fin y al cabo, sigue siendo una víctima más, del mundo y de sus propios actos. Regalaré algunos scans de mis comentarios que pude captar antes de ser borrados, que se vea que no insulto:





Conclusión: Uno es como es, y si uno hace lo que hace que lo haga sin miedo a que le vean tal cual es... o que pretendemos?? Joder la vida de la gente de forma gratuita y que encima quedemos de puta madre para seguir jodiendo al próximo/a???.

Siembra viento y recoje tempestades, es lo que le quedan a estas... ¿¿podemos llamarle personas??. Yo no puedo perdonar semejante grado de hipocresía, estupidez y malhablar, y menos aún cuando estas forman parte del ambiente que me rodea.