Foros del Web » Programando para Internet » PHP »

Crear una sesion??

Estas en el tema de Crear una sesion?? en el foro de PHP en Foros del Web. hola a todos, tengo un pequeño problema tengo un login y una password la cual me sirve para ingresar a una pagina php(area privada), en ...
  #1 (permalink)  
Antiguo 26/01/2005, 12:34
 
Fecha de Ingreso: enero-2005
Mensajes: 10
Antigüedad: 19 años, 3 meses
Puntos: 0
Mensaje Crear una sesion??

hola a todos, tengo un pequeño problema

tengo un login y una password la cual me sirve para ingresar a una pagina php(area privada), en la pagina se pueden ver los datos de la persona respectiva.

Pero al querer hacer un vinculo a "Cambiar informacion personal" y visualizar los datos que ya están)... no puedo acceder a la base de datos por que obviamente necesitaria el login y el pass nuevamente,

lo que se me ocurrio fue abrir una sesion para almacenar en la cookie el (login y password ingresado en la pagina principal)

el drama es que no se como hacerloooo!! he leido sobre crear sesiones y no puedo almacenar los datos que quiero.
i need help
help!! :/
  #2 (permalink)  
Antiguo 26/01/2005, 12:41
Avatar de Chichoauza  
Fecha de Ingreso: enero-2005
Mensajes: 106
Antigüedad: 19 años, 3 meses
Puntos: 0
usa lo siguiente...
<?
$session=$_SESSION["nombreSession"];
?>


y en TODAS las páginas que son privadas debes colocar al principio lo siguiente:

Código PHP:
<?
$session
=$_SESSION["nombreSession"];

if(!
$session){
header("location:index.php");
}
?>
<html>
<head>
---

suerte.
  #3 (permalink)  
Antiguo 26/01/2005, 13:32
 
Fecha de Ingreso: enero-2005
Mensajes: 10
Antigüedad: 19 años, 3 meses
Puntos: 0
Esto es una parte del codigo que tengo y use la instruccion que me diste apenas comienza el codigo php en la pagina de validacion de usuario..


