Foros del Web » Programando para Internet » PHP »

Session en PHP

Estas en el tema de Session en PHP en el foro de PHP en Foros del Web. Hola a todos, estoy continuando un proyecto que abandoné en diciembre y estoy algo confuso con mi propio código. Se trata de una especie de ...
  #1 (permalink)  
Antiguo 26/03/2012, 10:53
Avatar de Adrii952  
Fecha de Ingreso: diciembre-2011
Ubicación: Madrid
Mensajes: 116
Antigüedad: 12 años, 3 meses
Puntos: 7
Session en PHP

Hola a todos, estoy continuando un proyecto que abandoné en diciembre y estoy algo confuso con mi propio código.
Se trata de una especie de red social que estoy desarrollando desde 0 con PHP y MySQL. De momento sólo la base, en verano ya aprenderé Java y más de diseño para que quede bonito.
El PHP para registrarse y validar funcionan perfectamente pero tengo un problema con el login.php. Funcionar funciona, pero no consigo que funcione el session. Creo que ni entiendo el concepto de session así que si alguien me lo puede explicar se lo agradecería.

Este es mi login.php:
Código PHP:
<?php
session_start
();
if (isset(
$SESSION)) {
    
header("location:inicio.php");
} else {
    
header("Content-type: text/html; charset=utf-8");
include(
"data.php");
echo 
'<TITLE>Login en proyecto</TITLE><center><big style="font-weight: bold; font-family: Verdana;"><big>Login en proyecto</big></big><br></center><fieldset><legend>Información</legend><center>';

$usuario             trim(strtolower($_POST['usuario']));
$contraseña         sha1(md5(trim($_POST['password'])));
$fecha                 time();
$ipusuario             $_SERVER['REMOTE_ADDR'];
$Consulta_Login     "SELECT * FROM  `usuarios` WHERE  `nombre_usuario_flat` =  '$usuario' AND  `pass_usuario` =  '$contraseña'";
$Actualizar         "UPDATE  `$basededatos`.`usuarios` SET  `fecha_ultimo_acceso` =  '$fecha', `ip_ultimo_acceso` = '$ipusuario', `numero_de_accesos` = `numero_de_accesos`+1 WHERE `usuarios`.`nombre_usuario_flat` ='$usuario'";
$conexion            mysql_connect("$servidormysql","$usuariomysql","$passmysql");
mysql_select_db("$basededatos"$conexion);
$Login    mysql_query($Consulta_Login$conexion);

if(
$row mysql_fetch_array($Login)) {
    if (
$row['activo'] == '1') {
        if (!
mysql_query($Actualizar,$conexion)) {
            die(
'Error: ' mysql_error());
        } else {
            echo 
"Te identificaste correctamente";
            
$_SESSION["$usuario"] = $usuario;    
            echo 
'<meta http-equiv="Refresh" content="2;url=inicio.php">';
        }
    } else {
        echo 
"Tu cuenta está inactiva.";
    }
} else {
    echo 
"Usuario o Contraseña incorrecta";
}
    echo 
"</center></fieldset>";
    echo (
'<br><a href="index.php">[Volver]</a>');
}
?>
Básicamente verifica que los datos para iniciar sesión sean correctos, si lo son verifica si la cuenta está activa, y si está activa, escribe unos valores en la base de datos y te envía a inicio.php aunque todavía no he programado nada en inicio.php lol
  #2 (permalink)  
Antiguo 26/03/2012, 12:11
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Session en PHP

