martes, 27 de noviembre de 2012

Sistema de usuarios con php y MySQL

Este es un sencillo sistema de usuarios en usando PHP y MySQL así como Wamp Server para visualizar nuestro proyecto. El sistema consiste en registrar usuarios y su logueo. Acontinuacion les describo cada uno de los archivos con que cuenta este sistema.
Nota: estos archivos tienen extension .php
Archivo conexion, este archivo contiene las indicaciones sobre el host, usuario, contraseña y base de datos sobre la que va a trabajar principalmente el sistema, esto para evitar estar declarando esta información cada vez que tenemos un nuevo archivo, para solo agregamos include ("conexion.php"); en los demás archivos.
<?php
//nuestro host
$host="localhost";
//el nombre de usuario
$user="root";

//se indica la contraseña,en mi caso no uso contraseña ya que uso el wampserver,
//si usara un servidor físico entonces forsózamente debo de tener una contraseña
//para evitar infiltraciones

$pw="";
//indicamos la base de datos en la cual trabajaremos
$db="huguito";
?>


Login, este contiene el formulario donde se loguea el usuario.
<!DOCTYPE html>
<html>
       <head>
       <title>El Huguito</title>

       </head>
 <body>

       <h2>Inserte sus datos para loguearse:

       <!--con este formulario el usuario se loguea y manda a llamar a verificar.php

       para realizar el logueo, se usa el método post-->

       <h3>        
<form action="verificar.php"method="post"name="form">

       <p>Nombre: <input type="text"name="Nombre"/><br>

       <p>Password: <input type="password"name="PW"/><br>

       <input type="submit"value="Login"/><br>

</form>     

</body>


</html>

 Index, este archivo es el principal en nuestro proyecto, es el primero que se cargará el abrir el proyecto en el wamp server y en cualquier servidor. Este indica al usuario si está logueado o quiere loguearse.

<?php

//session_start()  comprueba que esté logueado el usuario

session_start(); 
//si name_user tiene un valor entonces se indica que está logueado

if (isset($_SESSION['name_user']))

{

echo'Bienvenido  ';//mensaje de bienvenida más el nombre de usuario

echo'<b>'.$_SESSION['name_user'].'</b>.';
echo'<p><a href="logout.php">Logout</a></p>';//este link manda a logout para cerrar sesión

}

//si no se está logueado se invita a loguearse o registrarse

else

{

echo'<p><ahref="login.php">Login</a></p>

<p><href="registro.php">Registrar</a></p>';

}

?>


<!DOCTYPEhtml>

<html>

       <head>

       <title>El Huguito</title>
       </head>


<body>

       <p><h1>             INDEX

       <p><h2>ESTA ES LA PAGINA PRINCIPAL DE LA PAGINA WEB


</body>


</html>


Insertar, aquí es donde se enlaza a la base de datos para insertar un nuevo usuario:
<?php

//se llama a conexion.php

include ("conexion.php");
//se establece la conexión usando elhost, el usuario y la base de datos

//declarados en conexion.php

       $conexion=mysql_connect($host,$user,$pw);

       //si no hay conexión

       if(!$conexion){

             die('No se ha podido conectar: '.mysql_error());

       }

       else

       {

             //indicamos el select ,la base de datos y laconexión

             mysql_select_db($db,$conexion);  

             //declaramos variables y les asignamos valores, los cuales vienen del formulario 
            //de registro

             //el trim inidica que se eliminan los espacios en blanco

             $username=trim($_POST["Nombre"]);

             $password=trim($_POST["PW"]);

            

             //Consulta:
             //realizamos la consulta de insert indicando los valores (variables declaradas         
             //anteriormente)
             //a insertar usando el formato '{$variable}', observe también el formato de 
             //la fecha

             $consulta = ("INSERT INTO usuario(Nombre_User,Password,Fecha)           values('{$username}','{$password}','".date("Y-m-d")."')");

             $resultado = mysql_query($consulta) or die (mysql_error());
             $datos = @mysql_fetch_array($resultado);
            mysql_close();
             echo 'Se ha registrado correctamente.';
             header('location:index.php');

       }

?>



Logout, si el usuario decide cerrar sesión este archivo se encarga de terminar la sesión.


<?php

session_start();

session_destroy();//se termina la sesión

echo'Ha terminado la session';

?>

<SCRIPT LANGUAGE="javascript">

//se regresa a index

location.href = "index.php";

</SCRIPT>


Registro, este contiene el formulario de registro para los nuevos usuarios:

<!DOCTYPE html>

