Autor Tema: Sesiones en PHP [Bien Explicado]  (Leído 3882 veces)

Desconectado alienmaster

  • PHPer@ Fijo
  • ***
  • Mensajes: 102
  • Karma: 12
  • Sexo: Masculino
  • No dependo de nadie!!
    • Ver Perfil
    • 4cosaS
Sesiones en PHP [Bien Explicado]
« en: 15 de Septiembre de 2007, 15:53:40 pm »
E visto que habia otro tuto de sesiones, pero e puesto este pues me a parecido mas explicado y demas.


El siguiente tutorial esta escrito al 100% por mi, si lo vais a poner en otra pagina o algo pediria que respetarais mi nick y el enlace a mi blog de dicho tutorial:
http://4cosas.com/leermas/Sesiones_en_PHP/27/


Antes que nada decir que este tutorial va dedicado o hecho para Shadow.ng, pues fue el el que hace unos dias me dijo que no sabia usar sesiones, pues shadow.ng aka aprenderas

¿Que son las sesiones?
Pues al igual que las cookies, son variables las cuales se quedan en el navegador del usuario, y asi no tenemos que definirías en los archivos. Se diferencia de las cookies en que primero no las podemos ver, segundo tampoco las podemos modificar, y tercero que al cerrar el navegador se auto eliminan. Lo primero, cuando usemos sesiones, tenemos que usar la funcion session_start() al principio de el archivo en el cual las usaremos, por ejemplo en el index. Yo normalmente pongo dicha funcion debajo del include al archivo de configuracion a la base de datos.

Creando Sesiones
Crear una sesion es muy simple. Es casi igual que definir una variable. Por ejemplo, vamos a crear 2 sesiones, una llamada usuario y otra fecha.
<?
// Definimos que vamos a usar sesiones en este archivo
session_start();
// Creamos la sesion usuario con  una valor cualquiera
$_SESSION[usuario] = &#39;Pepe Garcia&#39;;
//Creamos la sesion fecha con el valor de la fecha actual
$_SESSION[fecha] = time();
?>

Eliminar y vaciar sesiones
Ya esta, con ese codigo hemos creado las sesiones. Ahora lo unico que nos queda es saber como eliminar las sesiones. Para borrar sesiones se usa la funcion session_destroy(), pero si por ejemplo lo que queremos es borrar el valor de una sesion y dejar las demas activas se usa la funcion unset(). Por ejemplo, en el sigueinte ejemplo eliminaremos la sesion fecha.
<?
//Definimos que vamos a usar sesiones
session_start();
//Definimos la funcion para eliminar
$borrar = unset($_SESSION[fecha]);
//Efectuamos un condicional para comprobar.
if($borrar){
    echo 
"La sesion se a eliminado correctamente.";
}else{
    echo 
"Ha ocurrido un error al borrar la sesion.";
}
?>

Ahora si lo que queremos es eliminar todas las sessiones lo haremos con la funcion session_destroy, la cual seria crear un archivo php y en el introducir session_destroy(); lo cual eliminara todas las sesiones.

Con las sesiones podemos hacer un monton de cosas, por ejemplo un login de usuarios o similares. Para un login la comprobacion se efectuaria de manera que en el formulario de login, si el pass y user coincide con alguno se crea la sesion, si no pues se muestra un mensaje diciendo qure los datos estan corruptos. Luego en la pagina se pone un condicional, que si existe la sesion se muestra el contenido y si no existe se muestra el formulario de login.
Mas adelante creare un sistema de users con sesiones explicado paso a paso, pero por ahora tiempo al tiempo que quedan cosas por terminar

Comunidad PHPeros

Sesiones en PHP [Bien Explicado]
« en: 15 de Septiembre de 2007, 15:53:40 pm »

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re: Sesiones en PHP [Bien Explicado]
« Respuesta #1 en: 15 de Septiembre de 2007, 17:08:40 pm »
Muy bueno si señor.
La verdad que si, el mio fue muy corto y tu lo explicas mejor jaja.

Un saludo y Karma+!
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Desconectado Ishamato

  • PHPero Avanzado
  • ****
  • Mensajes: 346
  • Karma: 3
  • Sexo: Masculino
  • PHPero adicto
    • Ver Perfil
Re: Sesiones en PHP [Bien Explicado]
« Respuesta #2 en: 15 de Octubre de 2007, 16:52:38 pm »
Muy bien ^^

Me lo dejasteis clarito xD

<? echo "Aprendiendo y descubriendo poco a poco"; ?>

Desconectado lalitros

  • PHPer@ Fijo
  • ***
  • Mensajes: 162
  • Karma: 3
  • Sexo: Masculino
    • Ver Perfil
Re: Sesiones en PHP [Bien Explicado]
« Respuesta #3 en: 05 de Noviembre de 2007, 07:37:46 am »
Oye, noc si se te olvido registrar las Sesiones, pero bueno, aqui lo dejo:


$_SESSION
[usuario] = &#39;Pepe Garcia&#39;;
$_SESSION[fecha] = time();
session_register("_SESSION");


Un pequeño ejemplito pa los q no sepan :D :

$registro 
session_register("_SESSION");
if(
$registro){
echo 
"Se registro correcto";
} else {
echo 
"Hubo un error al Registrar";
}

Si me dieran a escojer entre el MUNDO y Tu.. Te escojeria a Ti, porque mi MUNDO ERES TU

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re: Sesiones en PHP [Bien Explicado]
« Respuesta #4 en: 05 de Noviembre de 2007, 16:15:54 pm »
No hace falta hacer lo que tu indicas lalitros, hay dos formas de registrar variables por sesiones.
Una es como nos indico alienmaster

$_SESSION
[&#39;Carlos&#39;] = "Soy yo";


Y otra forma es como tu dices, aunque se te han liado un poco los cables...

$mivariable 
"Hola";
session_register("mivariable");
echo 
$_SESSION[&#39;mivariable&#39;]; // Esto mostraria "Hola"


Como ves es mas sencillo de la forma que indicó alienmaster :)

Saludos!
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Desconectado lalitros

  • PHPer@ Fijo
  • ***
  • Mensajes: 162
  • Karma: 3
  • Sexo: Masculino
    • Ver Perfil
Re: Sesiones en PHP [Bien Explicado]
« Respuesta #5 en: 06 de Noviembre de 2007, 03:22:02 am »
Ok so sorry TLX.
Pero asi tengo un sistema de usuarios, asi como lo indique asi lo puse y bien que me lo jala.
...
:D :???

Saludillo!

Si me dieran a escojer entre el MUNDO y Tu.. Te escojeria a Ti, porque mi MUNDO ERES TU

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re: Sesiones en PHP [Bien Explicado]
« Respuesta #6 en: 06 de Noviembre de 2007, 15:20:51 pm »
Puede que yo este equivocado en este mensaje y en el otro mensaje que postee, pero mi teoria es la siguiente
Aunque la variable superglobal ya esta definida, con session_register REdefines esta variable como una array, asi que no hay problema :S
Pero como ya dije, esa teoria tiene lagunas, quizas este equivocado.
Saludos
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Desconectado JuankoX

  • PHPer@ Fijo
  • ***
  • Mensajes: 161
  • Karma: 2
  • Sexo: Masculino
  • ¿Me agregas a MSN? =)
    • Ver Perfil
Re: Sesiones en PHP [Bien Explicado]
« Respuesta #7 en: 09 de Noviembre de 2007, 19:33:28 pm »
Yo tengo una duda...
Si yo hago un sistema de usuarios , me dijeron en otro foro que utilizar $_COOKIE era peligroso porque podrían entrar a los archivos temporales de internet y robar el password.

pero si se utiliza $_SESSION nada más se loguea , si se sale sin desconectarse ni nada pues igual se desconecta.

Como le hago??? :S

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re: Sesiones en PHP [Bien Explicado]
« Respuesta #8 en: 09 de Noviembre de 2007, 22:19:00 pm »
Si $_COOKIE puede ser peligroso, sobre todo porque te pueden hacer inyeccion sql editando su contenido.
$_SESSION es mas seguro puesto que no se pueden editar (Si no me equivoco se guardan en el servidor).

¿Que como se usan?
El primer post te lo explica, si tienes una duda mas especifica, aqui me tienes.

Saludos
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Desconectado umberto10531

  • PHPerit@
  • *
  • Mensajes: 23
  • Karma: 0
    • Ver Perfil
Re: Sesiones en PHP [Bien Explicado]
« Respuesta #9 en: 24 de Abril de 2008, 14:14:04 pm »
buenas tardes me gustaria saber como crear de manera sencilla como en las tipicas paginas de internet en la parte superior como un caxito pagina en el que ponga el nombre de mi usuario conectao,y un enlace o algo en el q se pueda cerrar sesion nose si sabeis a lo q me refiero com en la pagina de portal-psp.com en el q yo me meto como usiuario y arriba a la derecha me pone mi usuario y cerrar sesion y cuando cierro sesion me vuelve al index.php solisitaria alguna solucion sino es mucha molestia

Desconectado Dacan

  • PHPer@
  • **
  • Mensajes: 52
  • Karma: 1
    • Ver Perfil
Re: Sesiones en PHP [Bien Explicado]
« Respuesta #10 en: 24 de Abril de 2008, 14:41:40 pm »
Para Saber si una Session esta definida podemos Utilizar Isset:

Ejemplo:

<?
if(isset($_SESSION[&#39;nombre_de_la_Session&#39;])){
// Si Esta Definida 
} else {
// Si no Esta Definida
}
?>


Saludos, Dacan  ;)

Desconectado umberto10531

  • PHPerit@
  • *
  • Mensajes: 23
  • Karma: 0
    • Ver Perfil
Re: Sesiones en PHP [Bien Explicado]
« Respuesta #11 en: 24 de Abril de 2008, 22:09:42 pm »
buenas noxes me gustaria como puedo hacer con sesiones q de manera q una ves logueado y tal ya me cree mi sesio y me pueda mover y todo pero cuando le de a un boton q ponga"cerrar sesion" me la cierre y ya esta