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. Hola buenas, Pues estoy creando un sistema de usuarios pero no me funciona bien,de tanto probar y probar me decidi por hacer algo mucho mas ...
  #1 (permalink)  
Antiguo 23/10/2006, 11:54
Avatar de limboings  
Fecha de Ingreso: enero-2005
Mensajes: 794
Antigüedad: 19 años, 2 meses
Puntos: 2
Problema con sesiones

Hola buenas,

Pues estoy creando un sistema de usuarios pero no me funciona bien,de tanto probar y probar me decidi por hacer algo mucho mas sencillo,y ver como funcionan las sesiones asi que hice esto:
Código PHP:
<?php
session_start
();
?>
<html>
<head>
</head>
<body>
<?php
session_register
("p");

if(
session_is_registered("p")){
echo
"entraste";
}else{
echo 
"privado";
}
?>
</body>
</html>
He probado esto y no me funciona,que falla?? trabajo con php5 y apache 2,bueno gracias de antemano!

Un Saludo!!
  #2 (permalink)  
Antiguo 23/10/2006, 12:03
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
NOOO, no uses session_register() .. ese modo de usar sesiones ES OBSOLETO e inseguro para tu aplicación. Usa los arrays superglobales: $_SESSION.

más info:
www.php.net/session

Revisa estas FAQ's del foro de PHP también:
http://www.forosdelweb.com/showpost....&postcount=129

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 23/10/2006, 12:13
Avatar de limboings  
Fecha de Ingreso: enero-2005
Mensajes: 794
Antigüedad: 19 años, 2 meses
Puntos: 2
Hola buenas,

Muchas gracias cluster

Un Saludo!!
  #4 (permalink)  
Antiguo 23/10/2006, 12:27
Avatar de limboings  
Fecha de Ingreso: enero-2005
Mensajes: 794
Antigüedad: 19 años, 2 meses
Puntos: 2
Hola de nuevo,

Entonces el script de ejemplo seria asi:
Código PHP:
<?php
session_start
();
?>
<html>
<head>
</head>
<body>
<?php
$_SESSION
['p'];

if(
$_SESSION['p']){
echo
"entraste";
}else{
echo 
"privado";
}
?>
</body>
</html>
o como seria?

Un Saludo!
  #5 (permalink)  
Antiguo 23/10/2006, 13:42
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Lo que expusistes no tiene sentido ...

1) NO puedes esperar ver el valor de una variable de sesión en el mismo flujo de un script al crearla . .ese no será su valor real (aunque te coincida).

2) No uses "if($variable) para hacer una validación de que "exista" tal variable .. usa mejor isset() o empty()

3) Dá algún valor a tu variable de sesión .. aunque sea un "boolean" (true/false) ..
uno.php
Código PHP:
<?php
session_start
();
$_SESSION['p']=TRUE;
header ("Location: dos.php");
exit;
?>
dos.php
Código PHP:
<?php
session_start
();
if (!isset(
$_SESSION['p'])){
 die (
"Error");   
}
<
html>
<
head>
</
head>
<
body>
Entrastes.
</
body>
</
html>
Ejecuta uno.php .. este te redireccionará a dos.php y te mostrará el mensaje "Entrastes" .. Si entras a dos.php directo .. veras el mensaje "error". (todo esto si el SID se propaga por cookies y tu navegador lo acepta . .cosas a tener en cuenta).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 23/10/2006, 14:08
Avatar de limboings  
Fecha de Ingreso: enero-2005
Mensajes: 794
Antigüedad: 19 años, 2 meses
Puntos: 2
Hola buenas,

He probado el ejemplo de el post de la faq,puse en usuario test y en contraseña test y no me funciona... es un ejemplo que funciona digo yo,pero ami no,que puede ser? el php.ini quizas?

Un Saludo!!
  #7 (permalink)  
Antiguo 23/10/2006, 14:55
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por limboings Ver Mensaje
Hola buenas,

He probado el ejemplo de el post de la faq,puse en usuario test y en contraseña test y no me funciona... es un ejemplo que funciona digo yo,pero ami no,que puede ser? el php.ini quizas?

