Estoy haciendo, mediante indicaciones de este foro, una activacionn de cuenta de user por mail, ya esta hecho todo
guardo en la base de datos dos campos adicionales campos que son activacion cero para activado y 1 para desactivado.
y el otro campo lo lleno con un numero aleatorio de 20 digitos.
al registrarse el user todo va bien, me inserta bien los datos, el numero aleatorio y en estado lo pone bien en 1
el problema viene al validar al usuario con el login, tanto este el campo de estado en 0 o en 1 activado o desactivado no me deja entrar
osea, que el u8suario con la cuenta activada no entra y el otro tampoco.
uso este script para validar.
donde esta la burrada que cometo.
Gracias.
Código PHP:
<?php
session_start();
//datos para establecer la conexion con la base de mysql.
mysql_connect('localhost','xxxxx','xxxxx')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('registro')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
function quitar($mensaje)
{
$nopermitidos = array("'",'\\','<','>',"\"");
$mensaje = str_replace($nopermitidos, "", $mensaje);
return $mensaje;
}
$estado= "0"; //creo la variable $estado=0 para compararla despues con el campo de la BD estado y si son cero le dejara pasar
if ($_POST['usuario']) {
// Puedes utilizar la funcion para eliminar algun caracter en especifico
//$usuario = strtolower(quitar($HTTP_POST_VARS["usuario"]));
//$password = $HTTP_POST_VARS["password"];
// o puedes convertir los a su entidad HTML aplicable con htmlentities
$usuario = strtolower(htmlentities($HTTP_POST_VARS["usuario"], ENT_QUOTES));
$password = $HTTP_POST_VARS["password"];
$result = mysql_query('SELECT password, usuario FROM usuarios WHERE usuario=\''.$usuario.'\'');
if($row = mysql_fetch_array($result)){
if($row["password"] == $password){
$_SESSION["k_username"] = $row['usuario'];
if( $estado == $row['estado']){
?>
<SCRIPT LANGUAGE="javascript">
location.href = "principal.php";
</SCRIPT>
<?
}else{
echo '<span class="Estilo5">Password incorrecto o cuenta sin activar</span>';
session_destroy();}
}else{
echo '<span class="Estilo5">Usuario no existente</span>';}
}
else{
echo '<span class="Estilo5">password incorrecto</span>';}
}
mysql_close();
?>
la variable $row[estado] es la qie contiene el valor 0 para activados y el valor 1 para no activados. pero es que no deja pasar a ninguna.
Gracias.