Cita:
Iniciado por Uncontroled_Duck No puedes ir pegando código y poniendo donde quede más bonito.
Código PHP:
if(sha1($password) == $passwordDB) {
Esta línea es para hacer una comparación entre dos contraseñas, la que hay en la DB y la que mandas con el form de validación.
Y para eso debe haber antes una consulta donde saques esos datos de la DB y lo pongas en la variable $passwordDB... Si no es como intentar mandar un mail con un donuts, por mucho que lo intentes, no va a salir nada.
Otra cosa, intenta comparar los códigos, ver los cambios e intentar comprender como funciona.
A ver, con esto debería valer:
Código PHP:
// Aquí van las funciones que tienes.
<?php
// verificamos si se han enviado ya las variables necesarias.
if (isset($_POST['username']) && isset($_POST['password'])) {
$username = $_POST['username'];
$password = $_POST['password'];
$password2 = $_POST['password2'];
$nombre = $_POST['nombre'];
$apellido = $_POST['apellido'];
$email = $_POST['email'];
$cadena = '478@€shdk%%';
$pass = sha1($password); // Encriptas la contraseña
// Hay campos en blanco
if($username == NULL || $password == NULL || $password2 == NULL || $nombre == NULL || $apellido == NULL || $email == NULL) {
echo 'Un campo está vacio.';
mostrar();
} else {
// ¿Coinciden las contraseñas?
if($password != $password2) {
echo 'Las contraseñas no coinciden';
mostrar();
} else {
// Comprobamos si el nombre de usuario o la cuenta de correo ya existían
$checkuser = mysql_query("SELECT usuario FROM usuarios WHERE usuario='$username'");
$username_exist = mysql_num_rows($checkuser);
$checkemail = mysql_query("SELECT email FROM usuarios WHERE email='$email'");
$email_exist = mysql_num_rows($checkemail);
if ($email_exist > 0 || $username_exist > 0) {
echo 'El nombre de usuario o la cuenta de correo estan ya en uso';
mostrar();
} else {
$query = 'INSERT INTO usuarios (usuario, password, nombre, apellido, email, fecha)
VALUES (\''.$username.'\',\''.$pass.'\',\''.$nombre.'\',\''.$apellido.'\',\''.$email.'\',\''.date("d-m-Y").'\')';
mysql_query($query) or die ('Ha fallado la entrada de datos'); // Si falla nos avisa.
echo 'El usuario '.$username.' ha sido registrado de manera satisfactoria.<br />';
echo 'Ahora puede entrar ingresando su usuario y su password <br />';
mostrar1();
?>
<?php
}
}
}
} else {
mostrar();
}
?>
PD.: Con el code un poco más desplegado se hace más sencilla la lectura.
primero que todo agradezco mucho tu voluntad...
ahora si puedo ver el formulario de registro en el browser, hago el registro de usuario y lo registra perfecto con la contraseña encriptada :) yijuuuu!!!
------------------------------------------------------------------------------------------------------------------
aquí esta lo que mencionabas antes,
"
Código PHP:
if(sha1($password) == $passwordDB) {
Esta línea es para hacer una comparación entre dos contraseñas, la que hay en la DB y la que mandas con el form de validación."
me quedo algo así
Código PHP:
<?php
mysql_connect('localhost','xxxxxxxx','xxxxxxxx');
mysql_select_db("xxxxxxxx");
$usuario = strtolower($_POST["usuario"]);
$password = $_POST["password"];
if($usuario!= "" && $password!= "")
{
$sql = mysql_query('SELECT password, usuario FROM usuarios WHERE usuario="'.$usuario.'"');
if($f= mysql_fetch_array($sql)) {
// Aquí pegue la línea que hace la comparación entre dos contraseñas.
if(sha1($password) == $passwordDB) {
$_SESSION["k_username"] = $f['usuario'];
echo 'Has sido logueado correctamente '.$_SESSION['k_username'].' <p>';
echo '<a href="XXXXX.php">Entrar a XXXXXXX</a></p>';
}else{
echo 'Contraseña incorrecta';
echo '<a href="index.php">Inicio</a></p>';
}
}else{
echo 'Usuario no existente en la base de datos ';
echo '<a href="index.php">Inicio</a></p>';
}
}
?>
nuevamente gracias por tu ayuda