FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Efectivamente PHP tiene dos formas para dar continuidad a una sesion. Las Cookies son la mejor opción, pero como no son fiables (los clientes no están obligados a aceptarlas), no podemos confiar en ellas, etc. El segundo método es incrustar el "session id" directamente en las URLs.
PHP es capaz de hacerlo de forma transparente al usuario cuando se compila con --enable-trans-sid. Si activa esta opción, las URIs relativas serán modificadas de forma que contengan el session id automáticamente. Alternativamente, puede usar la constante SID que está definida, si el cliente no envía la cookie adecuada. El SID puede tener la forma de nombre_de_sesion=session_id o ser una cadena vacía. <A HREF="siguiente_pagina.php?<?php echo SID?>">aquí</A>. Se asume que las URLs no relativas apuntan a sitios web externos, y por tanto no se añade el SID, ya que pasar el SID a un servidor diferente podría ocasionar un agujero de seguridad. |
#2
|
||||
|
||||
Cita:
Muchas gracias betito pero lo que me escribes no se cuanats veces lo he leido que devo de modificar el php.ini, el problema al que real mente me enfrento es que cuando paso de un form a una pagina puedo recuperar el id de sesion y el nombre de usuario que lo escribio en un imput, al querer hacer esto para mandarlo a otra pagina el id de sesion y el usuario los pierdo y no entiendo por que gracias. |
#3
|
|||
|
|||
El tema de las sesiones
Me parece bien que te documentes antes de utilizar "lo que todo el mundo" ya que un exceso de confianza puede resulta en serios problemas a la larga.
El administrador de sesiones de php intenta transferir en id de la sesión tanto por cookies (puaj!) como por get, automáticamente. Si no esta haciéndolo, puedes hacerlo tu directamente. Por ejemplo, cuando el usuario se conecta, creas un número de sesión y lo transfieres en cada una de tus peticiones get. 1. Para crear el número de sesion: Código PHP:
Código PHP:
Código PHP:
4. Recibes lo enviado y abres la siguiente sesión. Código PHP:
Hasta ahí es lo que puedes hacer para crear, enviar y recibir el id de una sesión sin dramas. Eso sí, es en extremo laborioso el tema. Hace años, en amazon incluian el número de sesión en el url pero no como una variable get, sino como parte de la ruta. Me explico mejor. Supongamos que generas el siguiente número de sesión: 8a1baa671439cbbc56a613ebb4f111f6 mediante el método que acabo de explicarte, tus urls se verían así como: http://www.example.com/foo.php?idSes...a613ebb4f111f6 Incluyendo en la ruta se vería algo así como: http://www.example.com/8a1baa671439c...f111f6/foo.php De todas formas se envía el número de sesión en el url pero de una forma más sútil. Con el PHP y el apache se puede lograr esto utilizando el mod_rewrite de apache. El mod_rewrite te permite analizar y modificar las peticiones al servidor web, transformándolas on the fly, cambiando servidores, rutas, recursos o variables. Eso ya depende de lo que querramos. En este caso queremos cambiar una ruta. En el mismo directorio donde se encuentran nuestros programas php, crearemos un archivo llamado .htaccess Este archivo contendrá reglas acerca de cómo transformar la solicitud y ponerla de una manera más usable. Código:
RewriteRule ^([0-9A-Za-z]{32})/(.*)$ $2?idSession=$1 [QSA] Luego, mediante expresiones regulares indica que encuentre la primera combinación de 32 letras y caracteres (variable 1) y todo lo que sigue (variable 2) y que la reescriba colocando primero la variable 2 y como parámetro la variable 1. Sea (nuevamente) el siguiente url: http://www.example.com/8a1baa671439c...f111f6/foo.php El mod rewrite analiza la siguiente solicitud: 8a1baa671439cbbc56a613ebb4f111f6/foo.php donde la variable 1 se establece como 8a1baa671439cbbc56a613ebb4f111f6 y la variable 2 como /foo.php Y rearma la solicitud como: http://www.example.com//foo.php?idSe...a613ebb4f111f6 que ya es algo que conocemos. Si todavía sigues aquí, debo aclararte que insertar la sesión en la ruta se realiza una sola vez, y que una vez insertada, ya se queda en todas las demás peticiones sin necesidad que tu alteres tus anclas o tus formularios post. Para insertar el id de sesión en el url modificaremos ligeramente el paso 1. Código PHP:
Un abrazo. |
#4
|
||||
|
||||
muchas gracias semptrion seguire tus consejos luego posteo como me fue mil gracias por tu tiempo
|
#5
|
||||
|
||||
hola como se llama es script
en donde esxite una pagina llamada descargas solo puede acceder al contenido si a iniciado sesion como se puede hacer eso? porfavor algun ejemplo completo, ya que cuando veo la variable $sesion_start no tengo idea como se usa ni donde se pone |
#6
|
||||
|
||||
Cita:
Hola hermano veo que empiezas a aprender PHP hace unos dias estaba igual que tu (creo que ya avanze un poco) esta pagina es muy buena aqui aclare un poco de mis dudas http://edgarjs.wordpress.com/2007/04...siones-en-php/ espero y te sirva y lo de llamar a otras paginas PHP como no encontre la solucion jeje pues lo hago con javascript <SCRIPT LANGUAGE="javascript"> location.href = "Menu.php"; </SCRIPT> esto lo puedes incrustar en codigo PHP claro tienes que cerrar y abrir las etiquetas correspondientes para cada tipo y funciona bien ya que la sesion se propaga entre paginas usando la variable $_Session[var] espero y te sirve saludos Última edición por richy08 fecha: 04-10-2007 a las 16:14:34. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
manejo de arbol de contenidos y manejo se sonido y video | Buelos | Internet | 4 | 09-07-2007 14:52:45 |
Sesiones en PHP | dieleo | PHP | 2 | 21-06-2007 13:40:04 |
TidHTTPServer y sesiones | Val | Internet | 0 | 08-03-2007 19:13:49 |
Sesiones | David | PHP | 6 | 01-03-2007 00:18:48 |
Sesiones en PHP... | Tanix | PHP | 2 | 11-08-2003 15:02:50 |
|