<html>

       <head>

       <title>Page Title</title>

       </head>


<body>

       <p><h2>Inserte sus datos para registrarse:

<!--este es el formulario que guarda el nombre de usuario y su password en la base de datos

se usa el método post-->

<h3>

<form action="insertar.php" method="post" name="form">

       <p>Nombre: <input type="text" name="Nombre"/><br>

       <p>Password: <input type="password" name="PW"/><br>

       <input type="submit" value="Registrar"/><br>

</form>     

</body>


</html>

Verificar, este es el encargado de consultar en la base de datos el nombre de usuario y contraseña proporcionados al momento del logueo, si son iguales a los que tiene la base de datos se inicia la sesión, de no ser así se indica el error:

<?php

include ("conexion.php");

$username=$_POST["Nombre"];

$password=$_POST["PW"];

echo $username;

//indicar el servidor

mysql_connect($host,$user,$pwor die ('Ha fallado la conexión: '.mysql_error());

//elegir la base de datos

mysql_select_db($db)ordie ('Error al seleccionar la Base de Datos: '.mysql_error());

//trim quita espacios en blanco

if(trim($username) !=""&&trim($password) !="")

{

       //buscar en la base de datos un usuario con ese nombre y traer el password

       $consulta="SELECT Password,Nombre_User FROM usuario WHERE Nombre_User='".$username."'";

       //en la variable $result guarda lo que trajo la consulta y verifica que se realice
       $result=mysql_query($consulta)ordie ('Ha fallado la conexión: '.mysql_error());

       //ahora guarda en $row lo obtenido en la consulta(Password y Nombre_User)

       if($row=mysql_fetch_row($result)){

      //si el row[0] (el cual es la contraseña que trae la consulta)es igual a

      // la contraseña proporcionada por el usuario se inicia la sesion

if($row[0] == $password)

         {

       session_start();

        $_SESSION["name_user"] = $row[1];//Es una variable de sesion que toma el nombre de 
    //usuario, nos ayudará a indicar si el usuario está logueado y con ella indicaremos el    //nombre del usuario al estar registrado

            

echo'Has sido logueado correctamente '. $_SESSION['name_user'];

       header("Location: index.php");//Te redirecciona a la página index

      }

       else

         {

echo'Contraseña o Nombre de usuario incorrectos, verifique e intente de nuevo.';

      }

   }

else

   {

echo'Contraseña o Nombre de usuario incorrectos, verifique e intente de nuevo.';

}

mysql_free_result($result);

}

else

{

echo'Especifique un Nombre de usuario y Contraseña para loguearse';

}

mysql_close();


?>

Cuando ya tenemos cada uno de estos archivos se procede a verificar que funcionen, sin embargo antes de ello necesitamos la base de datos en MySQL, en la cual guardaremos los usuarios registrados. 
Para ello usaremos el mismo Wamp Server con la herramienta phpMyAdmin. Es necesario iniciar el Wamp Server:
ya iniciado verificamos que el servidor esté activo, esto se logra cuando el ícono del Wamp Server está verde, de no estarlo sobre deben de dar clic conre el ícono y seleccionar Start All Services
Al estar activo ingresamos a nuestro navegador preferido, en mi caso Google Chrome y escribimos localhost para ingresar a las herramientas de Wamp Server, en algunos casos el Wamp se instala con un puerto diferente por lo que podría ser localhost:8080, pero todo depende de su instalación, para revisar esto puede ingresar al archivo httpd.conf de la Opcion Pache y cambiar el puerto por donde escucha.


Este es el Wamp Server y sus herramientas.
Ahora usamos la herramienta phpMyAdmin para crear la base de datos que necesitamos:














Aquí es donde crearemos la base de datos.

Seleccionamos la opción base de datos:
Asignamos un nombre y damos clic en crear:
Ahora aparece la ventana para crear una tabla:
Para probar el proyecto solo necesitamos de la tabla usuario, la cual tendrá cuatro columnas, damos clic en continuar:
Esta tabla solo contendrá cuatro columnas:
ID_Usuario, de tipo entero, autoincrementable y siendo esta la llave primaria.
Nombre_User, de tipo VARCHAR, longitud 20.
Password, de tipo VARCHAR, longitud 20.
Fecha, de tipo DATE.
 si ya han creado base de datos les resultará muy sencillo este paso.



d

Del lado derecho asignamos Autoincrementable y Primaria a la columna ID_Usuario


Guardamos la tabla:







Y así se mostrará al estar ya creada:
Al seleccionarla en el lado izquierdo de la ventana podremos visualizarla.


Ya que tenemos la base de datos, ahora guardamos los archivos anteriores en una carpeta y la copiamos en la dirección:  C:wamp/www


Ahora en la dirección: C:wamp/alias tomamos cualquiera de los archvios con extensión COF y lo copiamos pegamos en la misma carpeta.


Le cambiamos el nombre y le asignamos el que tiene nuestra carpeta de archivos, en nuestro caso se trata de la carpeta "huguito".



 

En el navegador debemos recargar la pagína.
Ya recargado el navegador en la parte de Your Proyects veremos que aparece nuestro proyecto con el nombre "huguito".






Esta es la página principal, debido a su nombre index es como el servidor sabe que es la principal.
 Damos clic a Registar y nos manda al formulario de registro, registramos un usuario con el Nombre hugo y de password 123.
Si revisamos en la tabla de la base de datos podemos verificar la inserción.



A hora nos logueamos con ese nomre de usuario y su contraseña.

 Vemos ahora que aparece el emsaje de bienvenida con nuestro nombre de usuario
Si decidimos cerrar sesión solo damos clic en logout y apareen de nuevo las opciones para loguearse o registrarse.

Para entender mejor el sistema pueden ver sel siguiente video:

Eso sería todo y gracias por ver el contenido, espero que  les ayude en algo.

miércoles, 14 de noviembre de 2012

determinar si un número es par o impar

Aquí el diseño, cuenta con un Label con el texto "Inserte número:", un TextBox llamado txt_numero y un Button llamado btn_checat y con la propiedad Text de "Checar".




using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace numprimpar
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        //este es el codigo que se ejecuta al dar clic al botón Checar
        private void btn_checar_Click(object sender, EventArgs e)
        {
            //declaramos una variable de tipo entero llamada numero la cual
            //tomamos del TextBox txt_numero
            int numero=Convert.ToInt32(txt_numero.Text);
            //ahora verificamos que el residuo de dividir al numero insertado
            //entre dos de como resultado cero, si es así se imprime en un
            //MessageBox indicando que tipo de número que es, si no  es par por
            //lógica se trata de un número impar
            //el residuo se expresa con el símbolo de porcentaje
            if (numero % 2 == 0)
                //el mensaje incluye el número insertado
                MessageBox.Show("El número " + numero.ToString() + " es par.");
            else
                MessageBox.Show("El número " + numero.ToString() + " es impar.");
        }
    }
}


