Ver Mensaje Individual
  #11 (permalink)  
Antiguo 25/04/2009, 10:56
Avatar de rompeguesos
rompeguesos
 
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Pregunta

Haber creo que el problema lo tengo en la encriptacion de la contraseña. Al poner la contraseña y darle a enviar se me va al login.php?error=7.

El codigo de registro de usuarios reg.php es este:

Código PHP:
<?php
include("config.php");
// Preguntaremos si se han enviado ya las variables necesarias 
if (isset($_POST["email"])) { 
$correo $_POST["email"];
$password $_POST["password"]; 
$cpassword $_POST["cpassword"]; 

//recoger direccion ip
$ip $_SERVER['REMOTE_ADDR'];

// Hay campos en blanco 
if($password==NULL|$cpassword==NULL|$correo==NULL) { 
header("location: formreg.php?error=1"); 
}else{ 

//Validar direccion de email
if (!preg_match(
'/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/',
$correo)) {
header("location: formreg.php?error=2"); 
}else{ 

//Minimo de caracteres en campo contraseña
if (strlen($password)<4)
{
header("location: formreg.php?error=3");
  
// no tiene mas de 4 caracteres
}else{

// ¿Coinciden las contraseñas? 
if($password!=$cpassword) { 
header("location: formreg.php?error=4");
}else{ 

//encriptar contraseña
$pass_encriptado sha1($pass);
$pass sha1(CoriaWeb);
$password = ($pass $pass_encriptado);

// Comprobamos si la cuenta de correo ya existe 
$checkemail mysql_query("SELECT email FROM usu WHERE email='$correo'"); 
$email_exist mysql_num_rows($checkemail); 

if (
$email_exist>0) { 
header("location: formreg.php?error=5"); 
}else{

//Todo parece correcto procedemos con la inserccion 
$query "INSERT INTO usu (password, email, ip, fecha) VALUES('$password','$correo','$ip', NOW())"
mysql_query($query) or die(mysql_error()); 
echo 
"El usuario $correo ha sido registrado de manera satisfactoria.";



}  
}
}
?>
El codigo de comprobacion del login es comprueba.php y es este:

Código PHP:
<?php
session_start
(); 
include(
"../reg/config.php"); 
$login $_POST['login']; 
$pass $_POST['pass']; 
$qry="SELECT * FROM usu WHERE email='$login'"
//echo $qry."<br>"; 
$result=mysql_query($qry) or die(mysql_error()); 
//echo "Las filas encontradas son ".mysql_num_rows($result); 
if(mysql_num_rows($result)==0){ 
    
header("location: login.php?error=3"); 
    exit; 
} else { 
    
$array=mysql_fetch_array($result); 
    
$pass_encriptado sha1($pass);
    
$pass sha1(CoriaWeb);
    
$password = ($pass $pass_encriptado); 
    if(
$array["pass"]!=$password){ 
        
header("Location: login.php?error=7"); 
        exit; 
    }else{ 
        
$_SESSION["login"]=$login
        
$_SESSION["pass"]=$password
        
$_SESSION["id"] = $array['id']; 
        
session_register(); 
        
header("Location: index.php"); 
        exit; 
    } 
}  
?>
¿Que fallo estoy cometiendo?

confirmado es la encriptacion, e quitado en cada documento las 3 lineas de encriptacion que tenia y funciona todo perfectamente. ¿Me podeis ayudar a encriptar las contraseñas a la hora de registrarse el usuario y a la hora de hacer login?

Última edición por GatorV; 25/04/2009 a las 15:26