Tengo una página index.html que muestra un sistema de login, la comprobación la hace en la página login.php.
Si usuario y contraseña son correctos, se redirecciona a una página para hacer filtros de una lista, pero ese filtro está condicionado por el nombre de usuario que se haya logado.
Por tanto la consulta es así:
SELECT *
FROM lista_clientes AS tb1
INNER JOIN usuario_zona AS tb2 ON tb1.Zona = tb2.Zona
WHERE tb1.Nombre LIKE "%$nombre%"
AND tb1.Localidad LIKE "%$localidad%"
AND tb2.nom_usuario = 'usuario'
Donde pone usuario en la última línea me gustaría que fuese una variable que almacenase el usuario que se ha logado en index.html.
Os adjunto las páginas y vemos como podemos averiguamos:
INDEX.HTML
Código HTML:
Ver original
<html> <meta charset="iso-8859-1"> <head> <link href="../css/login-box.css" rel="stylesheet" type="text/css" /> </head> <body background="images/fondo_index.jpg"><center> <div style="padding: 175px 0 0 0px;" align="center"> <div id="login-box"> <br /> <br /> <form name="form1" method="post" action="login.php"> <div id="login-box-field" style="margin-top:20px;"> <input type="text" name="usuario" class="form-login" title="Usuario" value="" size="30" maxlength="2048" autocomplete="off" /> </div> <div id="login-box-field"> <input name="clave" type="password" class="form-login" title="Clave" value="" size="30" maxlength="2048" /> </div> <br /> <br /> <br /> <label> <input type="image" name="imageField" src="images/login-btn.png" align="right" /> </label> </form> </body> </html>
LOGIN.PHP
Código PHP:
<html>
<meta charset="iso-8859-1">
<head>
</head>
<body>
<?php
session_start();
if (!isset( $_POST['usuario'] )) {
header("Location: login.php");
} else {
$id = mysql_connect("localhost", "root", "");
mysql_select_db("clientes", $id);
$consulta = "SELECT * FROM login WHERE nom_usuario = '{$_POST['usuario']}' AND password = '{$_POST['clave']}'";
$res = mysql_query($consulta, $id); // Ponle $res para q no se llame igual que la de abajo, $datos
$datos = @mysql_fetch_row($res); // En vez de num_rows, que devuelve la cantidad, haz un fetch_row que te devuelve los datos
if (!isset($datos[0])) {
header("Location: error.html");
} else {
$_SESSION['nom_usuario'] = $_POST['usuario'];
header("Location: ".$datos[2]);
exit;
}
}
?>
</body>
</html>
Código PHP:
<?php
$link = mysql_connect('localhost', 'root','') or die("Error, no se ha conectado B.D.");
$bd=mysql_select_db('clientes', $link) or die("Error, no se ha seleccionado B.D.");
function generaClientes()
{
$link = mysql_connect('localhost', 'root','') or die("Error, no se ha conectado B.D.");
$bd = mysql_select_db('clientes', $link) or die("Error, no se ha seleccionado B.D.");
$nombre = isset($_POST['nombre']) ? $_POST['nombre'] : NULL;
$localidad = isset($_POST['localidad']) ? $_POST['localidad'] : NULL;
$provincia = isset($_POST['provincia']) ? $_POST['provincia'] : NULL;
$cif = isset($_POST['cif']) ? $_POST['cif'] : NULL;
if ( !empty ($nombre) || !empty ($localidad) || !empty ($provincia)|| !empty ($cif) ) {
/*
SELECT *
FROM lista_clientes AS tb1
INNER JOIN usuario_zona AS tb2 ON tb1.Zona = tb2.Zona
WHERE tb1.Nombre LIKE "%pani%"
AND tb1.Localidad LIKE "%Montilla%"
AND tb2.nom_usuario = 'rrojas'
*/
$sql= " SELECT * FROM lista_clientes as tb1 INNER JOIN usuario_zona as tb2 ON tb1.Zona = tb2.Zona WHERE"; //Empezar a crear la consulta:
if ( !empty($nombre) && !empty ($localidad) && !empty ($provincia) && !empty ($cif) ) {
$sql .= " tb1.Nombre LIKE '%$nombre%' AND tb1.Localidad LIKE '%$localidad%' AND tb1.Provincia LIKE '%$provincia%' AND tb1.CIF LIKE '%$cif%'" ;
}
else if ( !empty($nombre) && !empty ($localidad) && !empty ($cif) ) {
$sql .= " tb1.Nombre LIKE '%$nombre%' AND tb1.Localidad LIKE '%$localidad%' AND tb1.CIF LIKE '%$cif%'";
}
else if ( !empty($nombre) && !empty ($cif) && !empty ($provincia) ) {
$sql .= " tb1.Nombre LIKE '%$nombre%' AND tb1.CIF LIKE '%$cif%' AND tb1.Provincia LIKE '%$provincia%'";
}
else if ( !empty($nombre) && !empty ($provincia) ) {
$sql .= " tb1.Nombre LIKE '%$nombre%' AND tb1.Provincia LIKE '%$provincia%'";
}
else if ( !empty($nombre) && !empty ($cif) ) {
$sql .= " tb1.Nombre LIKE '%$nombre%' AND tb1.CIF LIKE '%$cif%'";
}
else if ( !empty($nombre) && !empty ($localidad) ) {
$sql .= " tb1.Nombre LIKE '%$nombre%' AND tb1.Localidad LIKE '%$localidad%'";
}
else if ( !empty($nombre) ) {
$sql .= " tb1.Nombre LIKE '%$nombre%'";
}
else if ( !empty ($localidad) && !empty ($provincia) && !empty ($cif) ) {
$sql .= " tb1.Localidad LIKE '%$localidad%' AND tb1.Provincia LIKE '%$provincia%' AND tb1.CIF LIKE '%$cif%'" ;
}
else if ( !empty($localidad) && !empty ($provincia) ) {
$sql .= " tb1.Localidad LIKE '%$localidad%' AND tb1.Provincia LIKE '%$provincia%'";
}
else if ( !empty($localidad) && !empty ($cif) ) {
$sql .= " tb1.Localidad LIKE '%$localidad%' AND tb1.CIF LIKE '%$cif%'";
}
else if ( !empty($localidad)) {
$sql .= " tb1.Localidad LIKE '%$localidad%'";
}
else if ( !empty($cif) && !empty ($provincia) ) {
$sql .= " tb1.CIF LIKE '%$cif%' AND tb1.Provincia LIKE '%$provincia%'";
}
else if ( !empty ($provincia) ) {
$sql .= " tb1.Provincia LIKE '%$provincia%'";
}
else if ( !empty($cif) ) {
$sql .= " tb1.CIF LIKE '%$cif%'";
}
}
$sql .= " AND tb2.nom_usuario = 'rrojas' ORDER BY Nombre ASC";
$consulta = mysql_query ($sql) ; //Hacer la consulta.
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link href="css/form.css" rel="stylesheet">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<select name='clientes' size="5px" style="width:80%; font-size:22px; f">
<?php
while($registro=mysql_fetch_assoc($consulta))
{?>
<option value="<?php echo $registro['Nombre']; ?>"><?php echo $registro['Nombre']," ",$registro['Direccion']," ",$registro['Localidad']," ",$registro['Provincia']; ?></option>
<?php
}
?>
</select>
<?php
}
?>
<br />
<br />
<?php generaClientes();?>
</body></html>