Foros del Web » Programando para Internet » PHP »

Permitir acceso solo desde un enlace interno

Estas en el tema de Permitir acceso solo desde un enlace interno en el foro de PHP en Foros del Web. Buenas noches. Vereis, me he instalado un gestor de subida de imagenes al estilo Imageshack en mi web. El caso es que voy a poner ...
  #1 (permalink)  
Antiguo 09/08/2006, 17:06
 
Fecha de Ingreso: diciembre-2003
Mensajes: 27
Antigüedad: 14 años
Puntos: 0
Permitir acceso solo desde un enlace interno

Buenas noches.

Vereis, me he instalado un gestor de subida de imagenes al estilo Imageshack en mi web. El caso es que voy a poner un enlace a este gestor en la pantalla donde los usuarios escriben un nuevo tema o responden en los foros, por ejemplo debajo del recuadro donde se escribe el mensaje (foros phpBB).

El problema es que quiero que solo lo usen los usuarios registrados y a traves de ese enlace, por lo que en este caso lo que deberia hacer es proteger la entrada directa al index del gestor cuando se escribe la direccion en el explorador y que, si se puede, que salga un mensaje. No se si me explico. ¿Como lo puedo hacer?.

Tambien hay otra cosa que me gustaria cambiar y es el nombre de archivo que le pone este gestor a los archivos subidos. He estado buceando por los archivos .php (solo tiene 3) y he encontrado esto:

Código:
// generate random signs
$zufall = rand(1,9);
$zufall2 = rand(1,26);
$buchstaben = array( 	"1" => "arx",
				"2" => "opt",
				"3" => "bwy",
				"4" => "cqs",
				"5" => "viu",
				"6" => "rgh",
				"7" => "jdv",
				"8" => "klz",
				"9" => "bfi", );

$buchstaben2 = array(	"1" => "a",
				"2" => "b",
				"3" => "c",
				"4" => "d",
				"5" => "e",
				"6" => "f",
				"7" => "g",
				"8" => "h",
				"9" => "i",
				"10" => "j",
				"11" => "k",
				"12" => "l",
				"13" => "m",
				"14" => "n",
				"15" => "o",
				"16" => "p",
				"17" => "q",
				"18" => "r",
				"19" => "s",
				"20" => "t",
				"21" => "u",
				"22" => "v",
				"23" => "w",
				"24" => "x",
				"25" => "y",
				"26" => "z", );

$unikat = $buchstaben[$zufall] . time() . $buchstaben2[$zufall2];
El nombre de archivo que genera es: una de las 9 combinaciones de 3 letras de arriba mas un numero aleatorio de 10 cifras mas una letra mas (opt458671239c.jpg). Por ejemplo el nombre de archivo que me gustaria que generase seria el nombre original mas un numero de, por ejemplo 5 cifras aleatorias (dodsource45927.jpg). Esto del nombre de archivo me importa menos, pero lo primero si que me urge.

Gracias.
  #2 (permalink)  
Antiguo 09/08/2006, 17:17
 
Fecha de Ingreso: junio-2001
Ubicación: Cd. Madero, Tam
Mensajes: 83
Antigüedad: 16 años, 5 meses
Puntos: 0
para carmbiar el nombre al archivo debes buscar la funcion o la parte donde genera el nombre y cambiarla de acuerdo a lo que pides.

para el acceso debes verificar que usuario esta logueado en el sistema, tal vez con una variable de sesion que en caso de no estar mostrar el mensaje.
  #3 (permalink)  
Antiguo 09/08/2006, 18:41
 
Fecha de Ingreso: diciembre-2003
Mensajes: 27
Antigüedad: 14 años
Puntos: 0
Si, si estar estara logueado, si no no podra postear en el foro, que es donde ira el enlace al gestor, cuando el usuario va a postear un mensaje en el foro. Lo que quiero es que no se pueda entrar directamente al poner la direccion en el navegador.
  #4 (permalink)  
Antiguo 09/08/2006, 18:49
 
Fecha de Ingreso: junio-2001
Ubicación: Cd. Madero, Tam
Mensajes: 83
Antigüedad: 16 años, 5 meses
Puntos: 0
puedes hacer un form que lo que hace es llamar a ese script y pasarle una variable con post asi cuando entres directamente desde el navegador esa variable no estara definida y muestras el mensaje de error.
  #5 (permalink)  
Antiguo 10/08/2006, 10:36
 
Fecha de Ingreso: diciembre-2003
Mensajes: 27
Antigüedad: 14 años
Puntos: 0
¿Y eso como se hace?, es que nunca he hecho nada parecido y tengo poca idea :P
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 13:37.