Foros del Web » Programando para Internet » PHP »

Problema con sesiones...

Estas en el tema de Problema con sesiones... en el foro de PHP en Foros del Web. Saludos de nuevo, Estoy creando una paginilla que para verla requiera hacer un pequeño login. Estoy intentandolo mediante sesiones. Primero estoy probando!! Buscando...encontre en las ...
  #1 (permalink)  
Antiguo 24/06/2008, 08:47
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Problema con sesiones...

Saludos de nuevo,

Estoy creando una paginilla que para verla requiera hacer un pequeño login.
Estoy intentandolo mediante sesiones. Primero estoy probando!!

Buscando...encontre en las faqs de este foro una manera:
http://www.forosdelweb.com/860238-post129.html

Tengo el archivo index, y el segura.php
Lo tengo exactamente como pone en el ejemplo, pero cuando me logueo, me dice que si, que he conseguido loguearme como test, pero al darle a segura.php
me dice que no estoy logueado

Que sucede en ese código que por lo visto no funciona en su totalidad?¿?¿
Mucahs gracias,
  #2 (permalink)  
Antiguo 24/06/2008, 08:51
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 16 años
Puntos: 43
Respuesta: Problema con sesiones...

coloca el codigo para entender cual es el problema.
esposible que no estes colocando session_start(), pero sin ver el codigo no podemos ayudarte mucho!, es obvio que algo esta mal en la implementacion de este script de las faq´s

Saludos
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #3 (permalink)  
Antiguo 24/06/2008, 10:53
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Respuesta: Problema con sesiones...

Saludos the_web_saint,
No coloqué el código ya que lo estaba probando exactamente, como esta en las FAQ.

Este es;
index.php

Código PHP:
<?php
session_start
();
?>
<html>
<head>
<title>Las sesiones y Yo(Nefertiter)</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<table width="500" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td><?php
if(isset($_POST['enviar'])){
if(empty(
$_POST['usuario']) || empty($_POST['password']))
echo 
'Debes llenar todos los datos';
elseif(
$_POST['usuario']==test and $_POST['password']==test){
$_SESSION['usuario']=$_POST['usuario'];
$_SESSION['password']=$_POST['password'];
echo 
'Te haz loguedo como '.$_SESSION['usuario'];
}
}

?></td>
<td rowspan="2"><form name="login" method="post" action="index.php">
<table width="250" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td>Usuario:</td>
<td><input name="usuario" type="text" id="usuario"></td>
</tr>
<tr>
<td>Password:</td>
<td><input name="password" type="password" id="password"></td>
</tr>
<tr align="center">
<td colspan="2"><input name="enviar" type="submit" id="enviar" value="Enviar"></td>
</tr>
</table>
</form></td>
</tr>
<tr>
<td><a href="segura.php">PAGINA SEGURA</a></td>
</tr>
</table>
</body>
</html>
segura.php
Código PHP:
<?php
session_start
();
if(!empty(
$_SESSION['usuario'])){
/* La funcion empty() devuelve verdadero si el argumento posee un valor vacio,
al usar !empty() devuelve verdadero no solo si la variable fue declarada sino
ademas si contiene algun valor no nulo.
*/
echo 'Te haz logueado como :'.$_SESSION['usuario'];
echo 
'Haz logrado el acceso a una pagina segura';
}else{
echo 
'No estas logueado<br>';
echo 
'Esta pagina es restringida!';
}
?>
Como dije anteriormente, el problema esta en segura, que nose porque, pero al loguearme, y darle para ver segura.php, me dice que es zona restringida...

Saludos y gracias,
  #4 (permalink)  
Antiguo 24/06/2008, 11:07
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Problema con sesiones...

Prueba este código:
Código PHP:
<?php
session_start
();
?>
<html>
<head>
<title>Las sesiones y Yo(Nefertiter)</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<table width="500" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td><?php
if(isset($_POST['enviar'])){
if(empty(
$_POST['usuario']) || empty($_POST['password']))
echo 
'Debes llenar todos los datos';
elseif(
$_POST['usuario']=="test" and $_POST['password']=="test"){
$_SESSION['usuario']=$_POST['usuario'];
$_SESSION['password']=$_POST['password'];
echo 
'Te haz loguedo como '.$_SESSION['usuario'];
}
}

?></td>
<td rowspan="2"><form name="login" method="post" action="index.php">
<table width="250" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td>Usuario:</td>
<td><input name="usuario" type="text" id="usuario"></td>
</tr>
<tr>
<td>Password:</td>
<td><input name="password" type="password" id="password"></td>
</tr>
<tr align="center">
<td colspan="2"><input name="enviar" type="submit" id="enviar" value="Enviar"></td>
</tr>
</table>
</form></td>
</tr>
<tr>
<td><a href="segura.php">PAGINA SEGURA</a></td>
</tr>
</table>
</body>
</html>
Saludos.
  #5 (permalink)  
Antiguo 24/06/2008, 11:07
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 16 años
Puntos: 43
Respuesta: Problema con sesiones...

pues a mi me funciona muy bien.

Fijate si tienes bien configurado en el php.ini las variables de session....
Saludos
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #6 (permalink)  
Antiguo 24/06/2008, 12:11
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Respuesta: Problema con sesiones...

Cierto!! Era por ese despiste jeje, gracias ;)

No se si sera más seguro o no, pero me gustaria que el logueo fuera comprobado con los datos que hay en la BD.
Si actualmente para loguearte, basta con modificar esta linea
Código PHP:
elseif($_POST['usuario']=="test" and $_POST['password']=="test"){ 
Como habria que hacerlo para que se logueara de acuerdo con los datos que haya en la BD?!

Gracias,
  #7 (permalink)  
Antiguo 24/06/2008, 12:21
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Problema con sesiones...

Tienes que conectar a la base de datos, realizar un query y ahí comprobar si el user y el password existen y son iguales, si son iguales entonces permites la entrada.

Saludos.
  #8 (permalink)  
Antiguo 24/06/2008, 12:26
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 16 años
Puntos: 43
Respuesta: Problema con sesiones...

seria mas o menos como:

Cita:
$usuario=$_REQUEST['user'];
$password=$_REQUEST['pass'];
if (!(empty($usuario))) //SI LA VARIABLE CONTIENE DATOS COMPARARA CON LA DB SI EXISTE EL USUARIO
{
$sql = "SELECT * from tbl_usuarios where usuario = '$usuario' and pwd = SHA1('$password')";
$resultado = mysql_query($sql, $link);
$filas_rs = mysql_num_rows($resultado); //CUENTA LAS FILAS DEL RESULTADO DEL QUERY
if ($filas_rs == 0)//SI ES CERO INDICA QUE NO EXISTE TAL USUARIO CON ESE PSW
{
echo("<script language=\"JavaScript\">
alert(\"Verifique el nombre de usuario y contraseña\");
</script>");
echo("<html>
<head><title></title>
<meta http-equiv=\"refresh\" content=\"1\"; URL=http://test.com\">
</HEAD>
<BODY onLoad=\"document.location='../index.php'\">
</body>
</html>");
}
}
esto es lo basico claro que hace falta mas....
si ves se muestra como comparar con los datos de la DB..

Saludos
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
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 11:38.