Foros del Web » Programando para Internet » PHP »

Dudas con el paso de Sesiones

Estas en el tema de Dudas con el paso de Sesiones en el foro de PHP en Foros del Web. Hola PHPriends, it´s me otra vez. Estoy creando un álbum de fotos con sistema de registro y login de usuario. El código me funciona muy ...
  #1 (permalink)  
Antiguo 27/06/2011, 16:36
 
Fecha de Ingreso: abril-2010
Ubicación: Calama
Mensajes: 58
Antigüedad: 14 años
Puntos: 0
Pregunta Dudas con el paso de Sesiones

Hola PHPriends, it´s me otra vez. Estoy creando un álbum de fotos con sistema de registro y login de usuario. El código me funciona muy bien. Aprovecho de dejarles el código por si alguien quiere usarlos.

El asunto que me aqueja es el siguiente: Quiero unir los códigos del álbúm en sí con el sistema de usuario, de modo que, por ejemplo, el usuario acceda a su propio álbum de fotos, y pueda subir imágenes solo si está registrado. El sistema de usuario y el álbum funcionan muy bien por separado, pero quiero unirlos.

¿Cómo pasar el ID de usuario al álbum?

Estos son los códigos para el sistema de usuarios:



index.htm

Código HTML:
Ver original
  1. <title>MiWeb | Login</title>
  2. </head>
  3. <h1>Inicia Sesi&oacute;n</h1>
  4. <form name="fomr1" method="post" action="analisis.php">
  5. Username: <input name="nombreUsuario" type="text" id="username"><br>
  6. Password: <input name="passwordUsuario" type="password" id="password"><br><br>
  7. <input type="submit" name="Submit" value="Iniciar Sesi&oacute;n">
  8. </form>
  9. </body>
  10. </html>



analisis.php

Código PHP:
Ver original
  1. <?php
  2. include("includes/connect.inc.php"); //conectar a base de datos
  3. if(!($_POST['nombreUsuario'] || $_POST['passwordUsuario'])) {
  4.     echo "Complete todos los campos";
  5.     }   elseif(!$_POST['passwordUsuario'])  {
  6.     echo "Ingrese password";
  7.     }   elseif(!$_POST['nombreUsuario'])    {
  8.     echo "Ingrese nombre";
  9.     }   else    {
  10.     $username=$_POST['nombreUsuario'];
  11.     $password=$_POST['passwordUsuario'];
  12.     $query=mysql_query("SELECT nombreUsuario,passwordUsuario FROM usuarios WHERE nombreUsuario='$username' and passwordUsuario='$password'");
  13.     $data=mysql_fetch_array($query);
  14.     if($data['nombreUsuario'] != $username || $data['passwordUsuario'] != $password)    {
  15.         echo "Datos incorrectos";
  16.         }   else    {
  17.         $_SESSION['s_nombreUsuario']=$data['nombreUsuario'];
  18.         header("Location:mi_cuenta.php");
  19.         }
  20.     }
  21. ?>



mi_cuenta.php

Código PHP:
Ver original
  1. <?php
  2. if(!isset($_SESSION['s_nombreUsuario']))    {
  3.     header("Location:index.htm");
  4.     }   else    {
  5.     echo ("Hola <strong>".$_SESSION['s_nombreUsuario']."</strong>, est&aacute;s en tu p&aacute;gina privada.");
  6.     echo "<br />";
  7.     echo "Accede a tu <a href='cargar_archivo.htm'>&Aacute;lbum de im&aacute;genes</a>.";
  8.     echo "<br />";
  9.     }
  10. ?>
  11. <html>
  12. <head><title><?php echo "MiWeb | ".$_SESSION['s_nombreUsuario']."";?></title></head>
  13. <body>
  14. <br />
  15. <form name="form2" method="post" action="unsession.php">
  16. <input type="submit" name="finsesion" value="Cerrar Sesi&oacute;n">
  17. </form>
  18. </body>
  19. </html>



unsession.php

Código PHP:
Ver original
  1. <?php
  2. if(isset($_POST['finsesion']))  {
  3.     session_unset();
  4.     header("Location:index.htm");
  5.     exit;
  6.     include("includes/close.inc.php");
  7. }
  8. ?>



Estos son lo códigos para el álbum de fotos. Quiero que estos trabajen juntos con el sistema de usuarios.

cargar_archivos.htm

Código HTML:
Ver original
  1. <head><title>Album de fotos</title>
  2. </head>
  3. <h1>Album de fotos</h1>
  4. <h3>Cargar archivo</h3>
  5. <form action="analisis_cargar.php" method="post" enctype="multipart/form-data">
  6. <input type="file" name="archivo"><br /><br />
  7. <input type="submit" name="Submit" value="Cargar archivo">
  8. </form>
  9. </body>
  10. </html>



analisis_cargar.php

