RSS
Facebook
Twitter

lunes, 24 de agosto de 2015

CURSO DE PHP - SESIONES Y COOKIE

seguimos con nuestro curso de php, donde veremos las sesión y cookie pero primero ¿que son las sesiones? las sesiones consiste en guardar datos almacenándolos en una variable global llamada $_SESSION esto con el fin de personalizar la aplicación y mejorar el control del sitio web.

las sesiones pueden almacenar cualquier cantidad de datos dándole su clave, valor de la sesión pero primero antes que todo se debe llamar primero la función session_start() esto inicia la sesión si no utilizamos esto no funcionara.

ahora ¿que son las cookie? las cookies son un mecanismo por el que se almacenan datos en el navegador remoto y poder así monitorizar o identificar a usuarios que vuelven al sito web, esto también nos permite almacenar cualquier valor, para eso utilizamos la función setcookie(clave, valor, tiempo,path, dominio, protocolo).

crearemos un archivo de login.php donde haremos nuestro esqueleto de html, aquí les dejo el link de descarga del archivo login.php

una vez que se han descargado el archivo que les deje y hayan echo su propia estructura comenzaremos a programar, ahora crearemos otro archivo llamado session_user.php comencemos:


//escapar caracteres raros que viene por post
$email = addslashes($_POST['email']);
$password = addslashes($_POST['password']);
//la validación si hay algo por post valida los campos
if (!empty($_POST['sbt_login'])) {
  if(empty($email) && empty($password)){
    echo "verifica que los campos esten completos";
  }else {
    //conectar a la base de datos
    $conect = new mysqli('localhost', 'root', 'root', 'registro');
     //en caso de que haya un error al conectarse
    if($conect->connect_error){
      echo "ocurrio un error al conectarse a la base de datos";
    }
     //verificar si el email existe
    $sql = "SELECT * FROM users WHERE email = '{$email}' AND password = '".md5($password)."'";
    $query = $conect->query($sql);
     //si existe porcederemos a inicar la sesion
    if ($query->num_rows > 0) {
      //inicializar la sesin
      session_start();
      //guardamos el email en una sesion 
      $_SESSION['USE'] = base64_encode($email);

      while ($user = $query->fetch_assoc()) {
        //con eso procederemos a guardar su id de la base de datos en la sesion
        //esto nos sirve con el fin de querer recuperar el id de usuario para usarlo en otra parte del codigo
        $_SESSION['USI'] = base64_encode(md5($user['id']));
      }
      //creamos una cookie con eso para verificar que el usuario haya iniciado sesion con existo
      //con un limite de 1 hora
      setcookie('LOG', base64_encode('us_lg'), time() + 3600, '/');

    } else {
      echo "verifica tu correo y contraseña";
    }

    $conect->close();
  }
}else {
  header('Location: /');
}





esto es todo lo que necesitamos para hacer que un usuario se logee, con esto nuestra aplicación básica esta echa, hemos aprendido muchas cosa y sobre todo conectarnos a nuestra base de datos mediante objetos y no por funciones, espero que le haya servido nos vemos en un próximo curso de php.

domingo, 16 de agosto de 2015

segiremos con nuetra pequeña aplicacion de php, donde ahora veremos las conexiones a la base de datos, pero aqui no veremos como utilizar las funciones que nos permite conectar a la nuestro phpmyadmin, trabajaremos sobre objetos, tal vez mucho no se sepan y otros sepan pero creo que es mucho mejor aprender a programar sobre objetos, poco a poco veremos como funciona esto.

bien ahora regresamos a nuestro código en el archivo registre.php donde añadiremos mas funciones:

$name = addslashes($_POST['name']);
$email = addslashes($_POST['email']);
$password = addslashes($_POST['password']);

if (!empty($_POST['sbt_registre'])) {
  if(empty($name) && empty($email) && empty($password)){
    echo "verifica que los campos esten completos";
  }elseif (strlen($password) < 6) {
    echo "el la contraseña debe de tener mas de 6 digitos";
  }
   // nuevo código que vamos añadir
   //después que todos los datos se validen procederemos a nuestra conexión a la bd
  else {
      // instanciamos el objeto mysqli que nos permite conectar a la BD o base de datos.
      //este objeto recibe 4 parámetros principales que son:
      //el host, usuario, contraseña y la base de datos
      //si tu phpmyadmin no tiene contraseña puedes dejarlo entre comillas asi ''
      $conect = new mysqli('localhost', 'root', 'root', 'registro');
       //si existe un error en la conexión mandara el error
      if($conect->connect_error){
        echo "ocurrio un error al conectarse a la base de datos";
     }
      //si existe un usuario en la base de datos cuando se envia el email.
      $sql = "SELECT * FROM users WHERE email = '{$email}'";
       // ejecutamos nustro query para la consulta.
      $query = $conect->query($sql);
      // affected_rows obtiene el numero de filas afectada
      if ($conect->affected_rows > 0) {
         echo "usuario existente";
     }else {
         //el query para insertar los datos 
         //utiliza md5 para encriptar la contraseña 
   $insert = $conect->query("INSERT INTO users (name, email, password) VALUES ('{$name}','{$email}','".md5($password)."')");

           if ($insert) {
             echo "registrado";
           }else {
             echo "hubo un error al registrarte";
           }
        $conect->close();
    }
  }
}else {
  header('Location: /');
}


