Foros del Web » Programando para Internet » PHP »

Login,registro y cifrado mediante php y base de datos

Estas en el tema de Login,registro y cifrado mediante php y base de datos en el foro de PHP en Foros del Web. Hola buenas noches comunidad, les cuento soy nuevo en esto de base de datos y del mismo php asi que he leido solo bajo mi ...
  #1 (permalink)  
Antiguo 20/09/2015, 21:26
 
Fecha de Ingreso: septiembre-2015
Mensajes: 1
Antigüedad: 9 años, 2 meses
Puntos: 0
Login,registro y cifrado mediante php y base de datos

Hola buenas noches comunidad, les cuento soy nuevo en esto de base de datos y del mismo php asi que he leido solo bajo mi propia cuenta tutoriales y cosas por el estilo, mi amigo, me hizo un trabajo y he llegado a un punto que no puedo avanzar màs , lo que me pidio hacer es :

*Crear una base de datos

*Crear un usuario de acceso a la base de datos.

*Crear una tabla en la base de datos, con al menos dos campos: usuario y
clave. En este caso el campo clave debe agregarse cifrado md5( )

*Al ingresar al login con usuario y clave, debe enviarla cifrada a la página 2 y
comparar con los datos ingresados en la base datos.

*Mostrar en la página un mensaje que indique si la clave es correcta o no.

hasta el momento tengo esto realizado

1.- la base de datos usando phpmyadmin
2.-El formulario que es el siguiente :

Formulario

<body>
<form id="form" class="form" name="form" action="/registro.php" method="post" enctype="application/x-www-form-urlencoded" accept-charset="UTF-8">
<h1>Registro</h1>
<div class="content">
<div class="intro"></div>
<div id="section0" >
<div class="field"><label for="Usuario">Usuario</label><input type="text" id="Usuario" name="Usuario" required></div>
<div class="field"><label for="Clave">Clave</label><input type="password" id="Clave" name="Clave" required></div>
<div class="field"><input type="submit" id="Enviar" name="Enviar"></div>
</div>
</div>
</form>


<hr />


<form id="form" class="form" name="form" action="/entrar.php" method="post" enctype="application/x-www-form-urlencoded" accept-charset="UTF-8">
<h1>Ingresar</h1>
<div class="content">
<div class="intro"></div>
<div id="section0" >
<div class="field"><label for="Usuario">Usuario</label><input type="text" id="Usuario" name="Usuario" required></div>
<div class="field"><label for="Clave">Clave</label><input type="password" id="Clave" name="Clave" required></div>
<div class="field"><input type="submit" id="Enviar" name="Enviar"></div>
</div>
</div>
</form>
</body>
</html>

Archivo para direccionar a la siguiente pagina del formulario.


<?php
$usuario = $_POST['Usuario'];
$clave = $_POST['Clave'];
$usuarioreg = 'user'.$usuario.'.txt';
if (file_exists($usuarioreg)) {
$md5cod = md5($clave);
$cargaruser = fopen($usuarioreg, "r");
$clavecod = fread($cargaruser, filesize($usuarioreg));
if (md5($clave) === $clavecod) {
echo 'Logueo Exitoso, porfavor dirijase al archivo con su nombre en txt en C:\AppServ\www para ver su clave encriptada, gracias';
} else {
echo 'Su Password no es valida';
}
fclose($cargaruser);
} else {
echo 'Este Usuario no existe';
}
?>

Ultimo paso del registro.

<?php
$usuario = $_POST['Usuario'];
$clave = $_POST['Clave'];
$usuarioreg = 'user'.$usuario.'.txt';

if (file_exists($usuarioreg)) {
echo 'El Usuario ingresado ya esta registrado';
} else {
$md5cod = md5($clave);
$registro = fopen($usuarioreg,'w');
fwrite($registro,$md5cod);
fclose($registro);
echo 'El Usuario se '.$usuario.' registro correctamente';
}
?>.


Hasta aqui puedo crear usuarios y mandar la clave md5 encriptada a un txt.



Crear usuarios y mostrarlo en la base de datos Formulario

<form method='post' action='Recibe.php'>
Usuario: <input type='text' Name='nombre'></br>
Nick: <input type='text' Name='nick'></br>
Contrasena: <input type='password' Name='clave'></br>
<input type='submit'>
</form>

Continuacion del formulario y conexion a la base de datos.

<?php
//Recibe.php
//Conectar con Base de Datos 127.0.0.1=servidor
$conexion = mysql_connect("127.0.0.1", "root", "123456");
mysql_select_db("prueba", $conexion);

$nombre = $_POST['nombre'];
$nick = $_POST['nick'];
$clave = md5($_POST['clave']);

//Inserta datos
if($nombre!='' && $nick !='' && $clave!=''){
mysql_query("INSERT INTO usuarios (nombre, nick, clave)values('$nombre','$nick','$clave')");
echo 'Los Datos Ingresaron Correctamente';
}else{
echo 'Todos los campos deben estar con datos';
};
?>


Y bueno mi duda es esa, como puedo hacer para agregar lo que me falta ? ya que he visto tutoriales y no me sale :(, lo que me faltaria y es lo mas importante es que en respuesta al logueo la 2da pagina muestre la contraseña en md5 ya encriptada y a la vez en la a
  #2 (permalink)  
Antiguo 21/09/2015, 05:38
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 9 años, 5 meses
Puntos: 263
Respuesta: Login,registro y cifrado mediante php y base de datos

primero debes guardar la clave ya cifrada algo como esto:

Código PHP:
Ver original
  1. //insertar datos del usuario
  2.     // Generamos un salt aleatoreo, de 22 caracteres para Bcrypt
  3.     $salt = substr(base64_encode(openssl_random_pseudo_bytes('30')), 0, 22);
  4.     // A Crypt no le gustan los '+' as� que los vamos a reemplazar por puntos.
  5.     $salt = strtr($salt, array('+' => '.'));
  6.     // Generamos el hash
  7.     $hash = crypt($pass, '$2y$10$' . $salt);
  8.     $clave = $hash;

luego para verificarla al momento de ingresar seria algo asi:

Código PHP:
Ver original
  1. $password = (crypt($_POST['password'], $row_result['pass']));

lo ultimo seria que cambies de mysql a mysqli ya que la primera esta depreciada y no tiene mas soporte, digo para que te evites tener que hacer actualizaciones fastidiosas a tu codigo a futuro
__________________
[email protected]
HITCEL

Etiquetas: cifrado, formulario, html, mediante, mysql, registro, select, tabla, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:23.