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?