Para evitar (o minimizar la inyección SQL) deberías realizar la consulta de
la siguiente manera además de usar $_SESSION:
$usuario=htmlentities(trim($_POST['usuario']));
$clave=htmlentities(trim($_POST['clave']));
if (empty($usuario) || empty($clave)) {
header('Location: index.php');
exit;
}else{
$sql="SELECT id, password FROM usuarios WHERE login='$usuario'";
//echo "$sql<br />";
if (!@$rs=mysql_query($sql)) {
die ('<h1>No se ha podido Ejecutar la consulta.</h1>');
}
if (mysql_num_rows($rs_)>0) {//existe el usuario
$rst=mysql_fetch_array($rs_);
if ($rst['clave']==$clave) {
$_SESSION['id_user']=$rst['id'];
$_SESSION['login_user']=$usuario;
$_SESSION['password']=$clave;
header('Location: listado_ofertas.php');
exit;
}else{
header('Location: index.php');
exit;
}
}else{
header('Location: index.php');
exit;
}
}
"Palsweb.Net" <
[email protected]> escribió en el mensaje
news:01e901c48e7e$8a7df2f0$
[email protected]...
Saludis listeros,
Tengo un problemilla sobre el uso de sesiones, he creado una administración
remota y para acceder es necesario que entren usuario y contraseña mediante
un formulario, este formulario es enviado a la misma página donde tengo el
siguiente codigo:
<?
if($login !="" && $password !="")
{
$sql="select * from usuarios where login='" . $login . "' and
password='" . $password . "'";
$logindb=mysql_db_query($basedatos,$sql,$connect);
if($con_login=mysql_fetch_array($logindb))
{
$login_sql=$con_login["login"];
$pwd_sql=$con_login["password"];
$id_user=$con_login["id_usuario"];
if($login==$login_sql && $pwd=$pwd_sql)
{
session_register("id_user","login_user","pwd_user");
header("Location: listado_ofertas.php");
}
}
}
?>
a veces me funciona y entro en el header, "listado_ofertas.php" pero al
entrar me dura la sesion como 5 segundos y ya no me deja entrar mas y me
vuelve al index.php previo. sabeis a que puede deberse??
El servidor corre sobre linux.
Gracias