<BODY>
<p><span class="Estilo2">Informacion Personal</span><br>
<br>
</p>
<p><img src="imagenes/Callz.jpg" width="249" height="72" align="right"><br>
<?
$session=$_SESSION["nombresession"]; <<<<<<----Ahi lo puse
$dsn="agent";
$usuario="";
$password="";
$cid=odbc_connect($dsn,$usuario,$password);
if (!$cid)
{







y en las otras q son privadas apenas comienza la pagina puse

<?
$session=$_SESSION["nombreSession"];

if(!$session){
header("location:index.php");
}
?>



luego hago la consulta a la base de datos para q muestre la tabla y no puedo acceder no guarda el $login :
no me funciona
  #4 (permalink)  
Antiguo 26/01/2005, 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
Les recomiendo estas FAQ's al respecto:

http://www.forosdelweb.com/showpost....&postcount=129
http://www.forosdelweb.com/showpost....98&postcount=6

(y links que recomiendan)

Un saludo,
  #5 (permalink)  
Antiguo 26/01/2005, 17:58
Avatar de Chichoauza  
Fecha de Ingreso: enero-2005
Mensajes: 106
Antigüedad: 19 años, 3 meses
Puntos: 0
Cita:
Iniciado por Cluster
Les recomiendo estas FAQ's al respecto:

http://www.forosdelweb.com/showpost....&postcount=129
http://www.forosdelweb.com/showpost....98&postcount=6

(y links que recomiendan)

Un saludo,

Me puse a leer lo que indicaste, y ahún mas meiante Google, y he terminado en medio de una confusión

como estaria bien echo un autentificador a la hora de crear las sessiones????

Lo correcto seri asi:?
session_start();
session_register("autentificado");
$autentificado = "SI";

o simplemente asi:
session_start();
$_SESSION["autentificador"]="SI";

cual de estas opciones que presento estan bien echas???? y/o cual de estas es la mejor opcion a la hora de gestionar una APLICACIÓN SEGURA y porque?

Fuentes consultadas:
http://www.desarrolloweb.com/manuales/37/
http://php-hispano.net/foros/PHP/6108

los dejo penzando
  #6 (permalink)  
Antiguo 27/01/2005, 06:16
 
Fecha de Ingreso: enero-2005
Mensajes: 10
Antigüedad: 19 años, 3 meses
Puntos: 0
como se deja el $login guardado ??? para poder seguir usandolo en las paginas privadas???
  #7 (permalink)  
Antiguo 27/01/2005, 06:37
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
No es que sea "incorrecto" un uso de sesiones o no .. pero que es más seguro y lo que debes usar hoy por hoy (si usas PHP 4.0.? o superior) es:

session_start();
$_SESSION["login"]="pepe";

Es decir .. el uso de los arrays superglobales: $_SESSION

Para acceder a "login" .. (variable de tu sesión) .. tan sólo tienes que hacer:

session_start();
echo $_SESSION["login"];

Es decir .. manejarlo como array que es simplemente (siempre y cuando el SID se propague por cookies no tendras que hacer nada más extra. Supongo que ya habras leido sobre que es el SID?).

Un saludo,
  #8 (permalink)  
Antiguo 27/01/2005, 06:42
 
Fecha de Ingreso: enero-2005
Mensajes: 10
Antigüedad: 19 años, 3 meses
Puntos: 0
siii muchas gracias :D
session ID

Última edición por Esteban B; 27/01/2005 a las 07:04
  #9 (permalink)  
Antiguo 27/01/2005, 07:13
Avatar de Chichoauza  
Fecha de Ingreso: enero-2005
Mensajes: 106
Antigüedad: 19 años, 3 meses
Puntos: 0
ha, bien, claro, entonces estaba bien lo que hacia, en mi caso particular siempre declare las sessiones con:

session_start();
$_SESSION["miVariable"]="Activa";

pues entonces voy a continuar haciendola así, solo paso que de repende me pregunte "¿y entonces porque la otra forma?", pero bueno asunto solucionado...


Para Esteban B:

pues tu codigo PHP deberia ser algo asi entonces...



Código PHP:
$usuario=$_POST["usuario"];
$clave=$_POST["clave"];

if(!
$usuario OR !$clave){
   echo 
"ingresa tus datos de acceso";
}else{
  
//AQUI CONSULTA A TU BD...
  
$sql="SELECT * FROM usuarios WHERE usuario='$usuario') AND (clave='$clave')";
  
$datos mysql_query($sql);
     
$rs=mysql_fetch_array($datos);
     if (!
mysql_num_rows($datos)){
     echo 
"El nombre de usuario ingresado o la clave son incorrectas";
    }else{
    
session_start();
    
$_SESSION["id_usuario"]=$rs["id"]; //id del usuario...
    
echo "Bienvenido/a Al SISTEMILLA DE ESTEBAN B";
    }

y en cada página privada deberas colocar lo siguiente...

Código PHP:
$id_usuario=$_SESSION["id_usuario"];

if(!
$id_usuario){
header("location:index.php");  //La session no se ha creado

para mayor seguridad leete algo sobre el MD5 que te sirve para encriptar las claves...

espero que te sirva... modificalo d acuerdo a tus necesidades, o sino, descargate el autentificador de cluster


hasta el proximo encuentro

Última edición por Chichoauza; 27/01/2005 a las 07:16
  #10 (permalink)  
Antiguo 27/01/2005, 07:46
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Chichoauza

Te faltó el session_Start() antes de cualquier uso de $_SESSION .. incluido donde lees las varaibles de sesión que en otro script definistes y le distes valor.

Código PHP:
session_start();
$id_usuario=$_SESSION["id_usuario"]; 

if(!
$id_usuario){ 
header("location:index.php");  //La session no se ha creado 
exit; // si no usas un else .. en este if .. lo ideal es terminar la ejecución de tu script en este punto ..

Un saludo,
  #11 (permalink)  
Antiguo 27/01/2005, 08:33
 
Fecha de Ingreso: enero-2005
Mensajes: 10
Antigüedad: 19 años, 3 meses
Puntos: 0
los quiero
  #12 (permalink)  
Antiguo 27/01/2005, 09:43
Avatar de Chichoauza  
Fecha de Ingreso: enero-2005
Mensajes: 106
Antigüedad: 19 años, 3 meses
Puntos: 0
jejeje, si es verdad, se me paso

suerte que estas pendiente a todo, ¿como haces?, jejeje...

un saludo par ambos
  #13 (permalink)  
Antiguo 27/01/2005, 10:08
 
Fecha de Ingreso: enero-2005
Mensajes: 10
Antigüedad: 19 años, 3 meses
Puntos: 0
tiene una baliza y un parlante q le indica cuando posteamos... esta en el baño y empieza a sonar o puede estar en la cocina y tambien suena .., es una baliza personal con sonido detectora de newbies

gracias a esa baliza estamos todos contentos programando en php y descubriendo sus trukillos

Última edición por Esteban B; 27/01/2005 a las 10:10
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 17:16.