miércoles, 5 de diciembre de 2018

Php 25. Acceso usuarios. Control acceso

En este video terminamos el proyecto, controlando el acceso del usuario a la web y manejando sesiones con Php.



index.php

<?php
require_once("php/limpiaTexto.php");
require_once("php/baseDatos.php");
?>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="initial-scale=1,width=device-width">
<meta name="keywords" content="acceso,usuarios,php,mysqli">
<link rel="stylesheet" href="css/estilos.css" type="text/css">
<title>Acceso Usuarios</title>
</head>
<body>
<header id="cabecera">
<nav id="navegacion">
<ul>
<li><a href="#">Inicio</a></li>
<li><a href="#">Acerca de</a></li>
</ul>
</nav>
</header>
<div id="contenido">
<section>
<article>
<div id="formulario">
<h1>Acceso usuarios</h1>
<?php
if(isset($_POST['nombre'])&& isset($_POST['clave'])){
$nombre=limpiaTexto($_POST['nombre']);
$clave=limpiaTexto($_POST['clave']);
$conexion=conectarBase();
$entra=accesoUsuario($conexion,$nombre,$clave);
if($entra){
if(session_status()!== PHP_SESSION_ACTIVE){
session_start();}
$_SESSION["autenticado"]="si";
$_SESSION["usuario"]=$nombre;
echo "<script>alert('Bienvenido.');
window.location.href=\"dentroUsuario.php\"</script>";
}else{
echo"<script>alert('Error, intentalo de nuevo.');
window.location.href=\"index.php\"</script>";
}
} else {?>
<form autocomplete="off" action="index.php" method="post" name="formulario">
<input type="text" name="nombre" required placeholder="Nombre"/><br/>
<input type="password" name="clave" required placeholder="Clave"/><br/>
<input type="submit" value="Entrar" class="boton"/>
</form>
</div>
<?php
}
?>
</article>
</section>
<aside></aside>
<footer id="pie">
<p>@Copyright ------</p>
</footer>
</div>
</body>
</html>
BaseDatos.php


<?php
require_once("codifica.php");
function conectarBase(){
$root="root";
$clave="";
$localhost="localhost";
$base="acceso";
$tabla="usuarios";
$mysqli=new mysqli($localhost,$root,$clave,$base);
return $mysqli;
}
//pruebas
$conectado=conectarBase();
if($conectado){
echo "conexion correcta";
}
function altaUsuario($mysqli,$nombre,$clave){
$key=codificar($clave);
$mysqli->query("INSERT INTO usuarios (id,nombre,clave) VALUES (NULL,'".$nombre."','".$key."')");
}
function accesoUsuario($conexion,$nombre,$clave){
$key=codificar($clave);
$consulta="SELECT * FROM usuarios WHERE nombre='".$nombre."'";
$resultado=$conexion->query($consulta);
if($resultado){
while(($columna=$resultado->fetch_assoc())){
$nombreTabla=$columna['nombre'];
$claveTabla=$columna['clave'];
if($nombre==$nombreTabla){
$entra=compara($claveTabla,$key);
if ($entra){
return true;
} else {
return false;
}
}
}
$resultado->free();
$conexion->close();
}else{
echo "sin resultados";
}
}
?>



sábado, 1 de diciembre de 2018

Php 24. Acceso Usuarios, conexion BD

En este video vemos como preparar las primeras funciones PHP, para conectar a la base de datos, usamos una funcion para poder guardar la clave codificada.



<?php
function limpiaTexto($texto){
$textoLimpio=strip_tags($texto);
$textoLimpio=trim($textoLimpio);
return $textoLimpio;
}
?>

<?php
function codificar($texto){
$mas="dkjfdkajKKKjd";
$textoCodificado=md5($texto.$mas);
return $textoCodificado;
}
function compara($textoBaseDatos,$textoUsuario){
if($textoBaseDatos==$textoUsuario){
return True;
}
else{
return False;
}
}
?>

<?php
require_once("codifica.php");
function conectarBase(){
$root="root";
$clave="";
$localhost="localhost";
$base="acceso";
$tabla="usuarios";
$mysqli=new mysqli($localhost,$root,$clave,$base);
return $mysqli;
}
//pruebas
$conectado=conectarBase();
if($conectado){
echo "conexion correcta";
}
?>