Un Saludo!!
Pero que significa "no me funciona"? .. que es lo que hace el código exactamente?

Cita:
pero ami no,que puede ser? el php.ini quizas?
Si, las sesiones son altamente configurables y de esta depende como se comporte tu código .. Si no conoces en que afecta la configuración de PHP al uso de sesiones .. deberías empezar por ahí.

www.php.net/session

Prueba el ejemplo más simple si cabe que te expuse en este mensaje.

Realmente debes aportar más datos . .hay decenas de sitios donde ver y cosas que considerar .. Que versión de PHP usas? .. que configuración de PHP usas sobre sesiones? .. conoces que es el "SID"? .. ya te leistes la teroría sobre sesiones? (la entiendes?) ... Pregunta todo lo que tengas dudas. Por suerte para tí (si .. dije suerte) no te funcionaron a la primera .. esto te hará ver como funcionan las sesiones

(PD: el día que me pasó a mi es cuando empecé a enteder realmente que son las sesions y como funcionana .. y ahora aquí me ven .. Antes sólo me funcionaban los sistemas hechos con sesiones y no sabía ni por qué ... )

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 23/10/2006, 15:38
Avatar de limboings  
Fecha de Ingreso: enero-2005
Mensajes: 794
Antigüedad: 19 años, 2 meses
Puntos: 2
Hola buenas,

Si,sé lo que son las sesiones,o eso creo,segun entendi es para trabajar en una cadena de paginas manteniendo el valor de cada una de la sesiones y la SID segun he leido es el identificador de session que es unico para cada usuario que accede a la web,esta bien?.Pues el codigo del ejemplo del faq me muestra que no pude hacer login:
Código 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>';//Me muestra esto
echo 'Esta pagina es restringida!';//Y esto 
Bueno,la version de php que tengo es la 5 y utilizo apache 2,tengo instalado el wamp,puedo cambiar a la version 4 de php,la configuracion de las sesiones es esta:
Código:
session
Session Support 	enabled
Registered save handlers 	files user sqlite
Registered serializer handlers 	php php_binary wddx

Directive	Local Value	Master Value
session.auto_start	Off	Off
session.bug_compat_42	On	On
session.bug_compat_warn	On	On
session.cache_expire	180	180
session.cache_limiter	nocache	nocache
session.cookie_domain	no value	no value
session.cookie_lifetime	0	0
session.cookie_path	/	/
session.cookie_secure	Off	Off
session.entropy_file	no value	no value
session.entropy_length	0	0
session.gc_divisor	100	100
session.gc_maxlifetime	1440	1440
session.gc_probability	1	1
session.hash_bits_per_character	4	4
session.hash_function	0	0
session.name	PHPSESSID	PHPSESSID
session.referer_check	no value	no value
session.save_handler	files	files
session.save_path	C:/wamp/sesiones/	C:/wamp/sesiones/
session.serialize_handler	php	php
session.use_cookies	On	On
session.use_only_cookies	Off	Off
session.use_trans_sid	0	0
Bueno,espero que ahora haya dado la informacion necesaria.

Un Saludo y gracias cluster!!
  #9 (permalink)  
Antiguo 23/10/2006, 15:46
Avatar de limboings  
Fecha de Ingreso: enero-2005
Mensajes: 794
Antigüedad: 19 años, 2 meses
Puntos: 2
Hola buenas,

El script que me pusiste tampoco me funciona,bueno si y no,me aparace Entrastes y si quito el ! me aparece Error pero si cambio $_SESSION['p']=TRUE; por $_SESSION['pr']=TRUE; sin cambiar el if de dos.php me sigue dando el mismo resultado..

Un Saludo!!
  #10 (permalink)  
Antiguo 23/10/2006, 18:13
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Según tu configuración de sesiones, el SID lo propagas en cookies (lo cual es bueno y seguro).

