Ver Mensaje Individual
  #9 (permalink)  
Antiguo 26/05/2013, 15:39
juanmandi
 
Fecha de Ingreso: septiembre-2004
Ubicación: Maracay Edo. Aragua
Mensajes: 45
Antigüedad: 22 años, 1 mes
Puntos: 0
Respuesta: Autenticacion de usuarios

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