Hice lo que me indicastes en el archivo:
users_Register.php
Código PHP:
<?php
session_start();
include("db.php");
?>
<link rel="stylesheet" href="css/d13.css">
<H1>Crear una nueva cuenta</H1><br>
<?php
if(isset($_POST['submit'])){
$query = sprintf("SELECT * FROM usuarios WHERE usuario='%s' LIMIT 1",mysql_real_escape_string($_POST['usuario']));
$sql = mysql_query($query);
$row = mysql_fetch_array($sql);
if($row||empty($_POST['usuario'])|| empty($_POST['fname'])||empty($_POST['lname'])|| empty($_POST['email'])||empty($_POST['password'])|| empty($_POST['re_password'])||$_POST['password']!=$_POST['re_password']){
# si se deja un campo vacío va a tirar un error.
$error = '<p>';
if(empty($_POST['usuario'])){
$error .= 'El campo "Nombre de Usuario" se ha dejado vacío.<br>';
}
if(empty($_POST['fname'])){
$error .= 'El campo "Nombre" se ha dejado vacío.<br>';
}
if(empty($_POST['lname'])){
$error .= 'El campo "Apellido" se ha dejado vacío.<br>';
}
if(empty($_POST['email'])){
$error .= 'El campo "Email" se ha dejado vacío.<br>';
}
if(empty($_POST['password'])){
$error .= 'El campo "Contraseña" se ha dejado vacío.<br>';
}
if(empty($_POST['re_password'])){
$error .= 'Debes repetir la contraseña<br>';
}
if($_POST['password']!=$_POST['re_password']){
$error .= 'Las contraseñas no concuerdan.<br>';
}
if($row){
$error .= 'El nombre de usuario que has escojido ya existe en la Base de Datos.<br>';
}
$error .= '</p>';
}else{
$query = sprintf("INSERT INTO usuarios(`usuario`,`fname`,`lname`,`email`,`password`)
VALUES('%s','%s','%s','%s',PASSWORD('%s'))",
mysql_real_escape_string($_POST['usuario']),
mysql_real_escape_string($_POST['fname']),
mysql_real_escape_string($_POST['lname']),
mysql_real_escape_string($_POST['email']),
hash('sha256', mysql_real_escape_string($_POST['password'])))or die(mysql_error());
$sql = mysql_query($query);
# Redireccion a la página de logueo despues del registro.
header("Location: users_Login.php");
exit;
}
}
if(isset($error)){
echo $error;
unset($error);
}
?>
y en el verify Código PHP:
<?php
include("db.php");
if(isset($_POST['submit'])){
$usr = mysql_real_escape_string($_POST['usuario']);
$pas = hash('sha256', mysql_real_escape_string($_POST['password']));
$sql = mysql_query("SELECT * FROM usuarios
WHERE usuario='$usr' AND
password='$pas'
LIMIT 1");
if(mysql_num_rows($sql) == 1){
$row = mysql_fetch_array($sql);
session_start();
$_SESSION['usuario'] = $row['usuario'];
$_SESSION['fname'] = $row['fname'];
$_SESSION['lname'] = $row['lname'];
$_SESSION['logged'] = TRUE;
header("Location: prueba.php"); // Puedes modificar la pagina a la cual te guste que valla despues del inicio de sesión
exit;
}else{
header("Location: incorrecto.php");
exit;
}
}else{
header("Location: index.php");
exit;
}
?>
Pero aun sigue sin funcionar de echo la cadena que me coloca en la tabla es:
Tambien alargue los campos a 1000 para evitar que se corte cualquier cadena.
*445EFF55A75BF78FA56F407B5315B8269F311D85
y la clave que debería colocar en la tabla haciendo la conversión debería ser:
8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a8 1f6f2ab448a918