Así que ahora te toca revisar que tu navegador no esté bloqueando esas cookies que PHP intenta crear. Revisa tus niveles de seguridad y todo lo referente a cookies. También si usas firewalls o suite's de antivirus que incorporan funcionalidades de bloque de cookies .. e incluso "barras de navegador" (de google, yahoo, etc.. ) revisa que NO estén bloqueando esas cookies (de "sesión" en concreto y lo más probable que no "certificadas").

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #11 (permalink)  
Antiguo 24/10/2006, 04:15
Avatar de limboings  
Fecha de Ingreso: enero-2005
Mensajes: 794
Antigüedad: 19 años, 2 meses
Puntos: 2
Hola buenas,

Mmmm oye pero si yo tengo que hacer todo eso para poder probarlo..mis usuarios que entren tambien deveran comprobarlo..por tanto,no es un poco engorroso para el usuario tener que activar cookies,mirar firewalls etc..

Un Saludo..
  #12 (permalink)  
Antiguo 24/10/2006, 05:07
Avatar de limboings  
Fecha de Ingreso: enero-2005
Mensajes: 794
Antigüedad: 19 años, 2 meses
Puntos: 2
Hola buenas,

Todo lo que dices o no lo tengo o tengo activadas las cookies,firewall como no sea el de windows..y lo tengo desctivado,lo unico es en opciones de internet pero no se si eso afecta al firefox,tengo la seguridad y la privacidad todo a nivel medio..pone algo de que bloquea y restringe cookies de terceros..

Un Saludo!!
  #13 (permalink)  
Antiguo 24/10/2006, 05:43
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por limboings Ver Mensaje
Hola buenas,

Mmmm oye pero si yo tengo que hacer todo eso para poder probarlo..mis usuarios que entren tambien deveran comprobarlo..por tanto,no es un poco engorroso para el usuario tener que activar cookies,mirar firewalls etc..

Un Saludo..
No .. no es engorroso para el usuario que realmente sabe que son las cookies, por qué si tu dejas a cualquier programa que haga lo que quiera sin saber .. así llegan los problemas. Me podrás decir que no todo el usuario "común" tiene ese nivel .. pero si te fijas .. el 99% de problemas que tiene uno en la navegación en internet son originados por desconocimiento de los usuarios de lo que tienen y usan, cuantos problemas he visto aquí de gente que no sabía ni que tenía un firewall instalado .. otros tantos que no saben en que afecta todo eso de "nivel de seguridad" que hablan sus navegadores .. en fin .. (esta es mi opinión .. sólo).

Tu debes avisar a tus usuarios que es por su seguridad.

Cita:
unico es en opciones de internet pero no se si eso afecta al firefox,tengo la seguridad y la privacidad todo a nivel medio..pone algo de que bloquea y restringe cookies de terceros..
Ajusta también eso .. por lo menos para tus pruebas.

Por otro lado .. no sé como estás probando tu aplicación .. si en tu PC como servidor local o como. Pero .. las cookies para que sean "seguras" o mejor dicho "confiables" para un navegador se han de originar de un domino válido entre otras cosas .. así que en esas condiciones cualquier configuración de un navegador común dejaría o aceptaría esas cookies (yo nunca he tenido problemas al respecto .. por ejemplo .. Pero si que conozco bien que son las cookies y que software uso para "navegar" en internet!).

Con respecto a PHP y la cookie que PHP crea para propagar el SID .. en www.php.net/session tienes todas las directivas de configuración de esas cookies que en definitiva lo que significan o como se comporten es própio de las definiciones de cookies (no de "PHP" ni de sesiones ...). De hecho aparecen por ejemplo directivas como: cookie_path, cookie_domain, cookie_secure..

Por otro lado .. tienes a los diferentes navegadores en el mercado y como se comportan ellos con cookies .. sobre todo de "terceros". Hay muchos comentarios al respecto en php.net (apartado sesiones y comentarios de los usuarios).

Si tu no quieres problemas con "cookies" .. no propagues el SID en cookeis . .hazlo manualmanete en el URL, pero antes de eso leete este documento:

http://www.acros.si/papers/session_fixation.pdf

Y luego decide tu mismo ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #14 (permalink)  
Antiguo 24/10/2006, 06:31
Avatar de limboings  
Fecha de Ingreso: enero-2005
Mensajes: 794
Antigüedad: 19 años, 2 meses
Puntos: 2
Hola buenas,