Php 23. Acceso Usuarios


En este video creamos la plantilla en html que nos servira para preparar la entrada de usuarios con php y mysql.
A esta plantilla le damos formato con el archivo css.
El siguiente video tendra codigo php para comenzar el proyecto.




Index

<head> <meta charset="UTF-8"> <meta name="viewport" content="initial-scale=1,width=device-width"> <meta name="keywords" content="acceso,usuarios,php,mysqli"> <link rel="stylesheet" href="css/estilos.css" type="text/css"> <title>Acceso Usuarios</title> </head> <body> <header id="cabecera"> <nav id="navegacion"> <ul> <li><a href="#">Inicio</a></li> <li><a href="#">Acerca de</a></li> </ul> </nav> </header> <div id="contenido"> <section> <article> <div id="formulario"> <h1>Acceso usuarios</h1> <form autocomplete="off" action="index.php" method="post" name="formulario"> <input type="text" name="nombre" required placeholder="Nombre"/><br/> <input type="password" name="clave" required placeholder="Clave"/><br/> <input type="submit" value="Entrar" class="boton"/> </form> </div> </article> </section> <aside></aside> <footer id="pie"> <p>@Copyright ------</p> </footer> </div> </body> </html>



Estilos Css
*{ margin:0 auto; color: white; padding:2px; font-family:sans-serif,Helvetica,Arial; text-decoration:none; } header,nav,section,article,aside,footer{ display:block; background:linear-gradient(200deg,orange,blue); } #cabecera{ height:auto; width:100%; margin-bottom:5px; padding:5px; } #navegacion{ padding:5px; margin:2px; text-align:center; } #navegacion li{ display:inline-block; text-align:center; padding:2px; margin:2px; } #navegacion li a{ background-color:orange; color:blue; text-decoration:none; padding:10px; } #navegacion li a:hover{ background-color:yellow; color:red; } #formulario{ display:block; text-align:center; margin:10px; padding:5px; } input[type="text"],input[type="password"]{ border-radius:5em; color:blue; padding:2px; margin:5px; } .boton{ border-radius:5em; color:blue; padding:2px; margin:5px; width:120px; } #pie{ margin-top:5px; padding:5px; font-size:0.5em; }

Enlace video instalacion WampServer

miércoles, 27 de julio de 2016

Php - 22. Formulario de contacto

Ejemplo de codigo para crear un formulario de contacto con php que nos envie un email a la direccion de email que indiquemos en el codigo.

<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-secale=1.0">
<meta name="author" content="Jose Ojeda (ticoticotaa)">
<meta name="keywords" content="formulario contacto">
<meta name="description" content="mi descripcion del documento">
<title>Formulario contacto - Ticoticotaa</title>
</head>
<body>
<header>
<h1>FORMULARIO DE CONTACTO</h1>
<nav>
<ul>
<li><a href="index.php">Incio</a></li>
<li><a href="acercade.html">Acerca de</a></li>
<li><a href="contacto.php">Contacto</a></li>
</ul>
</nav>
</header>
<section>
<article>
<div id="contacto">
<h1>Contacto</h1>
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
<label>Nombre</label>
<input name="nombre" type="text"/><br>
<label>Email</label>
<input name="email" type="text"/><br>
<label>Mensaje</label>
<textarea name="mensaje" rows="10" cols="50"></textarea><br>
<input type="submit" value="Enviar"/>
<input type="reset" value="Borrar"/>
</form>

<?php
if ((!isset($_POST['email']))&&(!isset($_POST['nombre']))){
   
}else{
    $nombre=htmlentities($_POST['nombre']);
    $email=htmlentities($_POST['email']);
    $mensajeOrg=htmlentities($_POST['mensaje']);
    $destino="ticoticotaa@gmail.com";
   
    $mensaje="Mensaje del formulario de Ticoticotaa";
    $mensaje.="\nNombre: ".$nombre;
    $mensaje.="\nEmail: ".$email;
    $mensaje.="\nMensaje: ".$mensajeOrg;
   
    $header="FROM: $email";
    $asunto="Ticoticotaa, mensaje de  ".$email;
    @mail($destino,$asunto,$mensaje,$header);
    if(($nombre=="")&&($email=="")){
        echo"<h1>Rellena el formulario</h1>";
    }else {
        echo"<h1>Mensaje enviado</h1>";
    }
    $nombre="";
    $email="";
}
?>

