Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/03/2008, 17:22
Avatar de jaronu
jaronu
 
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
ayuda con activacion de users esta casi listo, pero....

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.