Todo lo que hago lo pruebo en localhost,bueno tengo una dudilla el array superglobal $_SESSION[''] al definirlo se guarda en la session,me refiero a que si pongo por ejemplo $_SESSION['h'],ejecuto el script,luego pongo $_SESSION['s'] y quito $_SESSION['h'] este ultimo se pude acceder?no se si me explico..

Lo digo por que si pongo esto en el ejemplo.
userlog.php:
Código PHP:
<?php
session_start
();
$_SESSION['fp']=TRUE;
header ("Location: userlog1.php");
exit;
?>
userlog1.php:
Código PHP:
<?php
session_start
();
if (!isset(
$_SESSION['p'])){
 die (
"Error");   
}else{
echo
"<html>
<head>
</head>
<body>
Entrastes.
</body>
</html>"

}
?>
Esto me devuelve Entrastes,cosa que no entiendo.

Luego si lo hago de esta otra manera.
userlog.php:
Código PHP:
<?php
session_start
();
$_SESSION['p']=TRUE;
header ("Location: userlog1.php");
exit;
?>
userlog1.php:
Código PHP:
<?php
session_start
();
if (!isset(
$_SESSION['p'])){
 die (
"Error");   
 
session_destroy();
}else{
echo
"<html>
<head>
</head>
<body>
Entrastes.
</body>
</html>"

session_destroy();
}
?>
Esto en cambio me devuelve Entrastes en caso de que $_SESSION[''] sea $_SESSION['p'],en cualquier otro caso me devuelve error,por tanto asi si me funciona,por eso pregunto lo que he preguntado al principio..

Un Saludo y gracias!!
  #15 (permalink)  
Antiguo 24/10/2006, 07:03
Avatar de limboings  
Fecha de Ingreso: enero-2005
Mensajes: 794
Antigüedad: 19 años, 2 meses
Puntos: 2
Hola buenas,

Se me olvidaba,las sesiones que creo se me guardan en la carpeta que le indico en el php.ini ( lo logico ) al hacer session_start(); pero al hacer session_destroy(); no se eliminan de la carpeta ( ilogico no? ).

Un Saludo!
  #16 (permalink)  
Antiguo 24/10/2006, 07:18
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Vamos a ver .. tu tienes que tener claro que las sesioens sólo le pertenecen al cliente que las crea .. son própias e independientes de cada uno.

Los ejemplos que exponen de crear "fp" y luego ver "p" no tienen sentido .. Se comporta como se espera. No sé por qué tendrías que andar cambiando esos datos de tus variables de sesión (las que accedes) .. o crees que ese código llega al cliente para ejeuctarse en el? .. El código PHP se ejecuta en el -servidor!!!!-

Tus ejemplos no tienen sentido por qué tu defines una -variable- por un lado y por otro ves el valor -de otra variable- .. !!! .. Si tu creas "fp" y le das un valor .. ese es el valor que debes verificar en sub-siguientes scripts .. INSITO que un usuario en el "lado del cliente" NO VA a tocar esas "variables" en tu código PHP ..

Cita:
Se me olvidaba,las sesiones que creo se me guardan en la carpeta que le indico en el php.ini ( lo logico ) al hacer session_start(); pero al hacer session_destroy(); no se eliminan de la carpeta ( ilogico no? ).
No, no es ilógico . .no sé de donde te sacas que al hacer un "session_destroy()" se tenga que "eliminar isofacto" el archivo .. Aquí PHP maneja para las sesiones creadas un concepto de "recolector de basura" (garbage recolector) que no es más que "marcar" a la sesión como incativa y luego bajo ciertas condiciones (ejecuciones de session_start() en porcentaje que define otra directiva php.ini al respecto) .. ahí se eliminan esos archivos físicamente del servidor).

En definitiva ... antes de hacer afirmaciones te falta ver más sobre el tema (nos pasa a todos, .. pero es mejor: seguir documentandose que hacer conjeturas y darle vueltas a algo que no tienes confirmado 100%).


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #17 (permalink)  
Antiguo 24/10/2006, 11:05
Avatar de limboings  
Fecha de Ingreso: enero-2005
Mensajes: 794
Antigüedad: 19 años, 2 meses
Puntos: 2
Hola buenas,