</div>
</article>
<aside>
<h1>Redes sociales</h1>
</aside>
</section>
<footer></footer></body></html>
En rojo pongo el codigo php donde procesamos las variables obtenidas del formulario y las preparamos para incluirlas en la funcion @mail de php que realiza el envio del email.
En verde pongo el codigo html donde se prepara el formulario, indicando que se llama a la misma pagina con SELF y mediante codigo php se evalua si ya se han enviado las variables del formulario o no.
El codigo es sencillo, si teneis duda no dudeis en consultarme.
Os indico web donde tengo realizado una pagina de contacto similar en Ticoticotaa.
Tambien os pongo video explicando este codigo aqui:


Espero sea util. Gracias.

viernes, 8 de julio de 2016

lunes, 27 de junio de 2016

Video Archivo Externo Conexion MySql

En este video muestro como crear un archivo php con la configuracion para poder conectar a una base de datos mysql.
Espero os sea util, gracias.


Video Modificar datos en MySql

En este video realizamos la conexion y la modificacion de datos desde una pagina Php a MySql.
Espero os sea util. Gracias.



domingo, 22 de mayo de 2016

Php - 21. Conectar e insertar datos en MySql

Para conectar e insertar datos en MySql desde Php, crearemos 2 archivos, en el primero crearemos el formulario que introducira los datos en MySql, en el segundo ejecutaremos la conexion a la base de datos y recuperaremos los datos del primer archivo para insertarlos en MySql.
El codigo del primer archivo es:

<!DOCTYPE html>
<head>
<title>Formulario inserta datos en Mysql desde Php (por Ticoticotaa)</title>
</head>
<body>
<form action="bdFormularioClientesInsert.php" method="post" name="formulario">
<label>Nombre</label><input type="text" name="nombre"/><br>
<label>Email</label><input type="text" name="email"/><br>
<label>Clave</label><input type="text" name="clave"/><br>
<input type="submit" value="Enviar datos"/>
</body>
</html>
Como vemos en el codigo, creamos un formulario que envia los datos al archivo llamado "bdFormularioClientesInsert.php"
El codigo del segundo archivo es:

 <!DOCTYPE html>
<head>
<title>Inserta datos en Mysql desde Php (por Ticoticotaa)</title>
</head>
<body>
<?php
//datos conexion
$root="usuario";
$clave="pruebas";
$localhost="localhost";
$base="pruebas";
$tabla="clientes";
//conexion
$conexion=mysqli_connect($localhost,$root,$clave,$base) or die ("Problemas al conectar");
//variables obtenidas
$nombre="$_POST[nombre]";
$email="$_POST[email]";
$clave="$_POST[clave]";
//insertar datos en tabla
mysqli_query($conexion,"insert into $tabla(nombre,email,clave) values ('$nombre','$email','$clave')");
mysqli_close($conexion);
echo "<p>El cliente fue dado de alta</p>";
?>
</body>
</html>
Creamos primero los datos de conexion, indicando el usuario y clave con permiso para acceder a MySql, junto con el servidor de acceso (en este caso localhost) y la base de datos a la que se conecta.
Dentro de la base de datos indicamos la tabla a la que conectaremos para operar con ella.
Despues ejecutamos el codigo SQL de insertar, indicando los datos que insertaremos.
Por ultimo no olvidar nunca cerrar la conexion a la base de datos.
Espero sea util. Gracias.
Todo esto lo encontrareis tambien explicado mediante video de Youtube.

Video Conectar e insertar datos en MySql

En este video realizamos la conexion e introduciremos datos desde una pagina Php a MySql.
Espero os sea util. Gracias.


Video Preparacion entorno con WampServer

En este video preparamos nuestro Pc para poder simular un servidor que ejecute php y tenga la base de datos MySql.
En los proximos videos conectaremos desde codigo Php a la base de datos MySql.
Espero sea util.

Video Formularion con Php

