entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

carpetas de imágenes en php

Reformulo la pregunta que realize hace unos meses explicando un poco más el problema que tengo por si me podeis ayudar
Tengo un php al que se accede por una contraseña simple

<?php 
$password = "xxxx";
if ($_POST['password'] != $password) { 
?>

Tengo todas las fotos del año 2015 mostradas de un modo muy sencillo

 <a href="2015/16.jpg" class="gal"><img src="2015/16pequena.png" alt="" ></a>
 <a href="2015/17.jpg" class="gal"><img src="2015/17pequena.png" alt="" ></a>

Me gustaría colocar las imágenes por año , que apareciera una carpeta que ponga 2015 donde se mostraran las imagenes y otra que se llamara 2016 donde se mostraran las imágenes del 2016.
Lo más sencillo aunque no se como se hace seria lo siguiente . Me gustaría tener una página llamada galeria.php que es la que el usuario acceder cuando se ha logado, en el que aparecieran dos enlaces que llaman a a su vez a dos páginas 2015.php y 2016.php. A estas páginas sólo se podrían acceder a través de la página.php. ¿Cómo implemento esto ? ¿ Cuando accedo a cualquiera de estas dos páginas como controla que tengo la sesión con la clave abierta ? ¿ cuanto de fácil o de dificil es de implementar ?

Muchas gracias y felices fiestas a toda la comunidad desarrolladora

0voto

carlossevi comentado

¿Has pensado implementar cookies o sesiones de PHP?

2 Respuestas

0voto

Zenok Puntos460

Como te han dicho, si no quieres utilizar bases de datos utiliza sesiones. Colocas un formulario en pagina.php si no tiene la sesión creada, si lo está le muestras los enlaces a 2015.php y 2016.php (Comprobando en cada archivo que la sesión está activa)

5votos

cobasESP Puntos19650

Al principio del todo, donde haces el login debes colocar este código:

<?php 
$password = "xxxx";
if ($_POST['password'] != $password) {
$_SESSION['logueado'] = 1;
header('location:galeria.php');
}
?>

Esta de arriba es una pagina de login simple, que bien podria ser tu index.php para entrar nada mas acceder a la pagina. Después de bes colocar este código en cada una de las páginas que quieras privatizar.

<?php
if(isset($_SESSION['logueado'] && $_SESSION['logueado'] == 1){
  //Aqui
  //va
  //todo el
  //codigo de
  //tu galeria .php o de tu 2015.php etc etc
}else{
  echo '<h2>No estás logueado <a href="login.php" >clic aquii para loguearte</a></h2>
}

Este código controla por session en php si estas logueado o has metido la página a capon en la barra de direcciones, asi controlas que solo entran los que sepan la pass.

Luego si puedo proponerte una idea, te aconsejaria usar jQuery para crear dos divs (uno para 2015 y otro para 2016), en ellos meteras todas las imagenes y pondras esos dos divs ocultos, luego con dos botones harás aparecer los divs y desaparecerlos, asi no tienes que crear 2015.php y 2016.php y daras un toque mas vistoso a la página, si necesitas ayuda con eso dimelo :)

1voto

Zenok comentado

Como anotación, que no se le olvide colocar el session_start() al inicio de cada fichero. Un saludo.

0voto

gonzalss comentado

Hago el logín directamente en la página galeria.php, por eso no me funciona

Lo que me dices de los dos div suena mucho mejor .

0voto

gonzalss comentado

Pongo este codigo al principio de la página 2015.php tal como me has dicho

<?php

session_start();
if(isset($_SESSION['logueado'] && $_SESSION['logueado'] == 1){

?>

y me da este error

Fatal error: Cannot use isset() on the result of an expression (you can use "null !== expression" instead) in /homepages/46/d563365264/htdocs/2015.php on line 4

0voto

Zenok comentado

Te falta un paréntesis:

if(isset($_SESSION['logueado']) && $_SESSION['logueado'] == 1){

0voto

gonzalss comentado

Lo que he puesto no me está funcionando. Intento reproducirlo.
Tengo un página php llamada galeria donde tengo esta información al principio

<?php 
$password = "xxx";
session_start();
if ($_POST['password'] != $password) { 
$_SESSION['logueado'] = false;
?>

Si el usuario introduce la clave correcta le aparecen estas dos link

  <a href="2015.php"><img src="imagenes/carpeta.jpg" width="75" height="75"></a>
    <p>2015</p>
    </br>
    <a href="2016.php"><img src="imagenes/carpeta.jpg" width="75" height="75"></a>
    <p>2015</p>

Si el usuario no introduce la password correcta le sale el formulario correcto

Por ahora esto me funciona bien , sólo muestra estos dos link cuando introduce correctamente el password.

Ahora es cuando tengo el problema, ya que en los archivos 2015.php y 2016.php
hago la siguiente comprobación

<?php
session_start();
if(null!=$_SESSION['logueado'] && $_SESSION['logueado'] == true){
?>

Aunque venga bien logado no me presenta la opción que pongo cuando está logado sino que me presenta el formulario , como si no detectara la sesión .

¿Cuál pensáis que pudiera ser el problema ?

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta