recuperar_contrasena.php
Código PHP:
Ver original<?php
include('acceso_db.php'); // incluímos los datos de acceso a la BD
?>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
if(isset($_POST['enviar'])) { // comprobamos que se han enviado los datos del formulario if(empty($_POST['usuario_nombre'])) { echo "No ha ingresado el usuario. <a href='javascript:history.back();'>Reintentar</a>";
}else {
$usuario_nombre = trim($usuario_nombre); $sql = mysql_query("SELECT usuario_nombre, usuario_clave, usuario_email FROM usuarios WHERE usuario_nombre='".$usuario_nombre."'"); $num_caracteres = "10"; // asignamos el número de caracteres que va a tener la nueva contraseña
$nueva_clave = substr(md5(rand()),0,$num_caracteres); // generamos una nueva contraseña de forma aleatoria $usuario_nombre = $row['usuario_nombre'];
$usuario_clave = $nueva_clave; // la nueva contraseña que se enviará por correo al usuario
$usuario_clave2 = md5($usuario_clave); // encriptamos la nueva contraseña para guardarla en la BD $usuario_email = $row['usuario_email'];
// actualizamos los datos (contraseña) del usuario que solicitó su contraseña
mysql_query("UPDATE usuarios SET usuario_clave='".$usuario_clave2."' WHERE usuario_nombre='".$usuario_nombre."'"); // Enviamos por email la nueva contraseña
$remite_nombre = ""; // Tu nombre o el de tu página
$remite_email = ""; // tu correo
$asunto = "Recuperación de contraseña"; // Asunto (se puede cambiar)
$mensaje = "Se ha generado una nueva contraseña para el usuario <strong>".$usuario_nombre."</strong>. La nueva contraseña es: <strong>".$usuario_clave."</strong>.";
$cabeceras = "From: ".$remite_nombre." <".$remite_email.">\r\n";
$cabeceras = $cabeceras."Mime-Version: 1.0\n";
$cabeceras = $cabeceras."Content-Type: text/html";
$enviar_email = mail($usuario_email,$asunto,$mensaje,$cabeceras); if($enviar_email) {
echo "La nueva contraseña ha sido enviada al email asociado al usuario ".$usuario_nombre.".";
}else {
echo "No se ha podido enviar el email. <a href='javascript:history.back();'>Reintentar</a>";
}
}else {
echo "El usuario <strong>".$usuario_nombre."</strong> no está registrado. <a href='javascript:history.back();'>Reintentar</a>";
}
}
}else {
?>
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
<label>Usuario:</label><br />
<div style="text-align:center;">
<input type="text" name="usuario_nombre" /><br />
<input type="submit" name="enviar" value="Enviar" />
</div>
</form>
<?php
}
?>
</body>
</html>
registro.php
Código PHP:
Ver original<?php
include('acceso_db.php');
?>
<html lang="en">
<head>
<meta charset="UTF-8">
</head>
<body>
<?php
if(isset($_POST['enviar'])) { // comprobamos que se han enviado los datos desde el formulario // creamos una función que nos parmita validar el email
function valida_email($correo) {
if (preg_match('/^[A-Za-z0-9-_.+%]+@[A-Za-z0-9-.]+\.[A-Za-z]{2,4}$/', $correo)) return true; else return false;
}
// Procedemos a comprobar que los campos del formulario no estén vacíos
$sin_espacios = count_chars($_POST['usuario_nombre'], 1); if(!empty($sin_espacios[32])) { // comprobamos que el campo usuario_nombre no tenga espacios en blanco echo "El campo <em>usuario_nombre</em> no debe contener espacios en blanco. <a href='javascript:history.back();'>Reintentar</a>";
}elseif(empty($_POST['usuario_nombre'])) { // comprobamos que el campo usuario_nombre no esté vacío echo "No haz ingresado tu usuario. <a href='javascript:history.back();'>Reintentar</a>";
}elseif(empty($_POST['usuario_clave'])) { // comprobamos que el campo usuario_clave no esté vacío echo "No haz ingresado contraseña. <a href='javascript:history.back();'>Reintentar</a>";
}elseif($_POST['usuario_clave'] != $_POST['usuario_clave_conf']) { // comprobamos que las contraseñas ingresadas coincidan
echo "Las contraseñas ingresadas no coinciden. <a href='javascript:history.back();'>Reintentar</a>";
}elseif(!valida_email($_POST['usuario_email'])) { // validamos que el email ingresado sea correcto
echo "El email ingresado no es válido. <a href='javascript:history.back();'>Reintentar</a>";
}elseif(empty($_POST['name'])) { // comprobamos que el campo name no esté vacío echo "No haz ingresado Nombres. <a href='javascript:history.back();'>Reintentar</a>";
}elseif(empty($_POST['ap'])) { // comprobamos que el campo ap no esté vacío echo "No haz ingresado Apellidos. <a href='javascript:history.back();'>Reintentar</a>";
}else {
// "limpiamos" los campos del formulario de posibles códigos maliciosos
// comprobamos que el usuario ingresado no haya sido registrado antes
$sql = mysql_query("SELECT usuario_nombre FROM usuarios WHERE usuario_nombre='".$usuario_nombre."'"); echo "El nombre usuario elegido ya ha sido registrado anteriormente. <a href='javascript:history.back();'>Reintentar</a>";
}else {
$usuario_clave = md5($usuario_clave); // encriptamos la contraseña ingresada con md5 // ingresamos los datos a la BD
$reg = mysql_query("INSERT INTO usuarios (usuario_nombre, usuario_clave, usuario_email, Nombres, Apellidos, usuario_freg) VALUES ('".$usuario_nombre."', '".$usuario_clave."', '".$usuario_email."','".$name."','".$ap."', NOW())");
if($reg) {
echo '<script language="JavaScript" type="text/javascript">
alert("Datos ingresados correctamente..");
function redirection(){
window.location ="index.php";
} setTimeout ("redirection()");
</script>';
}else {
echo "ha ocurrido un error y no se registraron los datos.";
}
}
}
}else {
?>
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
<table style="margin: 0 auto width="221" cellspacing="7" cellpadding="7" border="8" bgcolor="#1E679A">
<tr>
<td><font color="#FFFFFF" face="arial, verdana, helvetica">
<div style="text-align:center;">
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
<label>Usuario:</label><br />
<input type="text" name="usuario_nombre" maxlength="15" /><br />
<label>Contraseña:</label><br />
<input type="password" name="usuario_clave" maxlength="15" /><br />
<label>Confirmar Contraseña:</label><br />
<input type="password" name="usuario_clave_conf" maxlength="15" /><br />
<label>Correo:</label><br />
<input type="text" name="usuario_email" maxlength="50" /><br />
<label>Nombres:</label><br />
<input type="text" name="name" maxlength="50" /><br />
<label>Apellidos:</label><br />
<input type="text" name="ap" maxlength="50" /><br />
<input type="submit" name="enviar" value="Registrar" />
<input type="reset" value="Borrar" />
<a href="acceso.php" target="_self"> <input type="button" name="boton" value="Ingresar" />
</table>
</font></td>
</tr>
</div>
</form>
<?php
}
?>
</body>
</html>
y la bd es
Código SQL:
Ver originalCREATE TABLE `usuarios` (
`usuario_id` INT(4) NOT NULL AUTO_INCREMENT,
`usuario_nombre` VARCHAR(20) NOT NULL DEFAULT '',
`usuario_clave` VARCHAR(32) NOT NULL DEFAULT '',
`usuario_email` VARCHAR(50) NOT NULL DEFAULT '',
`Nombres` VARCHAR(40) NOT NULL,
`Apellidos` VARCHAR(40) NOT NULL,
`usuario_freg` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`usuario_id`)
)
Si saben como hacer para generar diferentes tipos de usuario ME EXPLICO administradores y usuarios naturales les agradesco ESPERO LES SIRVA



