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

jueves, 16 de marzo de 2017

Variables de Sesión en PHP

En este post compartiré un código que encontré buscando en mis viejos archivos y proyectos, es un código para obtener variables de sesión en un login realizado en PHP y Mysql.

Primero empezaremos con el formulario para el login, y definiremos los name de los input como email y password.


<form action="login.php" method="POST">
<input type="text" name="email">
<Input type="pass" name="password">
<input type="submit" name="login" value="Iniciar Sesión" />

Ahora en el archivo login.php al cual se va a dirigir y llevar nuestros datos vamos a poner el siguiente código


<?php
   //Start session
   session_start();
   
   $errmsg_arr = array();
   
   //Validation error flag
   $errflag = false;
   
Aqui incluimos nuestro archivo de conexión a base de datos
  require_once('../conexion.php'); 
   
Aquí definimos las variables $email y $password con los datos capturados en los inputs

   $email = $_POST['email'];   
   $password = $_POST['password'];
   
      
   //If there are input validations, redirect back to the login form
   if($errflag) {
      $_SESSION['ERRMSG_ARR'] = $errmsg_arr;
      session_write_close();
      header("location: index.php");
      exit();
   }
   
En este apartado seleccionamos de nuestra base de datos llamada users los usuarios que coincidan con que el email y el password sean correctos
   //Create query
   $qry="SELECT * FROM users WHERE email='$email' AND password='$password'";
   $result=mysqli_query($link,$qry);
   
   //Check whether the query was successful or not
   if($result) {
      if(mysqli_num_rows($result) == 1) {
         //Login Successful
         session_regenerate_id();
         $member = mysqli_fetch_assoc($result);            
         
En esta parte del código llamamos a nuestros campos creados en la base de datos, al final del post se puede ver la base de datos, en este caso hemos llamado a los campos: id, nombre, ciudad y email, creando variables para cada uno de ellos tales como $_SESSION['ID']....etc, estas pueden ser llamadas a nuestro gusto.

         $_SESSION['ID'] = $member['id'];
         $_SESSION['NAME'] = $member['nombre'];        
         $_SESSION['CIUDAD'] = $member['ciudad'];
         $_SESSION['EMAIL'] = $member['email'];
           
            
         session_write_close();
Si esta bien nos dirigimos al perfil
         header("location: perfil.php");
         exit();
      }else {
         //Login failed
Si esta mal nos dirigimos a otro sitio donde nos pida verificar los datos
         header("location: datos_mal.php");
         exit();
      }
   }else {
      die("Query failed");
   }

?>










sábado, 11 de febrero de 2017

Cambiar PATH php en MAC



Al instalar xampp en Mac que incluye versión 7.1 de php, nos encontramos con que revisamos la versión y nos dice 5.x.x o alguna otra versión anterior que tengamos, así ya tengamos la nueva versión instalada.

Para comprobar la versión de PHP ubicamos php en nuestro ordenador con el comando

> which php

después solicitamos la versión

> php -v

Usamos el comando

> vim ~/.bash_profile

Dentro escribimos

> export PATH="/Applictions/XAMPP/xamppfiles/bin:$PATH"

A continuación presionamos ESC y se nos habilita al final de la pantalla para escribir y escribimos :wq para salir y guardar


Ahora al verificar la versión de php con

> php -v

ya debe aparecer la nueva versión 7.1



Enviar Correo desde php


Para enviar un correo desde php a una cuenta de Gmail usaremos 3 archivos básicos

1. formulario 
2. enviarmail
3.gracias

primero definimos el formulario de envío, el archivo puede ser en html o en php

<html>
<body>
<form action="enviarmail.php" method="POST">
<h2>contacto</h2>
<input type="text" name="nombre" placeholder="nombre">
<input type="text" name="correo" placeholder="correo">
<input type="text" name="telefono" placeholder="telefono">
<textarea name="mensaje" placeholder="mensaje aqui"></textarea>
<input type="submit" value="ENVIAR" id="boton">
</body>
</html>


Con form action="enviarmail.php" lo que hacemos en enviar toda esa información al archivo enviarmail.php, con el metodo POST, que servirá para capturar los campos definidos, ejemplo (name="nombre", name="correo")