No afirmaba,estaba preguntando,me explique mal.
Bueno,como me estoy dando cuenta que no se como funcionan exactamente,te paso por aqui los scripts y ves si tengo algo mal..
cacu.php:
Código PHP:
<?php
include("config.php");
include(
"fundb.php");
session_start();
?>
<html>
<head>
<title>Chriser Miniaturas</title>
<link href="es.css" rel="stylesheet" type="text/css" />
</head>
<body >
<div id="principal">
    <div id="cabecera">
        <div id="c1"></div>
        <div id="c2"></div>
        <div id="c3"></div>
    </div>
    <div id="cuerpo">
        <div id="cu1"></div>
        <div id="cu2"></div>
        <div id="cu3"></div>
        <div id="cu4"></div>
        <div id="cu5"></div>
        <div id="cu6"></div>
        <div id="cu7"></div>
        <div id="navegacion">        
            <div id="timenu"></div>
            <ul>
                <li><a href="la.php">La autora</a></li>
                <li><a href="link/">Nuestros Productos</a></li>
                <li><a href="link/">Tienda</a></li>
                <li><a href="link/">Proyectos DVD</a></li>
                <li><a href="link/">Pedidos</a></li>
                <li><a href="link/">Ferias</a></li>
                <li><a href="link/">Links</a></li>
                <li><a href="link/">Contactar</a></li>
            </ul>
            <div id="tiencuestas"></div>
        </div>
        
        <div id="opcionesuser">
            <ul id="menuser">
                <li><a href="link/">Perfil de Usuario</a></li>
                <li><a href="link/">¿Perdiste tu contrase&ntilde;a?</a></li>
                <li><a href="link/">¿Perdiste tu nombre de usuario?</a></li>
            </ul>
        </div>
        <div>
            <ul id="registro">
                <li><a href="re.php">¿Aun no eres usuario?¡Registrate!</a></li>
            </ul>
        </div>
        <div id="encuesta">
            <form>
                <p>¿Que producto<br /> le agrada mas?</p><br />
                <input type="radio" name="articulo" value="bolsos" /><p>Bolsos</p><br />
                <input type="radio" name="articulo" value="maletas" /><p>Maletas</p><br />
                <input type="radio" name="articulo" value="sillas"/><p>Sillas</p><br />
                <input type="radio" name="articulo" value="mesas"/><p>Mesas</p><br />
                <input type="radio" name="articulo" value="cajoneras"/><p>Cajoneras</p>
                <div id="votarbo"><input type="button" value="Votar" class="fondo"  /></div>
            </form>    
            <div id="resultencu">
                <pre class="encuesta">
                    Bolsos    |||| 25%
                    Maletas   |||| 25%
                    Sillas    |||| 25%
                    Mesas     |||| 25%
                    Cajoneras |||| 25%
                </pre>
            </div>
        </div>
        
        <div id="login">
            <?php
            $actual
