Comunidad de diseño web y desarrollo en internet online

Duda con url

Citar            
MensajeEscrito el 17 Sep 2010 06:22 pm
Mi duda es la siguiente, trabajo en un proyecto y lo que quiero es "bloquear" cierta url, por ejemplo:

http://localhost/libreria.php?id=1

Hasta ahi todo bien, pero lo que quiero que el usuario no mire es

http://localhost/libreria.php

que solo pueda ver cierto elemento. Si pueden ayudarme agradeceria que me dijeron como podria hacer esto.

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 17 Sep 2010 07:25 pm
Que no mire dónde?

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 18 Sep 2010 02:08 am
Que pueda ver el archivo libreria.php refiriendose a un objeto en particular, libreria.php?id=1, libreria.php?id=2, libreria.php?id=234, etc.
Pero que no pueda ver el archivo libreria.php por si solo. Si lo hace que de preferencia sea redireccionado a otra pagina.

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 18 Sep 2010 04:47 am
Hola, no se si es lo mas eficiente o la mejor solucion pero podrias hacer algo como lo siguiente en libreria.php:

Código PHP :

session_start();
if (!isset($_GET['id'])) {
    header('Location: index.php');
    die;
}

Saludos.

Por bucle_infinito

Claber

166 de clabLevel

1 tutorial

 

.NET Developer

firefox
Citar            
MensajeEscrito el 18 Sep 2010 10:49 am
pero si sigues necesitando el id tendrás que hacerlo con post :s

Por nax_hh

Claber

168 de clabLevel

1 tutorial

 

Reus

firefox
Citar            
MensajeEscrito el 18 Sep 2010 02:45 pm
Lo que dices es que sea obligatorio que el script tenga un parámetro para seguir ejecutándose. Creo que la solución dada por bucle_infinito es la adecuada, simplemente verifica que el script tenga el parámetro y de no ser así, redireccionar a otra parte del sitio.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 18 Sep 2010 09:20 pm
hace simplemente un redirect desde .htaccess que simplemente te diga que :
http://localhost/libreria.php?id=234
sea igual que >
localhost/libreria/234
y simplemente crea otro redirect
que mande
localhost/libreria
a localhost.
esa es la forma mas facil que se me ocurre con 3 lineas lo haces.
saludos!

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

msie8
Citar            
MensajeEscrito el 19 Sep 2010 12:13 am
Hola leyvas! como va ?

mira, considero que la mejor forma de hacer lo que quieres, es utilizando htaccess como dice digitalrosario.

pero... ¿qué significa esto de htaccess y como se puede utilizar? :shock: :shock:

si no tienes mucha experiencia, no te preocupes, Xer0s ha publicado una linda guia para .htaccess aquí

de todas formas te adelanto alguna cosa.

al decir "vamos a trabajar con htaccess" estamos diciendo que se creará un archivo de nombre ".htaccess" cuyo contenido utilizará el servidor para resolver qué información devolver al usuario cuando este la solicite.
esto lo hace directamente el servidor, y por lo general los servidores que tienen instalados php, tienen el uso de htaccess habilitado.

manos a la obra....

lo primero que necesitas es crear un archivo de nombre ".htaccess" (si miras atentamente, te darás cuenta de que en realidad es un archivo "sin nombre" y con una extensión "htaccess" por lo que si tratas de crearlo desde windows, lo más probable es que no te deje porque el sistema "pensará" que te falta un nombre de archivo, así que crealo desde tu editor)
luego edita este archivo con tu editor favorito (notepad, notepad++, dreamweaver, etc) y pon estas lineas:

Código PHP :

RewriteEngine on
RewriteRule libreria\/([0-9]+)$ libreria\.php?=$1 [NC]


Con la primer linea:

Código PHP :

RewriteEngine on

Lo que hacemos es activar el modulo de reescritura.

Con esta segunda linea:

Código PHP :

RewriteRule libreria\/([0-9]+)$ libreria\.php?id=$1 [NC]


Estamos creando una "regla". Al ver con detalle esta regla, podemos ver que se hace uso de las expresiones regulares (historia que dejaré para otra ocasión :P ).
Pero básicamente le decimos que si el usuario llega escribir una url como esta:

Código PHP :

http://localhost/libreria/45


internamente (es decir a nivel de servidor, por lo que el usuario seguirá viendo lo que escribió) apache la cambiará a esta forma:

Código PHP :

http://localhost/libreria.php?id=45


la parte del [NC] significa No Case sensitive, y es para que no distinga de minúsculas o mayúsculas (escritas por el usuario)

Una vez prontas estas lineas en tu .htaccess, guarda/sube este archivo en la raiz de tu sitio.
ahora para acceder a deberminado elemento de libreria, deberás escribirlo de la forma

Código PHP :

http://localhost/libreria/[b]ID[/b]


(siendo ID numérico)


Saludos!!

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 19 Sep 2010 07:08 pm
Estaba contemplando la posibilidad de de usar .httacces asi mato 3 pajaros de 1 tiro

  • URLs amigables, nunca esta de mas para un mejor posicionamiento
  • Mayor comodidad para el usuario
  • Y asi aprendo algo nuevo, sobre el manejo de este archivo, ya que solo personalizaba el error 404 jajaja

Pero bueno gracias a los que ayudaron, otra cosa que me sorprendio de la comunidad fue la velocidad de respuesta y la calidad.
(y)

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.