Pruebas de la aplicación:





martes, 9 de octubre de 2012

Comentarios en C#, C++, HTML, CSS3, Ensamblador, SQL Server y php

La forma de hacer comentarios en los lenguajes de programación es muy sencilla pero es diferente en cada uno de ellos veamos algunos ejemplos:
Comentarios en C# y C++:
En C# solo bastan dos diagonales seguidas.
//comentario
Un grupo de comentarios se inicia con una diagonal seguida de un asterisco y termina con un asterisco seguido de una diagonal.

/* Bloque de comentarios
Bloque de comentarios
Bloque de comentarios */

También cabe mencionar que en Visual Studio existe una forma de agrupar código para minimizarlo usando la sentencia región. A un lado aparecerá un cuadro con un signo de – para minimizar ese grupo de código.
#region nombre_del_codigo
//aquí va código
#endregion
Comentarios en SQL Server:
Cuando se tiene el código en SQL Server los comentarios se asignan con dos guiones medios seguidos.
--comentario
Comentarios en HTML:
Para HTML, debido a que usa etiquetas sus comentarios son igual a una etiqueta. Inician con un menor que (<) seguido de un signo de admiración (!) – le proceden dos guiones medios (--), se coloca el comentario o bloque de comentarios y se termina con dos guiones medios (--), se cierra la etiqueta con el mayor que (>).
<!--comentario-->
<!--bloque de comentarios
Bloque de comentarios
Bloque de comentarios -->
Comentarios en CSS3:
En CSS3 los comentarios o bloques de comentarios inician con una diagonal seguida de un asterisco y terminan con un asterisco seguido de una diagonal.
/* Comentario*/

/* Bloque de comentarios
Bloque de comentarios
Bloque de comentarios */

Comentarios en php:
Aquí los comentarios son con dos diagonales y un bloque con diagonal, asterisco, asterisco y diagonal.
//comentario
/* Bloque de comentarios
Bloque de comentarios
Bloque de comentarios */

Comentarios en Ensamblador:
Para este lenguaje basta un punto y coma.
;comentario





miércoles, 19 de septiembre de 2012

Pirámide cuadrada en Open GL