<?php

$destino = "correo@gmail.com";
$nombre = $_POST['nombre'];
$nombre = $_POST['apellido'];
$correo = $_POST['correo'];
$telefono = $_POST['telefono'];
$mensaje = $_POST['mensaje'];
$contenido = "Nombre: ".$nombre. "\napellido: ".$apellido. "\nCorreo: ".$correo."\nTelefono: ".$telefono."\nMensaje: ".$mensaje;

mail($destino,"Contacto",$contenido);
header("Location:gracias.html");  

?>

Por ultimo, este archivo nos redirige a gracias.html, donde simplemente se debe poner el mensaje de "gracias el mensaje fue enviado" o cualquier mensaje que confirme que el correo fue enviado

Recordar: Para que el mensaje llegue sin problemas, la cuenta debe admitir el acceso de cuentas menos seguras

Opción 1: Actualizar a una app más segura que use las medidas de seguridad más recientes. Todos los productos de Google, como Gmail, usan medidas de seguridad actualizadas

Opción 2: Cambiar la configuración para permitir que apps menos seguras accedan a la cuenta. No recomendamos esta opción, ya que podría facilitar el acceso de terceros a la cuenta. Si, de todos modos, quieres otorgar el acceso, sigue estos pasos:


Los pasos oficiales están en:




martes, 31 de mayo de 2016

Pasar varias variables con GET en php


Para pasar una sola variable desde un archivo php a otro se puede aplicar el siguiente ejemplo.

<!DOCTYPE HTML>
<html>
<head>
    <meta charset="UTF-8">
    <title>Form</title>
</head>
<body>
    <form action="get.php" method="get">
        <input type="text" name="firstname" /><br/>
        <input type="text" name="lastname" /><br/>
        <input type="submit" value="send" /> 
    </form>
</body>
</html>
<?php
if(isset($_GET['firstname']) && isset($_GET['lastname']))
{
    echo $_GET['firstname'];
    echo "<br />";
    echo $_GET['lastname'];
}?>


Otra manera de pasar una o mas variables sin usar formularios es la siguiente:

a) pagina de envió


<html>
  <head>
     <title>Titulo pagina envio</title> 
  </head>
<body>
    <h1>Envío de variables a otra página.</h1>
    <?php  
    $a="Hola, ";
    $b="bienvenido a mi página";
    echo "Enviar las siguientes variables:<br/>";
    echo "\$var1 = $var1 <br/>";
    echo "\$var2 = $var2 <br/>";
    ?>
   //se pulsa este boton para enviar las variables
   <?php echo "<a href='destino.php?a=$a&b=$b'>Enviar variables</a>"; ?>
</body>
</html>


b) pagina de destino




<html>
<head>
<title>Titulo pagina de destino</title> 
</head>
<body>
<h1>Al abrir esta página se han pasado las siguientes variables:</h1>
<?php  
$var1=$_GET['var1'];
$var2=$_GET['var2'];
echo "variable1  $var1";
echo "variable2  $var2";
?>
</body>
</html>

martes, 24 de mayo de 2016

Error al iniciar wampserver (could not execute menu item internal error)

cuando aparece este error pueden haber varias soluciones, la primera personalmente no me funcionó pero existen casos en que si.

Al intentar iniciar o reiniciar wampserver aparece este error



1- un posible conflicto tiene que ver con skype, si se trabaja sobre windows y se tiene instalado skype y wampserver es posible que haya un conflicto debido al puerto, ya que ambos usan el puerto 80

para solucionar esto debemos seguir los siguientes pasos:



Abrimos el archivo httpd.conf --> buscamos la linea donde dice listen y cambiamos el 80 por 8080

después reiniciamos el servidor, al entrar a localhost/ debe entrarnos a la plataforma de wampserver



2- Para esta solución seguimos lo siguientes pasos

   - Windows(tecla inicio) + R 
   - services.msc


Buscamos el servicio llamado wampapache


Click en iniciar, por lo general debe estar detenido y a esto se debe el error, si no click derecho en reiniciar.