Código PHP:
Ver original
  1. <?php
  2. $ruta="images/"; //indicar ruta del archivo
  3. if(isset($_FILES['archivo']) && $_FILES['archivo']['size'] > 0) {
  4.     $mostrar="";
  5.     $tamanoMax=300000;//tamaño en bytes
  6.     $nombreTemp=$_FILES['archivo']['tmp_name'];
  7.     $nombreArchivo=$_FILES['archivo']['name'];
  8.     $tamanoArchivo=$_FILES['archivo']['size'];
  9.     $tipoArchivo=GetImageSize($nombreTemp);
  10.     if($tipoArchivo[2]==1 || $tipoArchivo[2]==2 || $tipoArchivo[2]==3)  {//GIF, JPEG o PNG
  11.         if($tamanoArchivo <= $tamanoMax)    {
  12.             if(move_uploaded_file($nombreTemp, $ruta . $nombreArchivo)) {
  13.                 echo "<p>Archivo cargado. Tama&ntilde;o: ".$tamanoArchivo." bytes. Nombre: ".$nombreArchivo.".</p>";
  14.                 $mostrar=$ruta.$nombreArchivo;
  15.             }   else    {
  16.                 echo "<p>No se pudo cargar el archivo.</p>";
  17.             }
  18.         }   else    {
  19.             echo "<p>El archivo tiene m&aacute;s de ".$tamanoMax." bytes;es demasiado grande.</p>";
  20.         }
  21.     }   else    {
  22.         echo "<p>No es un archivo de im&aacute;gen v&aacute;lido.</p>";
  23.     }
  24.     echo "<form action='album.php' method='post'><input type='submit' value='OK'></form>";
  25. }
  26. if($mostrar != '')  {
  27.     echo "<img src='".$mostrar."' />";
  28. }
  29.  
  30. ?>



album.php

Código PHP:
Ver original
  1. <?php
  2.  
  3. echo "Volver a <a href='mi_cuenta.htm'>Mi Cuenta</a>";
  4. echo " | ";
  5.  
  6. ?>
  7.  
  8.  
  9. <html>
  10. <head><title><?php echo "MiWeb | ".$_SESSION['s_nombreUsuario']."";?></title></head>
  11. <body>
  12. <br />
  13. <form name="form2" method="post" action="unsession.php">
  14. <input type="submit" name="finsesion" value="Cerrar Sesi&oacute;n">
  15. </form>
  16. </body>
  17. </html>
  18.  
  19.  
  20. <?php
  21.  
  22. $ruta="images/"; //indicar ruta del archivo
  23. if(is_dir($ruta))   {
  24.     if($dd=opendir($ruta))  {
  25.         while(($file=readdir($dd)) !== false)   {
  26.             if(filetype($ruta. $file) == 'file')    {
  27.                 $imagenes[] = $ruta.$file;
  28.             }
  29.         }
  30.     }
  31. }
  32.  
  33. echo "<table border='0' cellspacing='0' cellpadding='4' align='center'>";
  34. echo "<tr>";
  35.  
  36. foreach($imagenes as $imagen)   {
  37.     $contadorImagenes++;
  38.     $contadorColumnas++;
  39.    
  40.     echo "<td><img src='../".$imagen."' width='200' border='0' /></td>";
  41.     if($contadorColumnas == 4 && $contadorImagenes != count($imagenes)) {
  42.         echo "</tr><tr>";
  43.         $contadorColumnas=0;
  44.     }
  45. }
  46. closedir($dd);
  47. echo "</tr>";
  48. echo "</table>";
  49.  
  50.  
  51. ?>


Bien, estos son los códigos. En el archivo "album.php" hay un enlace para volver a la página principal de la cuenta del usuario. ¿Cómo hacer para que la página del álbum solo se pueda abrir si el usuario está registrado? ¿Y qué código falta para que al pinchar el enlace, se dirija al usuario a su propia cuenta?

Ojalá puedan guiarme y decirme cómo implementar el sistema de usuario al álbum.
  #2 (permalink)  
Antiguo 28/06/2011, 00:14
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 6 meses
Puntos: 331
Respuesta: Dudas con el paso de Sesiones

Cuando haces el login de usuario comprobando user & password, selecciona de la db tambien el ID de usuario. Lo guardas en $_SESSION y a partir de aqui estara disponible en toda la aplicaci´on, lo tienes casi todo hecho. Salu2
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 28/06/2011, 07:21
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años
Puntos: 101
Respuesta: Dudas con el paso de Sesiones

Cita:
¿Cómo hacer para que la página del álbum solo se pueda abrir si el usuario está registrado?
Haz lo que te dice Repara2. Y usa un condicional para chequear si la variable session existe.

Cita:
¿Y qué código falta para que al pinchar el enlace, se dirija al usuario a su propia cuenta?
Preguntas como esta superan a PHP. Estas preguntando algo de logica más que básica. Como hacer que un link te lleve a un perfil de usuario? Bueno, podes pasar una variable GET con el id del usuario y recibirla en una segunda pagina, que sea la que presente el perfil. Creo que si escribiste todo este codigo una cosa así tenes que deducirla sentandote tranquilo, con papel y lapiz si es que la pc te tiene mareado.

Etiquetas: dudas, paso, sesiones
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 04:48.