Video con ejemplo de como realizar un formulario que envie datos de una pagina php o html a otra y que esta ultima recupere dichos datos.
Espero sea util. Gracias.


Video Funciones con Php

En este video explico mediante un ejemplo como se realizan las funciones con Php.
Espero os sea util. Gracias.

Video Estructura Switch

Video explicando ejemplo de estructura Switch con Php.
Espero os sea util.
Gracias.

Video Estructura Repeticion For

En este video se muestra ejemplo de estructura de repeticon For.
Espero os sea util. Gracias,


Video Condicional While

Estructura condicional While con Php, explicacion mediante Video Youtube.
Espero sea util. Gracias.


martes, 26 de abril de 2016

Php - 20. Sesiones y contador

En esta entrada os pongo un ejemplo de codigo con el que controlamos el inicio de sesion, que en este caso nos servira para incrementar el contador de visitas solo si es la primera vez que entra el usuario, si recarga la pagina no volvera a incrementar el contador, a menos que borre las sesiones desde el menu de herramientas del navegador o cierre el navegador.
Para ello dispondremos de 2 archivos, el primero con las funciones que usaremos y el siguiente el que se ejecuta al abrir la web y realiza las llamadas al de funciones.
El archivo de funciones lo llamaremos funciones.php y es asi:

<?php
function iniciasesion(){
    session_start();
    //echo "sesion iniciada";
}
function compruebasesion(){
    if(isset($_SESSION['sesion'])){
        //echo "sesion ya iniciada";
        $suma=0;
    }else {
        //echo "sesion no iniciada";
        $suma=1;
    }
    return $suma;
}
function contador($suma){
    $archivo="contador.txt";
    $f=fopen($archivo,"r");
    $contador=fgets($f,26);
    fclose($f);
    if($suma!=0){
        $contador++;
        $f=fopen($archivo,"w+");
        fwrite($f,$contador,26);
        fclose($f);
       
    } else {
        $contador=$contador;
    }
    return ($contador);
}
?>
En este archivo incluimos las llamadas a las funciones que realizaremos desde el archivo que inicia la web.
He dejado algunos comentarior "//" si se quitan, se imprimiran mensajes en pantalla comunicando si la sesion esta iniciada o no, mediante el comando "echo".
Con "if(isset($_SESSION['sesion'])" se comprueba si la variable sesion existe dentro de la SESSION para ver si ya esta iniciada.
El archivo web lo llamaremos index.php y esta es su composicion:
<!DOCTYPE html>
<?php
include("funciones.php");
iniciasesion();
$suma=0;
$suma=compruebasesion();
if($suma==1){
    $_SESSION['sesion']=1;
}  
?>

<html lang="es">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-secale=1.0">
<meta name="author" content="Jose Ojeda (ticoticotaa)">
<meta name="keywords" content="html,manuales,aplicaciones">
<meta name="description" content="mi descripcion del documento">
<link href="css/estilo.css" rel="stylesheet" type="text/css">
<title>Mi web por Ticoticotaa</title>
</head>
<body>
<header>
<h1>TITULO DE MI WEB</h1>
<nav>
<ul>
<li><a href="index.html">Incio</a></li>
<li><a href="acercade.html">Acerca de</a></li>
<li><a href="contacto.html">Contacto</a></li>
</ul>
</nav>
</header>
<section>
<article>
<h1>Encabezado principal</h1>
<p>testojdljdlajldsjaljdslajlfdjsaljlsdjlfjalsdjljdkl</p>
</article>
<aside>
<h1>Redes sociales</h1>
</aside>
</section>
<footer>
<div id="contador">
<h3>
<?php
$contador=contador($suma);
echo "Eres el visitante numero ".$contador;
?>

</h3></div>
</footer></body></html>
El inicio de sesion es lo primero que hay que ejecutar, antes que cualquier otro elemento de la web, despues se comprueba si ya esta iniciada la sesion con el nombre sesion, en caso de que no lo este le damos su valor, obtenemos tambien el valor para $suma con el fin de incrementar o no el contador.
He utilizado codigo ya explicado en anteriores entradas, con la salvedad de "include" que nos sirve para tener por un lado el archivo con las funciones y poder incluirlo en el otro para poder realizar las llamadas a las funciones.
Espero os sea util.