Hola, tengo un problema, estoy desarrollando un sitio con php y mysql. Lo que pasa es que tengo un formulario de registro de usuarios, al registrarse se les envia un e-mail para que activen su cuenta todo esto funciona perfectamente, tengo en mi bd una columna llamada 'estado' que esta en 1 al registrarse y al activar el link se actualiza en 0.
Lo que quiero hacer es restringir a los usuarios que estan en estado 1 que ingresen al sitio hasta que confirmen he intentado de varias maneras y no puedo solo me autentifica el primer registro les dejo mi formulario de login
Código PHP:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Comiendo en morelia</title>
<link href="styles.css" rel="stylesheet" type="text/css" media="screen" />
</head>
<body>
<div id="header">
<h1 class="logo"></h1>
<div id="login">
<?php require_once('includes/log.php'); ?>
</div>
</div>
<div id="contenido">
<div id="content">
<center>
<form action="login1.php" method="post" name="login">// aqui llamo login1.php que es el que procesa el formulario
<table width="310" border="1">
<tr><td width="150">Nombre de Usuario:</td><td width="144">
<input type="text" name="username" autocomplete="off" /></td>
</tr>
<tr>
<td>Password:</td>
<td><input type="password" name="password" autocomplete="off" /></td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="ingresar" value="Entrar" />
<input name="reset" type="reset" value="Borrar Todo" /></td>
</tr>
</table>
</form>
</center>
</div>
</body>
</html>
en el action del formulario tengo login1.php que pongo a continuacion:
Código PHP:
<?php
php ob_start();
require_once("config.php") //aqui incluyo la conexion a BD
// creo un juego de registros seleccionando la columna estado
mysql_select_db($database_comiendo, $comiendo);
$query_Recordset = "SELECT usuarios.estado FROM usuarios";
$Recordset = mysql_query($query_Recordset, $comiendo) or die(mysql_error());
$row_Recordset = mysql_fetch_assoc($Recordset);
$totalRows_Recordset = mysql_num_rows($Recordset);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Comiendo en morelia</title>
<link href="styles.css" rel="stylesheet" type="text/css" media="screen" />
</head>
<body>
<div id="header">
<h1 class="logo"></h1>
<div id="login">
<?php require_once('includes/log.php'); ?>
</div>
</div>
<div id="contenido">
<?php
$estado='1'
$username = $_POST['username'];
$password = $_POST['password'];
if(isSet($_POST['ingresar'])) {
if(($row_Recordset['estado']) == $estado){
echo 'tienes que confirmar tu registro al email que te mandamos';
} //aqui revisamos si confirmo su email
if(($username == "") or ($password == "")) {
echo '<p>No haz escrito tus datos, por favor escribe tus datos para poder entrar a la Web.<br />' . $error . '</p>';
exit;
}
else {
$sqlnoreguser = mysql_query("SELECT * FROM `usuarios` WHERE user='" . $_POST['username'] . "'");
if(!mysql_num_rows($sqlnoreguser)) {
echo 'el nick que escribiste(<b><i>' . @$_POST['usuario'] . '</i></b>)no es correcto<br />' . $error . '';
exit;
}
$sqlnoregpass = mysql_query("SELECT * FROM `usuarios` WHERE pass='" . $_POST['password'] . "'");
if(!mysql_num_rows($sqlnoregpass)) {
echo 'Contraseña inválida, por favor revisa la contrase&ntide;a que escribiste<br />' . $error . '';
exit;
}
$sqllogin = mysql_query("SELECT * FROM usuarios WHERE user='$username' AND pass='$password'");
if($user_ok = mysql_fetch_array($sqllogin)) {
session_register("usuario"); //Registramos la sesion de usuario
session_register("idusuario"); //Registramos el ID de usuario
session_register("nivel"); //Registramos el nivel que tendra el usuario
// Le damos los valores a las variables
$_SESSION[usuario] = $user_ok["user"]; //damos el nick a la variable usuario
$_SESSION[id] = $user_ok["idusuario"]; //damos la id del user a la variable idusuario
$_SESSION['nivel'] = $user_ok["nivel"]; //damos el nivel del usuario a la variable nivel
}
else {
echo 'Datos incorrectos. <br />' . $error . '';
}
}
mysql_free_result($sqllogin);
echo '<script language="JavaScript">window.location.href = "index1.php";</script>';
}
else {
echo 'Ha ocurrido un error mientras ingresabas, por favor inténtalo de nuevo.<br />' . $error . '';
}
mysql_close();
?>
</div>
</html>
<?php ob_flush(); ?>
Aqui es donde proceso el formulario mi problema es que solamente revisa el estado de el primer registro
Código PHP:
if(($row_Recordset['estado']) == $estado){
echo 'tienes que confirmar tu registro al email que te mandamos';
}
para que entiendan mejor tengo la tabla usuarios
id user password estado
1 juan ***** 1
2 Alejandra ***** 0
3 Roberto ***** 0
4 Jose ***** 1
el problema es que si juan tiene estado uno nadie puede ingresar a la tabla pero si tiene 0 todos pueden ingresar solamente me identifica el primer registro y yo lo que quiero es que cunado se logueo alguien solo busque el estado de su registro.
Alguna idea se agradece.