aquí esta todo nuestro código que nos permitirá registrar a un usuario, aquí les dejo el link de la documentación de php donde se trabaja con objetos al conectarnos en el phpmyadmin.

asta aquí el tutorial nos vemos en la siguiente parte donde veremos como hacer un inicio de sesiones las sesiones y las cokie.



viernes, 14 de agosto de 2015

este tutorial es algo corto ya que solo nos vamos a limitar añadir unas lineas de código, donde haremos que cuando se envié los datos por post, eliminar cualquier tipo de caracteres raro para evitar ataque a nuestra bases de datos oh evitar que se ejecute código raro en nuestra aplicación.

hay varios tipos de funciones en php que nos permiten escapar caracteres raros una de ellas es addslashes que escapa un string con barras invertidas, aquí el link de la documentación de php para que lo lean y vean ejemplos.

otras funciones son como trim, htmlentities, cada cual son diferente, con distintos funcionamientos, otra que me gusta utilizar es str_replace donde yo le puedo indicar que escapar, pero ahora veremos un ejemplo corto.

si tenemos esto:

$scape = array('<','script','%20%','--','\\','>');
str_replace($scape, ' ', $_POST['item']);

bien esto lo que hace es que str_replace recibe 3 parámetros el primero es el escape que va a recibir que esta en la variable $scape que contiene un array donde le dije que si hay algún carácter raro que viene por post que es el 3 parámetro, lo replace por nada que es el segundo parámetro.
str_replace recibe: el escape, la sustitución, y el string a escapar.

con esto regresamos a nuestro código, si recién estas viendo este post mira la entrada anterior a qui el link donde teníamos esto en nuestro código.

$name = $_POST['name'];
$email = $_POST['email'];
$password = $_POST['password'];

le añadiremos la función de addslashes para escapar caracteres y mantener la seguridad de la aplicación.

$name = addslashes($_POST['name']);
$email = addslashes($_POST['email']);
$password = addslashes($_POST['password']);

o también puede crear una función donde puedan utilizar str_replace asi:

function escape($param) {
     $scape = array('<','script','%20%','--','\\','>');
      return str_replace($scape, ' ', $param);
}

$name = escape($_POST['name']);
$email = escape($_POST['email']);
$password = escape($_POST['password']);

esto le retorna el valor con los caracteres a escapados donde se le especifico en la variable scape si quieres añadir mas carácter de escape recuerda hacerlo en la variable scape dentro del array separado por comas. 


esto es todo nos veremos en el siguiente tutorial donde veremos las sesiones asta pronto.

viernes, 7 de agosto de 2015

comenzamos con el curso de php donde veremos hoy como hacer un registro de usuario con php y mysql, pero primera haremos la maquetacion del html algo sencillo donde crearemos varios input donde contendremos campos como nombre, email y el password.

bien lo primero que tienen que tener para correr con el servidor de php es el programa de xampp que es mas conocido puedes descargar tambien wampserver, tambien tiene una opcion mucha mas lijera que es un servidor portable como lo es uniform server que no pesa mucho apenas unos 160 mb mas o menos xampp pesa 1.28 gb pueden descargarse cualquiera de los 2 es muy facil la instalacion.

después de la instalación de nuestro server en caso de tener instalado xampp se irán a disco local c > xampp > htdocs y crean una carpeta donde contendremos el proyecto, pueden llamarlo como quieran yo la llamare registro y si tienen se han descargado uniform server le dejara un archivo donde tendrán que descomprimirlo donde quieran una vez descomprimido les dejara una carpeta llamada
UniServerZ entran y donde dice www hay tendrán que crear el proyecto.

una vez creada su carpeta abren su editor favorito yo utilizare atom

  • Seguidores

  • Blogroll

  • Acerca de

    este blog fue creado con un fin de la personas aprendan el manejo de la programación, aprenda sus ventajas y desventajas y aprender los recursos que hay para que una pagina web sea dinámica