=$_SERVER['PHP_SELF'];
            if(!
$_POST['login']){
                echo 
"<form method='post' action='$actual'>
                        <p>Usuario: </p><input type='text' name='usuario' value='Usuario' size='14px' />
                        <p>Contrase&ntilde;a: </p><input type='password' name='clave' value='clave' size='14px' />
                        <input type='submit' value='Login' class='alogin' name='login'/>
                        </form>"
;
            }
            if(
$_POST['login']){
                
            
$usuario=$_POST['usuario'];
            
$clave=$_POST['clave'];
            
$contrasenacryptcrypt($clave,"cs");
            if(
$usuario && $clave){
                if(    
login($usuario,$contrasenacrypt,$host,$usuariodb,$contrasenadb,$basedatos) == 1){
                             
$valid_usuario $usuario;
                            
$_SESSION['valid_usuario']=$valid_usuario;
                        if(
date("G") == || date("G") == 7
                       
|| date("G") == || date("G") == 9
                       
|| date("G") == 10 || date("G") == 11
                        
||   date("G") == 12 || date("G") == 13){echo "<p>Bienvenido/a ".$_SESSION['valid_usuario'].",te deseamos buenos dias</p>";} 
                        elseif(
date("G") == 14 || date("G") == 15
                            
||    date("G") == 16 || date("G") == 17
                            
||    date("G") == 18 || date("G") == 19
                            
||    date("G") == 20 || date("G") == 21){echo "<p>Bienvenido/a ".$_SESSION['valid_usuario'].",te deseamos buenos tardes</p>";} 
                        elseif(
date("G") == 22 || date("G") == 23
                            
||    date("G") == || date("G") == 1
                            
||    date("G") == || date("G") == 3
                            
||    date("G") == || date("G") == 5){echo "<p>Bienvenido/a ".$_SESSION['valid_usuario'].",te deseamos buenos noches</p>";}
                    echo  
"<form method='post' action='$actual'><input type='submit'  value='Logout' class='alogin' name='logout' style='left: 376px;'  /></form>";
                    if(
$_POST['logout']){
                        
                        echo 
"Se cambioooo logggggggggggggggggggggggggggggggouuuuutttttttttttt";
                    }
                    if(
$_POST['logout']){
                    echo 
"jejejfggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggge";
                    
$usuario=$_POST['usuario'];
                    
$valid_usuario $usuario;
                    
$_SESSION['valid_usuario']=$valid_usuario;
                        unset(
$_SESSION['valid_usuario']);
                    }
                }else{
                echo 
"<p>La contrase&ntilde;a/nombre de usuario son incorrectos.</p>";
                echo  
"<a href='$actual'>Volver.</a>";
                }
                }else{
                echo 
"<p>Los campos no han sido rellenados.</p>";
                echo  
"<a href='$actual'>Volver.</a>";
                }
            }
            
?>
            
        </div>
        <div id="buscar">
            <form>
                <p>Buscar Producto: </p><input type="text" name="buscar" value="Producto a buscar" size="16px" /><br />
                <div id="buscarbo"><input type="button" value="Buscar"  class="fondo" /></div>
            </form>
        </div>
        
    </div>
    </div>
fundb.php:
Código PHP:
function login($username$password,$host,$usuariodb,$contrasenadb,$basedatos){
  
// connect to db
  
$conn conectardb($host,$usuariodb,$contrasenadb,$basedatos);
  if (!
$conn)
    return 
0;

  
// check if username is unique
  
$result mysql_query("select * from usuarios
                         where nombre = '$username'
                         and contrasena = '$password'"
);
  if (!
$result)
     return 
0;

  if (
mysql_num_rows($result) > 0){
    return 
1
     }else{
     return 
0;
     }
}
function 
comprobar_usuario()
// see if somebody is logged in and notify them if not
{
  global 
$valid_usuario;
  if (isset(
$_SESSION['valid_usuario'])){
  echo 
"Siii";
  return 
true;
  }else{
  
    echo 
"<h2>Privado</h2>";
      echo 
"<p>Este apartado es solo para usuarios registrados,porfavor haga login.Si no esta registrado/a,registrese haciendo click <a href='re.php'>aqui</a>.</p>";
      echo 
"<br>";
    return 
false;
}  exit;
  } 
la.php:
Código PHP:
<?php
include("cacu.php");
?>        
    <div id="tituloapar" style="background-image: url(imagenes/titulore.png);"></div>
    <div class='contenido'>
        <div class='cabeceracontenido'>
        <div class='piecontenido'>
            <div class="autora">
            <?php
                
if(comprobar_usuario() == true){
                    echo 
"<h2>La autora</h2>
                    <p>Este es el texto de la autora</p>"
;
                    }
            
?>
            </div>
       </div>
       </div>
    </div>
<?php
include("pie.php");
?>
Bueno hay te dejo los scripts para que veas como lo hago,seguro que ves mil y un fallo ( es mi primera aplicacion medio compleja ),pero igual no es que tenga problemas con las sesiones,igual esque algo lo hago mal YO.

Un Saludo y gracias de nuevo!
  #18 (permalink)  
Antiguo 24/10/2006, 11:42
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
No he revisado el código que expones ni probado al 100% .. pero al parecer el manejo de sesiones que hace es correcto (usa los arrays superglobales: $_SESSION) ..

Pero ya te digo que TÚs problemas no pasan por "el código" que usas -sino- por la configuración de PHP sobre sesiones y de las condiciones de pruebas en tu caso.

Ya te he indicado que TU configuración de PHP propaga el SID en cookies. El último código que presentas realmente no exige (como los otros que usaban "header("Location ....")") que se propague el SID en cookies .. podría ser por el URL, pero .. lo que es tú código no lo hace manualmente y tu configuración actual menos.

Yo te recomiendo que insistas en ver el problema que tienes con tus cookies en tus pruebas.

Si quieres .. propaga el SID en el URL .. para eso modifica tu PHP.ini:

session.use_trans_sid = 1
session.use_cookies = 0
session.use_only_cookies = 0
(cada cambio en tu php.ini implica reiniciar tu servidor .. al menos Apache).


Y .. recueda que PHP no va a insertar el SID en todos los casos .. sólo lo hace en ciertos tag's HTML de tipo link, formularios HTML y poco más .. En otros casos tienes que insertar el SID a mano como parte del URL al que redireccionas o llamas. Esto lo indica la documentación oficial de PHP sobre sesiones ... por favor, leela y pregunta -dudas- concretas que tengas ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #19 (permalink)  
Antiguo 24/10/2006, 12:05
Avatar de limboings  
Fecha de Ingreso: enero-2005
Mensajes: 794
Antigüedad: 19 años, 2 meses
Puntos: 2
Hola buenas,

Creo que no te lo he dicho,pero el ejemplo de la faq que me distes,con un formulario de usuario y contraseña,despues de hacer varios cambios en opciones de internet me funciona,asi que el codigo de arriba me deveria funcionar,pero no lo hace..yo creo que ahora es error del codigo..cuando tengas tiempo,si lo puedes probar y decirme si ati te funciona te lo agradeceria,lo de la documentacion de las sesiones ya me lo lei..

Un Saludo!
  #20 (permalink)  
Antiguo 24/10/2006, 12:12
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por limboings Ver Mensaje
Hola buenas,

Creo que no te lo he dicho,pero el ejemplo de la faq que me distes,con un formulario de usuario y contraseña,despues de hacer varios cambios en opciones de internet me funciona,asi que el codigo de arriba me deveria funcionar,pero no lo hace..yo creo que ahora es error del codigo..cuando tengas tiempo,si lo puedes probar y decirme si ati te funciona te lo agradeceria,lo de la documentacion de las sesiones ya me lo lei..

Un Saludo!
Te comento ya (para no crear falsas espectativas) que no lo voy a poder probar .. si puedo lo veré ...

Yo ya hice mi própio sistema al respecto .. por si quieres verlo:
http://php.cluster-web.com/autentificator

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #21 (permalink)  
Antiguo 24/10/2006, 12:39
Avatar de limboings  
Fecha de Ingreso: enero-2005
Mensajes: 794
Antigüedad: 19 años, 2 meses
Puntos: 2
Hola buenas,

El link a hotscripts hacia tu script no funciona.

Un Saludo!
  #22 (permalink)  
Antiguo 24/10/2006, 13:39
 
Fecha de Ingreso: octubre-2006
Mensajes: 2
Antigüedad: 17 años, 6 meses
Puntos: 0
De acuerdo Como caducan las sesiones

un saludos a todos los miembros del foro, estoy trabanjando con sesiones en php y quiero saber que instrucciones uso para que la sesion caducan en cierto tiempo. he investigado un poco y estoy un confundido, si usar usar una cookies o utilizar el cache del server para esto, estoy seguro q aqui me van ayudar. Gracias
  #23 (permalink)  
Antiguo 24/10/2006, 13:59
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por limboings Ver Mensaje
Hola buenas,

El link a hotscripts hacia tu script no funciona.

Un Saludo!
mm Bueno .. es probable que no funcione .. (hace unos días pagué el dominio con retraso xDD .. así .. De todas formas no es e link hacia "hotscripts" .. es mi própio domino). Si me contactas por Mensaje Privado te lo podría hacer llegar por otro médio.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #24 (permalink)  
Antiguo 24/10/2006, 14:15
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por daje01 Ver Mensaje
un saludos a todos los miembros del foro, estoy trabanjando con sesiones en php y quiero saber que instrucciones uso para que la sesion caducan en cierto tiempo. he investigado un poco y estoy un confundido, si usar usar una cookies o utilizar el cache del server para esto, estoy seguro q aqui me van ayudar. Gracias
Inicia un nuevo tema por favor ..

Si bien aquí tratamos sesionse .. el tema de la "expiración" de una sesión a cierto tiempo amerita otro tema (entre otras cosas por qué PHP no trata el tema de expiración de sesiones en forma individual ... sino en conjunto para todas las que se crean en el servidor ..)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #25 (permalink)  
Antiguo 24/10/2006, 14:36
Avatar de limboings  
Fecha de Ingreso: enero-2005
Mensajes: 794
Antigüedad: 19 años, 2 meses
Puntos: 2
Hola buenas cluster,

Oye creo que con estos cuantos posts que me has ayudado..y que ahora te diga que lo que fallaba era tan solo que un if estaba mal colocado,me matas.jaja

Supongo que estos fallos los tiene el novato.Ya he conseguido que funcione,lo que fallaba era este if:
Código PHP:
if($_POST['logout']){
                    echo 
"jejejfggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggge";
                    
$usuario=$_POST['usuario'];
                    
$valid_usuario $usuario;
                    
$_SESSION['valid_usuario']=$valid_usuario;
                        unset(
$_SESSION['valid_usuario']);
                    } 
Lo puse fuera y me funciono,sabrias decirme el por que de esto? por que estaba dentro de un if que se cumplia,con un formulario que contenia un boton,de ese boton recivia una variable por post que es la que utilizo en el if de arriba para desloguearse..lo he hecho por probar y me ha salido bien,pero aun no comprendo por que no me devolvia true dentro del otro if.

Bueno cluster,tengo que decirte que te lo has currao en este post un webo y parte del otro jaja asi que..muchas gracias de verdad,he aprendido bastante en este post y te lo agradezco eternamente.

Un Saludo tio!!
  #26 (permalink)  
Antiguo 25/10/2006, 13:18
 
Fecha de Ingreso: octubre-2006
Mensajes: 2
Antigüedad: 17 años, 6 meses
Puntos: 0
saludos cluster

tengo este codigo en php, no se como hacer para la vaiable que se me crea, q es la cookie, se elimine o que caduca en un tiempo determinado,

<?
//cambio los parametros q estan en el archivo php.ini solamente para la pagina actual
//cabe destacar que esta funcion devuelve los paramentros com un arreglo.
session_set_cookie_params(5,"/","localhost", 0);

//le asigno un nombre a la session

$nombre_session='daje';
session_name($nombre_session);

//inicio la session
session_start();
echo session_id(),"<br>";//imprimo el id de session
echo session_name(),"<br>";//imprimo el nombre de la session
$_SESSION['nombre'] = $nombre_session;// guarda el nombre de la session en una cookie

//$a es una variable que recorre un arreglo generado por session_set_cookie_params
$a=session_get_cookie_params();
foreach($a as $c=>$v){
echo $c,"--->",$v,"<br>";
}
?>

NOTA: en el pnp.ini tengo session.use.cookies=1.
sessio.usu.tras_sid=1.

Estoy trabajando en linux Ubuntu con la herramienta Xampp, estoy seguro que me vas ayudar.Gracias de Antemano
  #27 (permalink)  
Antiguo 26/10/2006, 12:45
Avatar de limboings  
Fecha de Ingreso: enero-2005
Mensajes: 794
Antigüedad: 19 años, 2 meses
Puntos: 2
Te lo subo daje
  #28 (permalink)  
Antiguo 26/10/2006, 13:05
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
daje01 ...

Inicia un nuevo tema con tu pregunta .. no mezclemos temas. Cada uno tiene problemas "particulares" y cosas que explicar por separado.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 26/10/2006 a las 13:15
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 02:31.