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.

lunes, 9 de junio de 2014

ENVIAR DATOS DE FORMULARIO A CORREO ELECTRÓNICO

ENVIANDO DATOS DE MI FORMULARIO HTML A CORREO ELECTRÓNICO 

Enviar los datos de un formulario a un correo electrónico no debe ser complicado y en esta ocasión quiero dejar un código, que además de enviar los datos, le da un formato para que la información sea más atractiva para el usuario que los recibe.

El archivo puede tener cualquier nombre, pero la extensión debe ser PHP.

<?
// En primer lugar creamos el formuario

if(!$_POST) {
?>
<br><br><br>
<form action="<? $_POST ?>" method=post>
<table border=0 width=50% align=center>
<tr>
<td colspan=2>
<h2 align=center>
Deja tu consulta
</h2>
</td>
</tr>
<tr>
<td align=right>
Nombre:
</td>
<td>
<input type=text name=nombre required>
</td>
</tr>
<tr>
<td align=right>
Email:
</td>
<td>
<input type=email name=email required>
</td>
</tr>
<tr>
<td align=right>
Asunto:
</td>
<td>
<input type=text name=asunto required>
</td>
</tr>
<tr>
<td align=right valign=top>
Consulta:
</td>
<td>
<textarea name=consulta cols=32 rows=5></textarea>
</td>
</tr>
<tr>
<td colspan=2 align=center>
<input type=submit value=Enviar>
</td>
</tr>
</table>
</form>
<?
} else {
$nombre = $_POST['nombre'];
$email = $_POST['email'];
$asunto = $_POST['asunto'];
$consulta = $_POST['consulta'];

$uniqueid= uniqid('np');

//indicamos las cabeceras del correo
$headers = "MIME-Version: 1.0\r\n";
$headers .= "From: $email \r\n";
$headers .= "Subject: Test mail\r\n";

//Es importante indicar que el Content-Type
//es multipart/alternative de esta manera existirá un contenido alternativo

$headers .= "Content-Type: multipart/alternative;boundary=" . $uniqueid. "\r\n";
 
$message = "";
 
$message .= "\r\n\r\n--" . $uniqueid. "\r\n";
$message .= "Content-type: text/plain;charset=utf-8\r\n\r\n";
$message .= "E-mail en Texto Plano sin formato.";
 

// Este es el código que contiene la información y que además tiene formato

$message .= "\r\n\r\n--" . $uniqueid. "\r\n";
$message .= "Content-type: text/html;charset=utf-8\r\n\r\n";
$message .= "<div style='background: #000000; border-radius: 2em; box-shadow: 5px 5px 10px #000000; color: #ffffff; height: auto; padding: 20px; position: relative; width: 90%;'";
$message .= "<table border=0 width=auto>";
$message .= "<tr><td><b>Nombre:</b> </td><td bgcolor=#F7D358><span style='font-size: 1.5em'>$nombre</span><br></td></tr>";
$message .= "<tr><td><b>E-mail:</b> </td><td>$email<br></td></tr>";
$message .= "<tr><td><b>Asunto:</b> </td><td>$asunto<br></td></tr>";
$message .= "<tr><td><b>Consulta:</b> </td><td>$consulta<br></td></tr>";
$message .= "</table>";
$message .= "</div>";
$message .= "<br>";
 
$message .= "\r\n\r\n--" . $uniqueid. "--";

//enviamos el correo...

mail('limacruzjuancarlos@gmail.com', 'Se ha recibido un nuevo mensaje de tu sitio web...', $message, $headers);

//doy gracias por el envío y redireccionamos al usuario a la página principal.
?>
<td align="center" height="400" width="55%">
<span style="color: #003366; font-family: mistral; font-size: 2.3em">Hemos recibido su información, muy pronto le responderemos.</span>
</td>

<script type="text/javascript">
function redireccionar(){
location.href="index.php";
}
setTimeout ("redireccionar()", 3000);
</script>

<?
}

?>

martes, 20 de mayo de 2014

BUSCAR Y BORRAR REGISTROS DE TABLAS MYSQL DESDE PHP

Eliminar registros MYSQL desde PHP

Antes de comenzar quiero agradecer a todos los usuarios que una u otra manera hacen uso de las instrucciones o códigos aquí descritos, sus comentarios y sugerencias me animan a seguir adelante.

En esta nueva publicación quiero explicar como escribir un código sencillo para la eliminación de registros de una tabla de datos MySql desde PHP.  Como siempre recuerden que los comentarios están escritos dentro de los programas y que pueden copiarlos completamente y estoy seguro que les será de mucha utilidad.

El primer archivo que veremos será el denominado buscaryborrar.php, este en realidad solamente permitirá buscar los datos que se desean borrar y los mostrará y el segundo archivo borrar.php será el que realmente los borre.

Archivo: buscaryborrar.php

