Foros del Web » Programando para Internet » PHP »

Validacion de usuario y sesiones

Estas en el tema de Validacion de usuario y sesiones en el foro de PHP en Foros del Web. Hola amigos: Estoy muy enredada con este código y les pido por favor que me ayuden. El asunto es que tengo una página index.php en ...
  #1 (permalink)  
Antiguo 04/04/2007, 11:08
 
Fecha de Ingreso: septiembre-2006
Mensajes: 48
Antigüedad: 17 años, 6 meses
Puntos: 0
Sonrisa Validacion de usuario y sesiones

Hola amigos:

Estoy muy enredada con este código y les pido por favor que me ayuden. El asunto es que tengo una página index.php en donde el usuario debe loguearse y el action llama a aut_verifica.inc.php:

form action="aut_verifica.inc.php" method="post" name="form1">
<table width="160" border="0" cellspacing="0" cellpadding="0">
<tr>
<th scope="row"><img border="0" src="../images/p_env.jpg" width="160" height="26">
<table width="160" border="0" cellpadding="0" cellspacing="0" background="../images/fon_l.gif">
<tr>
<th scope="row"><img border="0" src="../images/log.gif" width="83" height="18">
<input name="usuario" type="text" id="usuario" size="15" maxlength="40"></th>
</tr>
<tr>
<th scope="row"><img border="0" src="../images/pas.gif" width="83" height="14">
<input name="pass" type="password" id="pass2" size="15" maxlength="40"></th>
</tr>
<tr>
<th scope="row"><input type="submit" name="Submit" value="Aceptar"></th>
</tr>
</table></th>
</tr>
<tr>
<th scope="row"><img border="0" src="../images/ll5.jpg" width="160" height="21"></th>
</tr></table></form>

En el archivo aut_verifica.inc.php pasa lo siguiente:<?
// incia sessiones
session_start();
// Motor autentificación usuarios.
$_POST['usuario'];
$_POST['pass'];
// Cargar datos conexion y otras variables.
require ("config.php");

// chequear página que lo llama para devolver errores a dicha página.

$url = explode("?",$_SERVER['HTTP_REFERER']);
$pag_referida=$url[0];
//echo $pag_referida;
$redir=$pag_referida;
// chequear si se llama directo al script.
if ($_SERVER['HTTP_REFERER'] == " "){
die ("<b><center>Error cod.:1 - Acceso incorrecto! -- Debe usted validar su pase para entrar en Xcompras.<br><br><a href='index.php'>Pinchar aquí para validarse</a></center></b>");
exit;
}

