Comunidad oficial de diseñadores web, web developers y Webmasters. Aqui podemos tratar temas actuales sobre diseño y tecnología. Podemos compartir y actualizarnos. Photoshop, Flash, PHP, ASP, Java, HTML, CSS, MySQL, CMS, etc. Unite YA y lee los Sticky
Ver más- 13,065 Miembros
- 9,531 Temas
- 3,449 Seguidores
Ayudita con PHP
Quiero que si el usuario ingresa a mi clase directamente, le de el 404 :B
Si tienen idea, se los agradeceria de corazon
Thanks :E
- 2Calificación
- 0Seguidores
- 151Visitas
- 0Favoritos
Global
Argentina
Chile
Colombia
España
México
Perú
Uruguay
Venezuela
11 respuestas
explicate mejor.. vos lo queres haces es que cuando un usuario ingresa a una seccion inexistente en tu web en ve de darle error 404 lo mande a algun archibo tuyo??
si es eso se hace con un .htaccess tenes que poner esto:
ErrorDocument 403 /error403.htmlprimero no es 403.. es 404 segundo no es lo que pedia
lo que quiere decir es que si entras a una clase (PHP OOP) le tire error. lo que deberias hacer es que tu archivo de clase este un nivel anterior al www o public_html, siendo solo accesible mediante un include, require o lo que necesites !
yo me voy por la simple:
archivos los cuales son accesibles de una:
<?php
$fix_module = '';
// continua el código....
y luego a las classes y demás archivos que son incluidos, les pones esta verificación al principio.
if( !isset($fix_module) ) require_once $_SERVER['DOCUMENT_ROOT'].'/errors/404.php';es una muy buena idea definir una variable y despues comprobarla, pero queda muy a lo "negro", poco profecional, pero como vos mismo dijiste @pichoncitotv, lo simple ! lo mio ya es mas "seguro"...
no entiendo la finalidad, si lo que queres es que tu directorio no sea accesible publcametente lo podes hacer con htaccess
.htaccess en la carpeta donde estan las librerias
ErrorDocument 404 /404.php
deny from all
En cada clase podes incluir este pedacito de código
if (!defined('ALLOW'))
header("location: 404.html");
Y antes definis a ALLOW en la parte modular o principal de tu pagina ( en donde llames a las clases) y listo.. asi no tienen acceso directo sobre la clase escribiendo la url..
¿Porque se complican tanto?
Crea un .htaccess y ponele esto:
<Files ~ "tuclase.php$">
deny from all
</Files>
Reemplaza tuclase por el nombre de tu archivo y listo.
Inclui este .htaccess en la carpeta donde esta el archivo.
en tu archivo config si lo tenes o algo defini una constante cualquiera, y en los archivos que no queres qe se entre directamente al principio pone:
<?php if( ! defined('CONSTANTE') ) exit('Error 404');
Gracias a todos!