<meta charset="utf-8">
<style>
table {
box-shadow: 35px 35px 80px #ccc;
}
</style>
<?
//Mostramos el formulario de búsqueda con dos campos tipo (dos opciones) y termino
if(!$_POST) {
?>
<form action="<? $_POST ?>" method=post>
<br><br><table border=1 width=500 align=center>
<tr align=center><td bgcolor=#75f colspan=2>Busca el registro que deseas borrar</td></tr>
<tr>
<td>Tipo de búsqueda</td>
<td>
<select name=tipo>
<option value=nombre>Nombre
<option value=email>E-mail
</select>
</tr>
<tr>
<td>Término de la búsqueda</td>
<td><input type=text name=termino></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type=submit value=Buscar></td>
</tr>
</table>
</form>
<?
} else {
$tipo = $_POST['tipo'];
$termino = $_POST['termino'];

//conectar con el servidor
@$db = mysql_connect("servidor", "usuario", "password") or die ("No es posible conectar con el servidor.");
//seleccionamos la base de datos
mysql_select_db("basededatos");

//hacemos la busqueda
$buscar = mysql_query("SELECT * FROM nombre_tabla WHERE $tipo LIKE '%".$termino."%'");
$num_rows = mysql_num_rows($buscar);

//Creamos un ciclo para mostrar los registros resultado de la búsqueda realizada.
for($i=1; $i<=$num_rows; $i++) {
$datos = mysql_fetch_array($buscar);
$id = $datos['idcomentario'];
$nombre = $datos['nombre'];
$email = $datos['email'];
echo "<form action=borrar.php method='GET'>";
echo "<br><table border=1 width=500 align=center>";
echo "<tr align=center><td colspan=2>Datos a eliminar</td></tr>";
echo "<input type=hidden name=id value='$id'>";
echo "<tr><td>Nombre:</td><td><input type=text value='$nombre'></td></tr>";
echo "<tr><td>Email:</td><td><input type=text value='$email'></td></tr>";
echo "<tr><td colspan=2><input type=submit value='Borrar definitivamente'></td></tr>";
echo "</table>";
echo "</form>";
}
}

?>

El segundo archivo no necesita mayores comentarios, pero si quiero aclarar que al final incluí una pequeña porción de javascript para retornar al archivo anterior.

Segundo Archivo:  borrar.php

<meta charset="utf-8">
<?
$id = $_GET['id'];
$nombre = $_GET['nombre'];
$email = $_GET['email'];

//conectar con el servidor
@$db = mysql_connect("servidor", "usuario", "password") or die ("No es posible conectar con el servidor.");
//seleccionamos la base de datos
mysql_select_db("basededatos");

$consultar = mysql_query("SELECT * FROM nombre_tabla");

mysql_query("DELETE FROM nombre_tabla WHERE idcomentario = '$id'");

echo "Se ha eliminado el registro con éxito.<br>";
echo "Espere tres segundos será redireccionado a Buscar y Borrar datos!";

?>
<script language="Javascript">

function redireccionar() {
setTimeout("location.href='buscaryborrar.php'", 3000);}
redireccionar();
</script>

<?

if(!$consultar) {
echo "No se encontraron coincidencias";
}

?>

Espero que lo usen mucho...

lunes, 19 de mayo de 2014

MODIFICAR, EDITAR O ACTUALIZAR DATOS

Mostrar y Actualizar datos MYSQL desde PHP

En esta nueva publicación aprenderemos como mostrar los datos de tabla MYSQL y también como actualizarla desde PHP.

Recuerde que las explicaciones de cada parte del código están incluidas en forma de comentarios.

Primer Archivo

Nombre: mostrardatos.php

<?

//Conectamos con el servidor
@$db = mysql_connect("servidor", "usuario", "password") or die ("No es posible conectar con el servidor");

//Seleccionamos la base de datos
mysql_select_db("basededatos");

//Realizamos la consulta, en este caso es general y luego asignamos a la variable número el total de registros encontrados.
$consultar = mysql_query("SELECT * FROM nombretabla");
$numero = mysql_num_rows($consultar);

//Iniciamos una tabla y los títulos de las columnas
echo "<table border=1 width=90% align=center>";
echo "<tr align=center><td>No.</td><td>No.</td><td>Nombre</td><td>Email</td><td>Asunto</td><td>Comentario</td></tr>";

//Iniciamos el formulario, al accionarlo llamará al programa editar.php
echo "<form action=editar.php method=post>";

