miércoles, 31 de mayo de 2017

Registro de nuevos usuarios

En este ejercicio veremos como registrar nuevos usuarios en una tabla mysql y php.  Para esto escribiremos un primer archivo (formulario) y luego el segundo archivo (proceso o inserción de datos).

Primer archivo: nuevo_usuario.php

<html>
<head>
<title>Nuevo Usuario</title>
<meta http-equiv="Content-Language" content="es" />
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="description" content="Inicio de Sesión">
</head>
<body>
<div align="center">
<form  action="registro.php" method="post" align="center">
<table border="0" width="300" align="center" style="font-family: 'Century Gothic'; font-size: 1.2em; color: #000">
<tr>
<td align="center">
<br>
E m a i l<br>
<input type=text name=usuario size=30 required style="font-family: 'Century Gothic'; font-size: 1.2em; color: #01DF01">
<br><br>
P a s s w o r d<br>
<input type="password" size=30 name="password" required style="font-family: 'Century Gothic'; font-size: 1.2em; color: #B45F04">
<br><br>
C o n f i r m a r   P a s s w o r d<br>
<input type="password" size=30 name="confirma" required style="font-family: 'Century Gothic'; font-size: 1.2em; color: #B45F04">
<br><br>
<input type="submit" value="Comenzar" /><br><br>
</td>
</tr>
</table>
</form>
</div>
</body>
</html>

Segundo archivo:  registro.php

<?
$email = $_POST['email'];
$password = $_POST['password'];
$confirma = $_POST['confirma'];

if($password != $confirma) {
?>
<script type="text/javascript">
window.alert('ERROR!!! Los datos de PASSWORD no coinciden, vuelve a intentarlo')
function goBack() {
window.history.back()
}
setTimeout ("goBack()", 500);
</script>
<?
exit;
}

@$db = mysql_connect("localhost", "root", "123456");

mysql_select_db("abaco");

$tabla =  mysql_list_tables("abaco");
$num_tabla = mysql_num_rows($tabla);

$existe = "NO";

for ($i=0; $i<$num_tabla; $i++) {
if (mysql_tablename($tabla, $i) == "usuarios_lima") {
$existe = "SI" ;
}
}

if ($existe == "NO") {
mysql_query("CREATE TABLE usuarios_lima
(idusuario INT(3) NOT NULL
AUTO_INCREMENT PRIMARY KEY,
email VARCHAR(100),
password VARCHAR(10),
UNIQUE (idusuario))");

$insertar = mysql_query("INSERT INTO usuarios_lima
(email, password)
VALUES ('$email', '$password')");
} else {

$consulta = mysql_query("SELECT * FROM usuarios_lima WHERE email = '$email'");

if(!$consulta) {
$insertar = mysql_query("INSERT INTO usuarios_lima
(email, password)
VALUES ('$email', '$password')");
?>
<script type="text/javascript">
window.alert('Tu registro ha sido exitoso!')
function redireccionar(){
location.href="login.php";
}
setTimeout ("redireccionar()", 3000);
</script>
<?
} else {
?>
<script type="text/javascript">
window.alert('ERROR!!! El usuario que intentas registrar ya existe, vuelve a intentarlo')
function goBack() {
window.history.back()
}
setTimeout ("goBack()", 500);
</script>
<?
exit;
}
}

Espero que te sirva mucho.


Uso de session_start() en PHP

Para este ejercicio escribiremos tres archivos, el primero de nombre login.php, el segundo login2.php y el tercero admin.php.

Primer Archivo login.php

<html>
<head>
<title>Inicio de Sesión</title>
<meta http-equiv="Content-Language" content="es" />
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="description" content="Inicio de Sesión">
</head>
<body bgcolor="#E6E6FA">
<div align="center">
<form action="login2.php" method="post" align="center">
<table border="0" width="300" align="center" style="font-family: 'Century Gothic'; font-size: 1.2em; color: #FFF">
<tr>
<td align="center">
<br>
U s u a r i o<br>
<input type=text name=usuario size=30 required style="font-family: 'Century Gothic'; font-size: 1.2em; color: #01DF01">
<br><br>
P a s s w o r d<br>
<input type="password" size=30 name="password" required style="font-family: 'Century Gothic'; font-size: 1.2em; color: #B45F04">
<br><br>
<input type="submit" value="Comenzar" /><br><br>
</td>
</tr>
</table>
</form>
</div>
</body>
</html>

Segundo archivo:  login2.php

<?
session_start();
function formLogin() {
    }

if($_POST==NULL) {

formLogin();

}else{
$user = $_POST['usuario'];
$password = $_POST['password'];
if($user != "root") {
?>
<script type="text/javascript">
window.alert('ERROR!!! El usuario no es conocido, vuelve a intentarlo.')
function goBack() {
window.history.back()
}
setTimeout ("goBack()", 500);
</script>
<?
formLogin ();
}else{
if($password == "123456") {
$_SESSION['estado']="activo";
$_SESSION['usuario']="$user";
echo "<br><br><br><br><br><br><h2 style='color: #60F; text-align: center;'>Inicio de sesi&oacute;n exitoso, Bienvenido<br><span style='color: #F60; font-size: 44px;'> "."$user"."</span></h2>";
?>
<script type="text/javascript">
function redireccionar(){
location.href="admin.php";
}
setTimeout ("redireccionar()", 3000);
</script>
<?
} else {
?>
<script type="text/javascript">
window.alert('ERROR!!! El password es incorrecto,  vuelve a intentarlo')
function goBack() {
window.history.back()
}
setTimeout ("goBack()", 500);
</script>
<?
formLogin();
}
}
}
?>

Tercer archivo (este es el archivo protegido) admin.php

<?
session_start();
if($_SESSION['estado']=="activo") {
?>
<html>
<head>
<title>Inicio de Sesión</title>
<meta http-equiv="Content-Language" content="es" />
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="description" content="Inicio de Sesión">
</head>
<body>
<table border=0 width=1100 align=center cellspacing=0 cellpadding=0>
<tr>
<td>
<table border=0 align=center width=100%>
<tr height=100>
<td align=center valign=midle style="font-family: 'Century Gothic'; font-size: 2em; color: #f60; text-shadow: 1px 1px 100px #000;">
Bienvenido a mi sitio seb
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
<?
} else {
?>
<script type="text/javascript">
window.alert('ERROR!!! Debes ser un usuario registrado para poder administrar este sitio web.')
function redireccionar(){
location.href="login.php";
}
setTimeout ("redireccionar()", 3000);
</script>
<?
}
?>

Cada uno de estos archivos son pequeños prototipos que puedes usar para aplicarlos a sus sistemas, espero que te sirvan mucho.


viernes, 5 de mayo de 2017

Consultas de datos MySQL enviadas a Excel

Para este ejercicio usaremos una tabla de datos existente, y el resultado lo veremos en Excel.  Para poder hacer esto vamos a generar dos archivos, uno para hace la búsqueda de los datos que deseamos y otro para enviarlos a Excel.

Archivo No. 1

Nombre del archivo:  buscar.php

<html>
<head>
<title>Tareas - La plataforma del profe. Lima</title>
<meta http-equiv="Content-Language" content="es" />
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8" /> 
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="description" content="Tareas">
</head>
<body>
<form action="detalleexcel.php" method='post'>
<table border=0 align=center width=50%>
<tr>
<td style="font-family: 'Century Gothic'; font-size: 1.1em;" align=center>
<br>
Buscar comentario por:
<select name=tipo style="font-family: 'Century Gothic'; font-size: 1.1em; color: #585858">
<option value=Nombre>Nombre</option>
<option value=Telefono>Teléfono</option>
</select><br>
Término para buscar:
<input type="text" name="termino" size="60">
<input type=submit value=Buscar style="font-family: 'Century Gothic'; font-size: 1.1em;">
</td>
</tr>
</table>
</form>
</body>
</html>

Archivo No. 2

Nombre del archivo:  detalleexcel.php

<?
$tipo = $_POST['tipo'];
$termino = $_POST['termino'];


//Configuramos el encabezado del archivo nuevo de Excel
$return = '';

$return .= "<H1>Colegio IPTCE</H1>
<span style='color: red;'>IPTCE, como un segundo hogar!</span>
<br><br>
<h3 style='color: #212121;'>REPORTE DE COMENTARIOS
</h3>
<div align='center' style='font-family: tahoma; font-size: 12px;'>";

//Usamos la función require para conectar con el servidor

require("conectar.php");

//Hacemos la consulta condicionada a tipo y término

$consultar = mysql_query("SELECT * FROM nombre_tabla WHERE $tipo LIKE '%".$termino."%'");
$respuesta = mysql_query($consultar);

//Componemos el encabezado de la tabla

@$no_respuestas = mysql_num_rows($respuesta);
@$return .= "<table border=1 width=100%><tr align=center class=tr valign=buttom>";
@$return .= "<td>No.</td><td>Nombre</td><td>E-mail</td><td>Asunto</td><td>Comentario</td></tr>";

//Creamos un ciclo for mostrar todos los datos de la tabla

for($i=1; $i<=$no_respuestas; $i++) {
$reg = mysql_fetch_array($respuesta);

$idcomentario = $reg['IdComentario'];
$nombre = $reg['Nombre'];
$email = $reg['Email'];
$asunto = $reg['Asunto'];
$comentario = $reg['Comentario'];

@$var1 = "<tr style='font-size: 12px;'><td align=center>$idcomentario</td><td>$nombre</td><td>$email</td><td>$asunto</td><td align=right>$comentario</td></tr>";
@$return .= $var1;
}

// Agregamos a la variable $return (que ya contiene el encabezado del nuevo archivo) todos los datos que consultamos en el ciclo anterior

@$return .= $var2;
@$return .= $var3;
@$return .= "</table>";

//Agregue esta línea para resolver el problema de la tildes en Excel, funciona muy bien.

@$return = utf8_decode($return);

//Enviamos el archivo a excel

header("Content-type: application/vnd-ms-excel; charset=utf-8");
header("Content-Disposition: attachment; filename=comentarios.xls");

echo $return;
?>

Espero que esta publicación le ayude mucho.  Hasta la próxima.