Cuando procesas el login, aun no sabes que usuario es. Asi que es imposible tener el id de usuario si aun no chequeaste la base de datos.
Te puse un par de comentarios y te complete el codigo, imagino que en alguna parte recuperas la session no? porque para declarar una variable de session en el array $_SESSION es necesario iniciar la session con session_start().
Código PHP:
Ver original<?php
include 'conex.php';
/*
* $id = $_POST['idusu'];
* Esto conceptualmente esta mal, porque aun no sabes el id de usuario.
* Primero debes ir a la base de datos para ver si el usuario existe.
*
*/
$usuario = $_POST['usuario'];
$clave = $_POST['contrasena'];
// Esto esta mal por el mismo motivo anterior.
//$_SESSION['id'] = $id;
$sql = "SELECT id_usuario,
txt_nomusuario,
txt_contrasena
FROM usuarios
WHERE txt_nomusuario = '".$usuario."'
AND txt_contrasena = '".$clave."'";
//verifica si se puede hacer consulta
{
echo '<script type="text/javascript"> alert ("Error, falla de conexion") </script>';
echo '<script type="text/javascript">window.location="index.php"</script>';
}
else
{
// si hay uno al menos consiguio registro
{
echo '<script type="text/javascript"> alert ("Error, usuario no registrado") </script>';
echo '<script type="text/javascript">window.location="index.php"</script>';
}
else
{
/*
* Verificar la clave aca no tiene sentido, ya lo verificaste en la base de datos.
* Si trajo 1 coincidencia de txt_nomusuario = $usuario y txt_contrasena = $clave
* esta validado!
*/
/*
* Aca es donde tiene un arrar $user con los datos de tu usuario
* y es aca donde tenes que setear el id de usuario en la variable de session
*/
$_SESSION["id"] = $user['id_usuario'];
$_SESSION["valido"] = 1;
header( "location: menu.php"); }
}
?>
Espero te sirva. Saludos.