PHP - obtener nombre del *.html que llama a *.php

 
Vista:

obtener nombre del *.html que llama a *.php

Publicado por sara (12 intervenciones) el 03/03/2007 07:21:39
necesito obtener el nombre del *.html que llama a un *.php.

la finalidad es que ese 'php' hace algo, pero solo lo debe hacer cuando es llamado por OTRO documento y no si es ejecutado el mismo.

la variable $_SERVER['HTTP_REFERER'] me puede servir? y como obtengo el nombre del *.php programa?

gracias

para ilustrar:
si hago: www.my.html , entonces el documento llama a my.php, OK.
pero si hago: www.my.php, NO se debe permitir hacer esto.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:obtener nombre del *.html que llama a *.php

Publicado por Matias (3 intervenciones) el 03/03/2007 22:18:33
El HTTP_ REFERER ocasiona problemas de inseguridad. ( http://www.iec.csic.es/criptonomicon/consejos/http_referer.html para mas informacion)

Yo usaría sesiones en tu caso.
En la página HTML
Guardaría una variable de sesion (paginaAnterior) con el nombre del archivo HTML.
Luego en la pagina PHP me fijaría si la variable de sesion PaginaAnterior tiene el valor del HTML que querés.

Algo así:
(EN LA PAGINA HTML AGREGO ESTE SCRIPT)

<?php
session_start();
$_SESSION[paginaAnterior] = $_SERVER['PHP_SELF'];
// PHP_SELF te dice el nombre del archivo ejecutandose actualmente
?>

(EN LA PAGINA PHP AGREGO ESTE SCRIPT)

<?php
session_start();
if ($_SESSION[paginaAnterior] == "URL de la pagina HTML")
{
echo "acceso permitido";
}
else
{
echo "La pagina anterior es " . $_SESSION[paginaAnterior] . "y esto no está permitido";
exit;
}

?>

para mas informacion de variables de servidor como PHP_SELF:
http://php.net/reserved.variables

espero q te sea util

http://www.rinconastur.net/php/php12b.php
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:obtener nombre del *.html que llama a *.php

Publicado por sara (12 intervenciones) el 04/03/2007 10:06:32
hola interesante el link.

pero mi inquietud es:
segun tu consejo, ya no tendria una pagina(inicial) en *.html, sino en *.php, para poder incluir lo sgte?

<?php
session_start();
$_SESSION[paginaAnterior] = $_SERVER['PHP_SELF'];
// PHP_SELF te dice el nombre del archivo ejecutandose actualmente
?>

en todo caso habria otra solucion?

gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:obtener nombre del *.html que llama a *.php

Publicado por sara (12 intervenciones) el 04/03/2007 11:35:48
hola.

estuve buscando en la www y vi unos ejs donde en el *.php se filtra si el boton "submit" fue presionado(y esto ocurriria en el html) y si no fue presionado es porque estoy ejecutando "directamente" el *.php.

puede ser factible esa solucion?

gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:obtener nombre del *.html que llama a *.php

Publicado por matias (3 intervenciones) el 04/03/2007 18:14:42
que tal,

la verdad que no creo que sea una buena solucion esa ultima, seria el mismo caso que usando HTTP_REFERER, es decir, seria un parametro que puede mentir. Esto si es como yo pienso que se hace, sino habria que ver como es el ejemplo.

por ejemplo, suponete que el boton se llama "btnNuevo" y vos lo mandás mediante un formulario con metodo GET.
Entonces al apretar el boton te mandaria a otra pagina (la pagina .php por ejemplo), medinate una URL como esta:
www.xxxx.com.ar/xxx.php?btnNuevo=btnNuevo
algo asi si mal no recuerdo.
Ahora si alguien accede a esta url directamente www.xxxx.com.ar/xxx.php?btnNuevo=btnNuevo accederia a tu .php tranquilamente.
Esto tambien se puede hacer con el metodo POST pero yo no se como se haria para darte un ejemplo.

En el ejemplo que yo te di antes, es probable que tengas que cambiar la extension .HTML a .PHP.

Insisto que en estos casos es conveniente trabajar con sesiones, porque no se pueden saltar con ningun metodo ya que residen en el servidor y las manejas vos.

Yo en un sitio que estaba haciendo, siempre incluia un script como este en todas sus paginas:
<?php
session_start();
$_SESSION[paginaAnterior] = $_SESSION[paginaActual];
$_SESSION[paginaActual] = $_SERVER[PHP_SELF];
?>
Y con esto solo siempre sabia cual fue la pagina anterior y cual es la pagina actual
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:obtener nombre del *.html que llama a *.php

Publicado por sara (12 intervenciones) el 05/03/2007 07:02:46
hola.

para aclarar un detalle: estoy trabajando con sesiones.

que quieres decir "que no se pueden saltar con ningun metodo", me citas un ejemplo?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:obtener nombre del *.html que llama a *.php

Publicado por sara (12 intervenciones) el 05/03/2007 07:26:06
hola otra vez.

estuve probando asi:

**en el html**

<?php
// omiti a proposito el 'session_start()' ???o es necesario???
$_SESSION['origen']=$_SESSION[PHP_SELF]:
?>
<html>
<body>
...
</body>
</html>

**y en el php**

<?php
session_start();
if( $_SESSION['origen' != "/path/origen.html" )
{
// le coloco un link
}
else
{
// ejecuta codigo
}
?>

asi esta bien?

ademas, (solo para aclarar)que tal si dentro del php colocara un filtro (o lo adicionara, al caso anterior) como:

<?php
if( !isset($_POST[$var_name]) )
{
// le coloco un link
}
else
{
// ejecuta codigo
}
?>

donde $var_name es una variable dentro del html y puede ser por decir el campo para nombre de cliente, o codigo, etc?
seria el mismo caso que el 'submit' boton?

gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:obtener nombre del *.html que llama a *.php

Publicado por Matias (3 intervenciones) el 06/03/2007 00:27:09
Sara,
si haces eso del "$var_name" seria el mismo caso del BOTON, que a mi personalmente no me convence.

Con respecto a que "las sesiones no se pueden saltar con ningun metodo", me referia a lo siguiente:
Cuando un usuario accede a la pagina HTML, segun mi idea, se agrega de sesion en el servidor con un valor: paginaActual="xxx.html".
Si el usuario trata de acceder directamente a la pagina PHP sin haber pasado antes por la pagina HTML, no tendrá la variable de sesion 'paginaActual' y por lo tanto no va a poder acceder. Es decir que el usuario no va a poder "saltarse" tener esa variable de sesion y acceder a esa pagina, ya que la variable de sesion se encuentra en el servidor y no existe ningun metodo mediante el cual pueda modificar el valor de esta variable.
En cambio el método POST y GET se pueden alterar por el usuario.
Un ejemplo con GET te lo di en el mensaje anterior.
Un ejemplo con POST sinceramente no conozco. Pero se que se puede.
Por lo tanto estos metodos no te aseguran que el usuario haya pasado antes por la pagina HTML.

con respecto a:
// omiti a proposito el 'session_start()' ???o es necesario???
vos sabras por que lo haces.
Es necesario para iniciar sesion
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:obtener nombre del *.html que llama a *.php

Publicado por sara (12 intervenciones) el 06/03/2007 05:49:45
gracias por los consejos.

despues de tanto intento consegui controlar el acceso a la pagina *.php.

mi sgte problema esta en el sgte post.

gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar