FAQ
Hola lista!
Estoy teniendo problemas con la inicializacion de las sesiones.
El caso es que estoy usando un javascript-flash para la subidad de
archivos. En el envio del fichero, mando tambien una variable
'PHPSESSID' con la sesion_id actual.
El problema es que inicialmente, PHP no me coge la sesion.
Nada mas empezar mi script PHP, pongo 'session_start()'. Segun la
documentacion de php, con esta funcion, me deberia crear una sesion
nueva o continuar la que se ha enviado por post, get o cookie (en mi
caso post). Pero no lo hace y no me setea la sesion.
Sin embargo, si hago esto...

------------------------------------------
if($_POST['PHPSESSID'])
session_id($_POST['PHPSESSID']);
session_start();
------------------------------------------

si me funciona. ¿Alguien puede aclararme todo esto? he buscado
informacion pero no encuentro nada que pueda darme una idea de mi problema.

Gracias.

Search Discussions

  • Pablo at Dec 20, 2007 at 7:50 pm
    Hola Javier!
    Te explico por que sucede eso (si no me equivoco)
    El tema es asi, en php el PHPSESSID se puede mantener de 2 maneras. La
    1° y mas sencilla para nosotros es a traves de una cookie que se guarda
    en el cliente y que siembra automaticamente la funcion
    session_start cuando se la llama, esto funciona de la siguiente manera:
    Se siembra una cookie en el cliente y se crea un archivo en el servidor
    con los valores de las variables, de manera que cuando se pasa de pagina
    en pagina se captura la cookie y con el valor se ubica el archivo que
    contiene los datos (si usas linux podes fijarte en el servido que cuando
    accedes a alguna pagina que crea sesiones se te crea un archivo en /tmp
    y si miras dentro estan los valores de las variables que guardaste vos)
    La otra manera se usa solo cuando el cliente no acepta cookies, entonces
    lo que se hace es pasar el PHPSESSID por GET y lo pongo en mayusculas
    porque ahi esta tu problema :) vos pasas los datos por POST
    Espero haberte aclarado un poco mas el asunto (y si me equivoque pido
    disculpas)
    Saludos
    Pablo

    Javier Martínez wrote:
    Hola lista!
    Estoy teniendo problemas con la inicializacion de las sesiones.
    El caso es que estoy usando un javascript-flash para la subidad de
    archivos. En el envio del fichero, mando tambien una variable
    'PHPSESSID' con la sesion_id actual.
    El problema es que inicialmente, PHP no me coge la sesion.
    Nada mas empezar mi script PHP, pongo 'session_start()'. Segun la
    documentacion de php, con esta funcion, me deberia crear una sesion
    nueva o continuar la que se ha enviado por post, get o cookie (en mi
    caso post). Pero no lo hace y no me setea la sesion.
    Sin embargo, si hago esto...

    ------------------------------------------
    if($_POST['PHPSESSID'])
    session_id($_POST['PHPSESSID']);
    session_start();
    ------------------------------------------

    si me funciona. ¿Alguien puede aclararme todo esto? he buscado
    informacion pero no encuentro nada que pueda darme una idea de mi
    problema.

    Gracias.
  • Camilo Uran at Dec 20, 2007 at 9:35 pm
    Hola, me interesa saber sobre este tema: ¿Alguien sabe como hacer para,
    sabiendo la SESSION_ID de un usuario, mantener la sesión viva por medio de
    PHP? Algo quizás con CURL, algo así?
    gracias
  • Javier Martínez at Dec 21, 2007 at 8:39 am
    Lo he cambiado y sigue sin funcionarme.
    Ahora envio todo esto por GET. Como veis he probado tanto "SID" como
    "PHPSESSID" (y creo que no esta mal escrito :( )

    ---------------------------------------------------------------------------------
    Parameters:
    {"controller":"explorer","action":"upload","id":"","SID":"3d5c3c450fec12ab713c6edf6ee98493","PHPSESSID":"3d5c3c450fec12ab713c6edf6ee98493","Filename":"abeto.png","path":"\/1\/","Upload":"Submit
    Query"}
    ---------------------------------------------------------------------------------

    Viendo mis logs, observo que session_start, me asigna un nuevo
    identificador.

    ---------------------------------------------------------------------------------
    Session ID: 86cb285c78f43b5ebfd7142f88112394
    ---------------------------------------------------------------------------------

    Y ambos archivos de sesion estan en la carpeta temporal, como tu bien dices.


    Pablo escribió:
    Hola Javier!
    Te explico por que sucede eso (si no me equivoco)
    El tema es asi, en php el PHPSESSID se puede mantener de 2 maneras. La
    1° y mas sencilla para nosotros es a traves de una cookie que se
    guarda en el cliente y que siembra automaticamente la funcion
    session_start cuando se la llama, esto funciona de la siguiente manera:
    Se siembra una cookie en el cliente y se crea un archivo en el
    servidor con los valores de las variables, de manera que cuando se
    pasa de pagina en pagina se captura la cookie y con el valor se ubica
    el archivo que
    contiene los datos (si usas linux podes fijarte en el servido que
    cuando accedes a alguna pagina que crea sesiones se te crea un archivo
    en /tmp y si miras dentro estan los valores de las variables que
    guardaste vos)
    La otra manera se usa solo cuando el cliente no acepta cookies,
    entonces lo que se hace es pasar el PHPSESSID por GET y lo pongo en
    mayusculas porque ahi esta tu problema :) vos pasas los datos por POST
    Espero haberte aclarado un poco mas el asunto (y si me equivoque pido
    disculpas)
    Saludos
    Pablo

    Javier Martínez wrote:
    Hola lista!
    Estoy teniendo problemas con la inicializacion de las sesiones.
    El caso es que estoy usando un javascript-flash para la subidad de
    archivos. En el envio del fichero, mando tambien una variable
    'PHPSESSID' con la sesion_id actual.
    El problema es que inicialmente, PHP no me coge la sesion.
    Nada mas empezar mi script PHP, pongo 'session_start()'. Segun la
    documentacion de php, con esta funcion, me deberia crear una sesion
    nueva o continuar la que se ha enviado por post, get o cookie (en mi
    caso post). Pero no lo hace y no me setea la sesion.
    Sin embargo, si hago esto...

    ------------------------------------------
    if($_POST['PHPSESSID'])
    session_id($_POST['PHPSESSID']);
    session_start();
    ------------------------------------------

    si me funciona. ¿Alguien puede aclararme todo esto? he buscado
    informacion pero no encuentro nada que pueda darme una idea de mi
    problema.

    Gracias.
  • Martin Marques at Dec 21, 2007 at 8:46 pm

    Javier Martínez escribió:
    Lo he cambiado y sigue sin funcionarme.
    Ahora envio todo esto por GET. Como veis he probado tanto "SID" como
    "PHPSESSID" (y creo que no esta mal escrito :( )
    Que valores tienen los parametros del tipo session.* en tu php.ini?
  • Martin Marques at Dec 21, 2007 at 8:45 pm

    Pablo escribió:
    La otra manera se usa solo cuando el cliente no acepta cookies, entonces
    lo que se hace es pasar el PHPSESSID por GET y lo pongo en mayusculas
    porque ahi esta tu problema :) vos pasas los datos por POST
    Espero haberte aclarado un poco mas el asunto (y si me equivoque pido
    disculpas)
    Cuando se usa session.use_trans_sid el valor de la session se pasa por
    GET o por POST dependiendo del metodo utilizado. Obviamente hay que
    tener cuidado de agarrar el arreglo adecuado de acuerdo con el metodo
    utilizado.

    O mejor, no usar SID transparent, sino cookies, que son mas seguras.

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupphp-general-es @
categoriesphp
postedDec 17, '07 at 4:23p
activeDec 21, '07 at 8:46p
posts6
users4
websitephp.net

People

Translate

site design / logo © 2022 Grokbase