if (isset($SESSION)) {

remplazalo por

if (isset($_SESSION["usuario"])) {

Busca:

$_SESSION["$usuario"] = $usuario;

remplazalo

$_SESSION["usuario"] = $usuario;


Busca en google: marcofbb sesiones -inurl:foro

Tenes varios ejemplos

Saludos
  #3 (permalink)  
Antiguo 26/03/2012, 12:59
Avatar de Adrii952  
Fecha de Ingreso: diciembre-2011
Ubicación: Madrid
Mensajes: 116
Antigüedad: 12 años, 3 meses
Puntos: 7
Respuesta: Session en PHP

Ok muchas gracias, luego pruebo y cuento que tal, que ahora tengo que estudiar.
Tenía la duda de si es segura la variable de $_SESSION y que el 'cliente' no lo pueda modificar para infiltrarse como otro usuario.. no sé si me explico
Otra duda era si los valores de $_SESSION se transmiten de página en página y si podía usar distintos valores para pasarlos en la variable cuando el usuario se mueva de página en página por la red.. sigo sin saber si me explico xD
  #4 (permalink)  
Antiguo 26/03/2012, 14:12
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Session en PHP

Cita:
Iniciado por Adrii952 Ver Mensaje
Ok muchas gracias, luego pruebo y cuento que tal, que ahora tengo que estudiar.
Tenía la duda de si es segura la variable de $_SESSION y que el 'cliente' no lo pueda modificar para infiltrarse como otro usuario.. no sé si me explico
Otra duda era si los valores de $_SESSION se transmiten de página en página y si podía usar distintos valores para pasarlos en la variable cuando el usuario se mueva de página en página por la red.. sigo sin saber si me explico xD
Las sesiones son seguras ya que están alojadas en tu servidor, no es como las cookies que se alojan en la pc de cada visitante/usuario. Las sessiones solo van a quedar activas en tu dominio no van a estar en otra web. Te recomiendo que leas sobre Cookies y Sesiones y busques las diferencias

Saludos
  #5 (permalink)  
Antiguo 26/03/2012, 14:50
Avatar de Adrii952  
Fecha de Ingreso: diciembre-2011
Ubicación: Madrid
Mensajes: 116
Antigüedad: 12 años, 3 meses
Puntos: 7
Respuesta: Session en PHP

Ok gracias, ya he aplicado lo que me dijiste del sesión y me funciona todo perfectamente.
Tenía otra duda, por ejemplo en la página de inicio tengo un apartado para subir ficheros, que se sube con subir.php una vez seleccionado el fichero. Mi duda es si debería cargar todos los datos fijos del usuario en inicio.php y guardarlo en $_SESSION diferentes o si hacer directamente una segunda conexión a la base de datos desde subir.php

De momento voy a cargar todo en session en inicio.php de tipo
$_SESSION['nombre_mostrar'] = $row['nombre_mostrar]
$_SESSION['tag_usuario'] = $row['tag_usuario']
Y así en subir.php no tengo que hacer conexión.. me parece lo más lógico pero pregunto por si acaso.
Gracias de nuevo :)

PD: Ya me las he apañado

Última edición por Adrii952; 26/03/2012 a las 16:31
  #6 (permalink)  
Antiguo 26/03/2012, 18:17
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Session en PHP

Cita:
Iniciado por Adrii952 Ver Mensaje
Ok gracias, ya he aplicado lo que me dijiste del sesión y me funciona todo perfectamente.
Tenía otra duda, por ejemplo en la página de inicio tengo un apartado para subir ficheros, que se sube con subir.php una vez seleccionado el fichero. Mi duda es si debería cargar todos los datos fijos del usuario en inicio.php y guardarlo en $_SESSION diferentes o si hacer directamente una segunda conexión a la base de datos desde subir.php

De momento voy a cargar todo en session en inicio.php de tipo
$_SESSION['nombre_mostrar'] = $row['nombre_mostrar]
$_SESSION['tag_usuario'] = $row['tag_usuario']
Y así en subir.php no tengo que hacer conexión.. me parece lo más lógico pero pregunto por si acaso.
Gracias de nuevo :)

PD: Ya me las he apañado
Una vez que asignaste la session, queda disponible siempre, salvo que la destruyas o el usuario la borre. Es decir no tenes que crear la sesion en cada pagina

Saludos
  #7 (permalink)  
Antiguo 27/03/2012, 08:09
Avatar de Adrii952  
Fecha de Ingreso: diciembre-2011
Ubicación: Madrid
Mensajes: 116
Antigüedad: 12 años, 3 meses
Puntos: 7
Respuesta: Session en PHP

Muchas gracias marcofbb, me has solucionado todas mis dudas con el session :)

Etiquetas: session
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 22:55.