//Creamos un ciclo for para mostrar todos los registros de la tabla de datos, recuerde que deben ser editables
for($i=1; $i<=$numero; $i++) {
$registro = mysql_fetch_array($consultar);
$id = $registro['idcomentario'];
$nombre = $registro['nombre'];
$email = $registro['email'];
$asunto = $registro['asunto'];
$comentario = $registro['comentario'];
echo "<tr>";
echo "<td align=right>$i</td>";
echo "<input type=hidden name=numero[] value=$id>";
echo "<td><input type=text name=nombre[] value='$nombre' size=30></td>";
echo "<td><input type=text name=email[] value='$email' size=30></td>";
echo "<td><input type=text name=asunto[] value='$asunto' size=30></td>";
echo "<td><input type=text name=comentario[] value='$comentario' size=30></td>";
echo "</tr>";
}

//Incluimos el botón de acción que este caso será Actualizar
echo "<tr><td colspan=5><input type=submit value=Actualizar></td></tr>";

//Terminamos el formulario y la tabla
echo "</form>";
echo "</table>";


?>

Segundo Archivo

Nombre: editar.php

<?

//conectamos con el servidor
@$db = mysql_connect("servidor", "usuario", "password") or die ("No es posible conectar con el servidor");

//Seleccionamos la base de datos
mysql_select_db("basededatos");

//Realizamos una consulta general y el número de registros encontrados
$consultar = mysql_query("SELECT * FROM nombretabla");
$numero = mysql_num_rows($consultar);

//Creamos un ciclo for para la Actualización de datos
for($i=0; $i<=$numero; $i++) {
$id = $_POST['numero'][$i];
$nombre = $_POST['nombre'][$i];
$email = $_POST['email'][$i];
$asunto = $_POST['asunto'][$i];
$comentario = $_POST['comentario'][$i];

//Actualizamos cada campo de la tabla de datos en base al campo idcomentario
mysql_query("UPDATE nombretabla SET nombre = '$nombre' WHERE idcomentario = '$id'");
mysql_query("UPDATE nombretabla SET email = '$email' WHERE idcomentario = '$id'");
mysql_query("UPDATE nombretabla SET asunto = '$asunto' WHERE idcomentario = '$id'");
mysql_query("UPDATE nombretabla SET comentario = '$comentario' WHERE idcomentario = '$id'");
}

//Para finalizar enviamos un mensaje indicando que la actualización se a realizado.
echo "Se han actualizado los datos para comentario";



?>

Espero que les sirva.  Hasta pronto.

viernes, 16 de mayo de 2014

Crear una tabla de datos MYSQL desde PHP

CÓDIGO PARA CREAR TABLAS MYSQL DESDE PHP

Hacer una tabla de datos mysql desde php es un proceso muy sencillo y para explicarlo voy a utilizar un formulario de contactos (voy a hacer el formulario muy sencillo y sin formato) y lo voy a procesar en el mismo archivo.


<?
if(!$_POST) {
?>

<form action="<? $_POST ?>" method=post>
     Nombre: <input type=text name=nombre required ><br>
     E-mail: <input type=email name=email required ><br>
     Asunto: <input type=text name=asunto ><br>
     Comentario: <textarea name=comentario></textarea><br>
     <input type=submit value=Enviar>
</form>

<?
} else {
$nombre = $_POST['nombre'];
$email = $_POST['email'];
$asunto = $_POST['asunto'];
$comentario = $_POST['comentario'];

//conectamos con el servidor
@$db = mysql_connect("servidor", "usuario", "password");

//seleccionamos la base de datos
mysql_select_db("basededatos");

//asignamos a la variable tabla la lista de tablas que contiene nuestra base de datos
$tabla =  mysql_list_tables("basededatos");
$num_tabla = mysql_num_rows($tabla);

//Asignamos a la variable existe el texto NO, asumiendo que la tabla que usaremos no existe
$existe = "NO";

//verificamos que la tabla que usaremos existe, en caso de que exista asignamos el valor SI a la variable existe

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

//Si la tabla no existe, creamos la tabla con la siguiente estructura


if ($existe == "NO") {
mysql_query("CREATE TABLE nombre_tabla
 (idcomentario INT(3) NOT NULL 
 AUTO_INCREMENT PRIMARY KEY, 
 nombre VARCHAR(50), 
 email VARCHAR(100), 
 asunto VARCHAR(50), 
 comentario VARCHAR(1000), 
 UNIQUE (idcomentario))");

//luego de crear la tabla insertamos los datos que deseamos

$insertar = mysql_query("INSERT INTO nombre_tabla
(nombre, email, asunto, comentario)
VALUES ('$nombre', '$email',
'$asunto', '$comentario')");

//si la tabla ya existe solamente insertamos los datos que deseamos

} else {
$insertar = mysql_query("INSERT INTO nombre_tabla
(nombre, email, asunto, comentario)
VALUES ('$nombre', '$email',
'$asunto', '$comentario')");
}

//verificamos que se hayan guardado los datos, enviamos mensaje de confirmación

if(!$insertar) {
echo "No se guardaron datos";
} else {
echo "Se agrego un nuevo registro";
}
}
?>