// piramide.cpp: define el punto de entrada de la aplicación de consola.
//

#include"stdafx.h"
//librería para utilizar operaciones matemáticas
#include<glut.h>

voidInicializacion(void);
voidDibuja(void);

int main()
{
       //inicio del boblebuffering para evitar parpadeo
glutInitDisplayMode(GLUT_RGB | GLUT_DEPTH | GLUT_DOUBLE);
//tamaño de la pantalla
glutInitWindowSize(600,600);
//posición de inicio de la pantalla
glutInitWindowPosition(0,0);
//título de la pantalla
glutCreateWindow("Pirámide cuadrada");
//llamado a inicialización
Inicializacion();
//llamado a dibuja
glutDisplayFunc(Dibuja);
//ciclo para pausar la pantalla
glutMainLoop();

return 0;
}

voidInicializacion(void)
{
       //matriz a modificar
glMatrixMode(GL_PROJECTION);
//resetear a la matriz a su estado por default
glLoadIdentity();
//se indica la perspectiva en que se verá
gluPerspective(70,1,0.1,100);
//matriz de transformacion
glMatrixMode(GL_MODELVIEW);
//permiyte trasladar un objeto en el espacio
glTranslated(0,0,-10);
//glRotated permite rotar un objeto
//------------------------------vistas de la pirámide
//--------vista de dos caras
glRotated(50,1,1,0);
//--------vista de tres caras
//glRotated(85,1,1,0);
//--------vista de la base y dos caras
//glRotated(-40,1,-5,0);
//--------vista de la base y un cara
//glRotated(200,1,0,0);
//--------vista de una cara
//glRotated(0,0,0,0);
//--------vista de la base
//glRotated(-90,100,0,0);
//--------vista de las cuatro caras
//glRotated(90,100,0,0);
//limpiamos la pantalla con un color
//glClearColor(0,0,0,0);
//glShadeModel especifica un tipo de sombreado o relleno
//en este caso es un relleno plano al tratarse de GL_FLAT
//no lo usamos para colorear como si fuese degradado
//glShadeModel(GL_FLAT);
//habilitanos GL_CULL_FACE el cual especifica si facetas delantera o
//trasera son estraídas o eliminadas
glEnable(GL_CULL_FACE);
//aquí se indica que se van a extraer las facetas traseras
glCullFace(GL_BACK);
//glFrontFace define los poligones de frente o espalda
//GL_CW especifica que los polígonos se verán de frente
glFrontFace(GL_CW);
}


void Dibuja(void)
{
       //limpiamos pantalla
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
//inicio de dibujo de un cuadrado

//-----base de la piramide--varios colores
//se usa GL_QUADS para crear un cuadrilátero
glBegin(GL_QUADS);
//vértices en 3d
glColor3f(1,0,0);//rojo
glVertex3d(-4,0,-4);//4
glColor3f(1,1,0);//amarillo
glVertex3d(-4,0,4);//3
glColor3f(0,0,1);//azul
glVertex3d(4,0,4);//2
glColor3f(0,1,0);//verde
glVertex3d(4,0,-4);//1
glEnd();
//------------------caras de la pirámide
//para las caras triangulares
//se usará GL_TRIANGLES
//--------Cara 4  amarillo con blanco
glBegin(GL_TRIANGLES);
//vértices en 3d
glColor3f(1,1,1);//blanco
glVertex3d(0,4,0);
glColor3f(1,1,0);
glVertex3d(-4,0,-4);//1
glVertex3d(4,0,-4);//4
glEnd();

//--------Cara 1 rojo con blanco
glBegin(GL_TRIANGLES);
//vértices en 3d
glColor3f(1,1,1);//blanco
glVertex3d(0,4,0);
glColor3f(1,0,0);//rojo
glVertex3d(4,0,-4);
glVertex3d(4,0,4);
glEnd();
//--------Cara 3 verde con blanco
glBegin(GL_TRIANGLES);
//vértices en 3d
glColor3f(1,1,1);//blanco
glVertex3d(0,4,0);
glColor3f(0,1,0);//verde
glVertex3d(-4,0,4);
glVertex3d(-4,0,-4);
glEnd();
//-------Cara 2 azul con blanco
glBegin(GL_TRIANGLES);
//vértices en 3d
glColor3f(1,1,1);//blanco
glVertex3d(0,4,0);
glColor3f(0,0,1);//azul
glVertex3d(4,0,4);
glVertex3d(-4,0,4);
glEnd();

//cambio del bufer oculto al activo
glutSwapBuffers();
}