Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/09/2005, 17:38
okram
Invitado
 
Mensajes: n/a
Puntos:
Busqueda Impedir el acceso directo a una pagina php

Hola

Tal vez este tema ya ha sido posteado antes en este foro, pero busq mas de una hora y no encontre nada q me sirva.

Tengo una pagina marcar.php que me genera una imagen marcada:
Código PHP:
<?php

$image 
$_GET['i'];
$watermark "water.png";
$im imagecreatefrompng($watermark);
$ext substr($image, -3);
if(
strtolower($ext) == "gif") {
    if (!
$im2 imagecreatefromgif($image)) {
        echo 
"Error opening $image!"; exit;
    }
} else if(
strtolower($ext) == "jpg") {
    if (!
$im2 imagecreatefromjpeg($image)) {
        echo 
"Error opening $image!"; exit;
    }
} else if(
strtolower($ext) == "png") {
    if (!
$im2 imagecreatefrompng($image)) {
        echo 
"Error opening $image!"; exit;
    }
} else {
    die;
}

imagecopy($im2$im, (imagesx($im2)/2)-(imagesx($im)/2), (imagesy($im2)/2)-(imagesy($im)/2), 00imagesx($im), imagesy($im));

header("Content-Type: image/jpeg");
imagejpeg($im2);
imagedestroy($im);
imagedestroy($im2);

?>
Bueno eso es lo basico. Aqui viene mi pregunta. Necesito hacer que esta pagina sea llamada solo usando <img src="marcar.php?i=images/image001.jpg">... mas que no se pueda acceder directamente desde el navegador, osea http://misitio.com/marcar.php?i=images/image001.jpg...

Pense en un codigo como este al inicio:
Código PHP:
$_page_name "marcar.php";
$_actual_page $_SERVER['REQUEST_URI'];
if(
eregi($_page_name$_actual_page)) 
    {
    
// No ejecuto nada
    
exit;
    }
else
    {
    
// Aqui el codigo que genera la imagen
    

y me funciona bien cuando se trata de ingresar directamente por la url. osea no muestra nada si se ingresa directamente, y si lo hace cuando lo llamo con un include p.ej.

pense q iba a funcionar, pero cuando lo probe no resulto. al llamar a esta pagina con la etiqueta <img src...> me muestra la tipica × roja... a pesar q la url del navegador no indica la pagina marcar.php, no me genera nada...

Mi pregunta en resumen es...

SOLO con php, como puedo saber la url del navegador ($_SERVER['REQUEST_URI'] no me sirve), o como puedo de otra manera impedir un acceso directo a la pagina, pero que si funcione en una etiqueta <img>...???3.

Espero se me haya entendido y me puedan ayudar

Salu2