Comunidad PHPeros

Lenguajes => PHP => Tutoriales PHP => Mensaje iniciado por: alienmaster en 15 de Septiembre de 2007, 15:53:40 pm

Título: Sesiones en PHP [Bien Explicado]
Publicado por: alienmaster 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] = 'Pepe Garcia';
//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
Título: Re: Sesiones en PHP [Bien Explicado]
Publicado por: CarlosRdrz 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+!
Título: Re: Sesiones en PHP [Bien Explicado]
Publicado por: Ishamato en 15 de Octubre de 2007, 16:52:38 pm
Muy bien ^^

Me lo dejasteis clarito xD
Título: Re: Sesiones en PHP [Bien Explicado]
Publicado por: lalitros 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] = 'Pepe Garcia';
$_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";
}
Título: Re: Sesiones en PHP [Bien Explicado]
Publicado por: CarlosRdrz 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['Carlos'] = "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['mivariable']; // Esto mostraria "Hola"


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

Saludos!
Título: Re: Sesiones en PHP [Bien Explicado]
Publicado por: lalitros 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!
Título: Re: Sesiones en PHP [Bien Explicado]
Publicado por: CarlosRdrz 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
Título: Re: Sesiones en PHP [Bien Explicado]
Publicado por: JuankoX 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
Título: Re: Sesiones en PHP [Bien Explicado]
Publicado por: CarlosRdrz 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
Título: Re: Sesiones en PHP [Bien Explicado]
Publicado por: umberto10531 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
Título: Re: Sesiones en PHP [Bien Explicado]
Publicado por: Dacan en 24 de Abril de 2008, 14:41:40 pm
Para Saber si una Session esta definida podemos Utilizar Isset:

Ejemplo:

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

Saludos, Dacan  ;)
Título: Re: Sesiones en PHP [Bien Explicado]
Publicado por: umberto10531 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