// Chequeamos si se está autentificandose un usuario por medio del formulario
if (isset($_POST['usuario']) && isset($_POST['pass'])) {

// Conexión base de datos.
// si no se puede conectar a la BD salimos del scrip con error 0 y
// redireccionamos a la pagina de error.
$db_conexion= mysql_connect("$Servidor", "$Usuario", "$Password") or die(header ("Location: $redir?error_login=0"));
mysql_select_db("$BaseDeDatos");

// realizamos la consulta a la BD para chequear datos del Usuario.
$usuario_consulta = mysql_query("SELECT usuario, pass FROM $sql_tabla WHERE usuario='".$_POST['usuario']."' AND pass='".$_POST['pass']."'") or die(header ("Location: $redir?error_login=1"));
// miramos el total de resultado de la consulta (si es distinto de 0 es que existe el usuario)
// miramos el total de resultado de la consulta (si es distinto de 0 es que existe el usuario)
if (mysql_num_rows($usuario_consulta) != 0) {

// eliminamos barras invertidas y dobles en sencillas
$usuario = stripslashes($_POST['usuario']);
// encriptamos el password en formato md5 irreversible.
$pass = ($_POST['pass']);

// almacenamos datos del Usuario en un array para empezar a chequear.
$usuario_datos = mysql_fetch_array($usuario_consulta);

// liberamos la memoria usada por la consulta, ya que tenemos estos datos en el Array.
mysql_free_result($usuario_consulta);
// cerramos la Base de dtos.
mysql_close($db_conexion);


// chequeamos el nombre del usuario otra vez contrastandolo con la BD
// esta vez sin barras invertidas, etc ...
// si no es correcto, salimos del script con error 4 y redireccionamos a la
// página de error.
if ($usuario != $usuario_datos['usuario']) {
header ("Location: error4.htm");
exit;}

// si el password no es correcto ..
// salimos del script con error 3 y redireccinamos hacia la página de error
if ($pass != $usuario_datos['pass']) {
header ("Location: error3.htm");
exit;}

// Paranoia: destruimos las variables usuario y pass usadas
unset($usuario);
unset ($pass);

// En este punto, el usuario ya esta validado.
// Grabamos los datos del usuario en una sesion.

// le damos un mobre a la sesion.
session_name($usuarios_sesion);

// Paranoia: decimos al navegador que no "cachee" esta página.
session_cache_limiter('nocache,private');

// Asignamos variables de sesión con datos del Usuario para el uso en el
// resto de páginas autentificadas.

// definimos usuarios_ci como IDentificador del usuario en nuestra BD de usuarios
$_SESSION['usuario_ci']=$usuario_datos['ci'];

//definimos usuario_usuario con el usuario del usuario de nuestra BD de usuarios
$_SESSION['usuario_usuario']=$usuario_datos['usuario'];

//definimos usuario_password con el password del usuario de la sesión actual (formato md5 encriptado)
$_SESSION['usuario_pass']=$usuario_datos['pass'];

// Hacemos una llamada a si mismo (scritp) para que queden disponibles
// las variables de session en el array asociado $HTTP_...
$pag=$_SERVER['PHP_SELF'];
Header ("Location: $pag?");
exit;

} else {
// si no esta el nombre de usuario en la BD o el password ..
// se devuelve a pagina q lo llamo con error
header ("Location: error2.htm");
exit;}
} else {

// -------- Chequear sesión existe -------

// usamos la sesion de nombre definido.
session_name($usuarios_sesion);
// Iniciamos el uso de sesiones
@session_start();

// Chequeamos si estan creadas las variables de sesión de identificación del usuario,
// El caso mas comun es el de una vez "matada" la sesion se intenta volver hacia atras
// con el navegador.

if (!isset($_SESSION['usuario_usuario']) && !isset($_SESSION['usuario_pass'])){
// Borramos la sesion creada por el inicio de session anterior
session_destroy();
die ("Location: 2 - Acceso incorrecto!");
exit;
}
}
?>

Bueno primero que nada quisiera saber si esto tiene errores y lo segundo es que después de verificar el usuario y password y crear la sesion debo redireccionarlo a una pagina llamada menu.php. ¿Cómo hago esto y en qué parte del código lo coloco?

Por favor ayudenme con esto que ya estoy mareada de tanto darle vueltas

Gracias
  #2 (permalink)  
Antiguo 04/04/2007, 16:32
 
Fecha de Ingreso: septiembre-2004
Ubicación: Lima
Mensajes: 141
Antigüedad: 19 años, 7 meses
Puntos: 0
Re: Validacion de usuario y sesiones

Podrias subirlo en un link para poder descargarlo , gracias
__________________
"Es mejor arder del todo ke consumirse poco a poco"
  #3 (permalink)  
Antiguo 05/04/2007, 20:41
 
Fecha de Ingreso: abril-2007
Mensajes: 1
Antigüedad: 17 años
Puntos: 0
Re: Validacion de usuario y sesiones

lo mas util para una redireccion seria hacerle un archivo nuevo llamado redirect o algo asi, podrias ponerle variables faciles de redireccion. El codigo que te recomiendo usar es algo como:
<?php
header("Location: menu.php");
?>


Si quieres que la redireccion dure unos segundos podrias meterle despues de:
header("Location: menu.php");
Algo parecido a:
set("DurationSet: 3 Sec.")
Tambien Podrias Meter la redireccion en cualquier archivo ya con codigo php, modificandolo asi:
<?php
Codigo de fuente del archivo aqui
header("Location: menu.php");
?>

No es muy seguro usar la variable:
set("DurationSet: 3 Sec."), porque no la he probado bien y no se si se codificaria correctamente, si alguien sabe mas por favor dejenlo.

Espero te sirva la ayuda!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:43.