Foros del Web » Programando para Internet » PHP »

Problemas con sesiones

Estas en el tema de Problemas con sesiones en el foro de PHP en Foros del Web. Hola. Tengo un problema con el inicio de sesiones, por favor alguien que me oriente. Tengo una seccion en la web donde inicia sesion solo ...
  #1 (permalink)  
Antiguo 20/02/2006, 15:35
Avatar de Ciberdanny  
Fecha de Ingreso: marzo-2005
Ubicación: Distrito Federal
Mensajes: 208
Antigüedad: 19 años, 1 mes
Puntos: 1
Problemas con sesiones

Hola.

Tengo un problema con el inicio de sesiones, por favor alguien que me oriente.

Tengo una seccion en la web donde inicia sesion solo una persona, para ello he creado 3 secciones que estan restringidas mediante un:

<?include ("seguridad.php");?>

en las paginas que estan protegidas y el archivo seguridad.php contiene esto:

<?
session_start();
if ($_SESSION["sesion"] != "SI") {
header("Location: error.php");
exit();
}
?>

Esto quiere decir que si no existe la sesion "sesion" me manda a la pagina error.php y todo funciona bien, si quiero antrar a alguna pagina protegida me envia a error.php.

AHORA EL PROBLEMA:

Al iniciar la sesion en una pagina protegida de esta forma:

<?php
$username = "usuario";
$password = "password";
if ($_POST['usuario'] != $username || $_POST['password'] != $password) {
session_register('$username');
?>

pagina de bienvenida

<?php
}else {
?>
<p>

pagina protegida

</p>
<?php
}
?>

Al entrar los datos de usuario y password todo bien y me pasa a la pagina protegida pero al momento de hacer click en los enlaces a las demás paginas protegidas me manda a error.php ¿porque? si se esta iniciando sesion?

¿donde me estoy equivocando?

Gracias de antemano y saludos a todos.
  #2 (permalink)  
Antiguo 20/02/2006, 15:43
Avatar de LoUiMaNiAkO  
Fecha de Ingreso: enero-2006
Mensajes: 198
Antigüedad: 18 años, 3 meses
Puntos: 1
Exclamación

bueno no se nada de php pero creo k deverias de explicar las si hablas de una pagina o 2,
y checar en tu php.ini si te permite iniciar sessiones

Código PHP:

<?php 
$username 
"usuario";
$password "password"
if (
$_POST['usuario'] != $username || $_POST['password'] != $password) {
session_register('$username');
?>

pagina de bienvenida

<?php 
}else { 
?> 
<p>

pagina protegida

</p> 
<?php 

?>
si este codigo esta en otra pagina creo k te falta el session star, pero bueno esperemos a k los expertos de este foro ayuden conla respuesta correcta
__________________
:molesto: "Soy como dios k nunca llora y como satanas k nunca resa":molesto:

Dejate seducir por mis colmillos
  #3 (permalink)  
Antiguo 20/02/2006, 15:48
Avatar de axy108  
Fecha de Ingreso: diciembre-2003
Ubicación: En frente de mi Computadora
Mensajes: 415
Antigüedad: 20 años, 4 meses
Puntos: 0
probablemente el error este en que no estas creando la session en tu pagina donde validas si el nombre de usuario y la contraseña son correctos, entonces cuando mandas a la otra pagina con el link, se crea una nueva session y en esta nueva las variables de session no estan creadas.

o es porque no estas creando la variable de session $_session['sesion']

Código PHP:
...
session_register('sesion');
$_session['sesion'] = SI;
... 
SALUDOS

__________________
Todos somos muy ignorantes :pensando: . Lo que ocurre es que no todos ignoramos las mismas cosas ;-) .... Albert Einstein :cool:
  #4 (permalink)  
Antiguo 20/02/2006, 16:04
Avatar de LoUiMaNiAkO  
Fecha de Ingreso: enero-2006
Mensajes: 198
Antigüedad: 18 años, 3 meses
Puntos: 1
Sonrisa

creo k enla pagina donde ingresas tu login y contraseña has de tener el action de tu formulario a una pagina por ejemplo Comprobar.php k verificara k sean correctos

te dejo este codigo k me pasaron aki mismo

Código PHP:
<?
//conecto con la base de datos
$conn mysql_connect("localhost","root","");
//selecciono la BBDD
mysql_select_db("ciber",$conn);

//Sentencia SQL para buscar un usuario con esos datos
$ssql "SELECT * FROM usuarios WHERE usuario='$usuario' and password='$password'";

//Ejecuto la sentencia
$rs mysql_query($ssql,$conn);

//vemos si el usuario y contraseña es váildo
//si la ejecución de la sentencia SQL nos da algún resultado
//es que si que existe esa conbinación usuario/contraseña
if (mysql_num_rows($rs)!=0){
    
//usuario y contraseña válidos
    //defino una sesion y guardo datos
    
session_start();
//aki inicio la session autentificado kon el valor = a "SI"
    
$_SESSION['autentificado']="SI";
 

    
header ("Location: Bienvenidos.php");
}else {
    
//si no existe le mando otra vez a la portada
    
header("Location: index_error");
}
mysql_free_result($rs);
mysql_close($conn);
?>
espero k te sirva
__________________
:molesto: "Soy como dios k nunca llora y como satanas k nunca resa":molesto:

Dejate seducir por mis colmillos
  #5 (permalink)  
Antiguo 21/02/2006, 16:25
Avatar de Ciberdanny  
Fecha de Ingreso: marzo-2005
Ubicación: Distrito Federal
Mensajes: 208
Antigüedad: 19 años, 1 mes
Puntos: 1
De acuerdo Ok, muchisimas gracias

muchas gracias por sus respuestas, me han ayudado muchisimo, he probado todas las respuestas y todas me han funcionado a la perfeccion.

Ahora solo a decidir cual opcion me queda mejor.

Gracias a todos de nuevo por la ayuda.

Saludos desde méxico.
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 06:25.