Foros del Web » Programando para Internet » PHP »

problema con <a href>

Estas en el tema de problema con <a href> en el foro de PHP en Foros del Web. hola amigos de foros del web, ando haciendo una pagina en php, pero me he cruzado con un problema que no se como slucionar, he ...
  #1 (permalink)  
Antiguo 03/03/2010, 12:52
 
Fecha de Ingreso: marzo-2010
Mensajes: 18
Antigüedad: 14 años, 2 meses
Puntos: 0
problema con <a href>

hola amigos de foros del web, ando haciendo una pagina en php, pero me he cruzado con un problema que no se como slucionar, he googleado bastante, pero nadie tiene la respuesta correcta.

explico el asunto con un mini ejemplo de lo que quiero hacer:

tengo un index.php con tres enlaces que llevan a tres paginas diferentes: 1.php, 2.php y 3.php, y las envia a un iframe, los enlaces puedo ponerlos con target al iframe eso lo se, pero si al usuario le da por hacer ctrl+click sobre el enlace, pues la pagina enlazada se abre en otra ventana nueva, se que tmbn puedo bloquear el uso de ctrl usando javascript, pero se me hace una solucion poco viable para lo que necesito.

vi una pagina donde los href estaban por ejemplo:
Código:
<td>
<a href="http://midominio.com/index.php?view=un_valor&" title="">texto del enlace
</td>
y asi le hacen con todos los enlaces, esto permite que los visitantes solo vean la url del index, y no de las demás paginas, pero no se como hacen el llamado, ni tampoco que es eso que llaman view, es decir, que tipo de variable u objeto es, también permite que por ejemplo no hagan: http://midominio.com/1.php o .. http://midominio.com/2.php, sino que tienen necesariamente que ir al http://midominio.com/index.php, para ver lo que hay en 1.php y 2.php, lo cual me parece una medida de seguridad genial.

me imagino yo que es una funcion php dentro de index.php que captura esa variable y dependiendo el valor asigna la pagina enlazada al frame, porque en el codigo fuente no aparece la declaracion de view, pero tampoco se como hacerlo, espero uds me puedan ayudar, Gracias.

el codigo del miniejemplo que tengo es:

para index.php
Código:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>pagina principal</title>
</head>
<table>
<tr>
<td><a href="1.php" target="frame">uno</td>
</tr>
<tr>
<td><a href="2.php" target="frame">dos</td>
</tr>
<tr>
<td><a href="3.php" target="frame">tres</td>
</tr>
<tr>
<th width="750" height="700" valign="top" scope="col"><iframe name="frame" frameborder="1" width=100% height=100% frameborder=0 scrolling="no" marginwidth="0" marginheight="0" ></iframe></th>
</tr>
</table>
<body>
</body>
</html>
para 1.php 2.php y 3.php el codigo es el mismo solo cambia el texto "este es el enlace (y aca el numero)"

1.php:
Código:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>enlace 1</title>
</head>
<table>
<tr>
<td>este es el enlace 1</td>
</tr>
</table>
<body>
</body>
</html>
PD: ya busqué envio de variables por URL con php, y un sinfin de busquedas distintas.... asi que porfavor en lo posible no me manden a googlear porque ya lo hice por horas y nada jajaja.
  #2 (permalink)  
Antiguo 03/03/2010, 13:36
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: problema con <a href>

Lo primero que debes verificar si estas dentro del iframe, esto lo debes hacer ya con javascript. Puedes usar window.top.location.href para verificar si la dirección que esta principal es la de tu página web. Te sugiero que busques sobre el tema de window.top y location.href para que puedas lograrlo. Esto lo debes colocar en el 1.php, 2.php y 3.php. Si no se cumple lo redireccionas a una página que muestre error.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 03/03/2010, 16:29
 
Fecha de Ingreso: marzo-2010
Mensajes: 18
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: problema con <a href>

gracias por la respuesta pero para serte sincero sigo sin entender, segun leí esos parámetros necesariamente usan la ruta directa de las paginas para asignarlas a los frames, el problema en si no es tanto que se carguen en una ventana nueva, eso podria hacerlo bloqueando el uso de ctrl en el index.php, pero lo que quiero saber es como le hicieron en esa pagina para tener el tipo de links que expuse, y no con el clasico link que contiene la url completa de la pagina a cargar. o estoy confundido :S:S:S.
  #4 (permalink)  
Antiguo 03/03/2010, 17:16
Avatar de blogger  
Fecha de Ingreso: diciembre-2005
Ubicación: frente al monitor
Mensajes: 398
Antigüedad: 18 años, 4 meses
Puntos: 12
Respuesta: problema con <a href>

Pero que es facil mi chavo...

view es una variable, en realidad no significa nada en especial, lo mismo pudieron haber puesto id o var o lo que sea, pues eso lo asigna la persona que programa la web.

El truco es en 1.php, 2.php y 3.php, lo que haces ahí es recoger esa variable por medio del $_GET, si la variable esta vacia, pues no muestras nada, y si la variable tiene un valor muestras el sitio.

Esa es la idea.
__________________
http://exegesis-biblica.com/
  #5 (permalink)  
Antiguo 04/03/2010, 06:47
 
Fecha de Ingreso: marzo-2010
Mensajes: 18
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: problema con <a href>

aaa que facil era, ya lo logré, no habia tenido en cuenta que aca era get en ves de post... y pos la clave estaba en index.php, asi quedo mi codigo (se aceptan sugerencias :D):

index.php:

Código:
<?php
$ENLACE=$_GET["link"];
$CARGAR="http://localhost/pruebas/1.php";
if($ENLACE=="1"){
$CARGAR="http://localhost/pruebas/1.php";
}else if($ENLACE=="2"){
$CARGAR="http://localhost/pruebas/2.php";
}else if($ENLACE=="3"){
$CARGAR="http://localhost/pruebas/3.php";
}
?>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>pagina principal</title>
</head>
<table>
<tr>
<td><a href="http://localhost/pruebas/index.php?link=1&">uno</td>
</tr>
<tr>
<td><a href="http://localhost/pruebas/index.php?link=2&">dos</td>
</tr>
<tr>
<td><a href="http://localhost/pruebas/index.php?link=3&">tres</td>
</tr>
<tr>
<th width="750" height="700" valign="top" scope="col"><iframe name="frame" frameborder="1" width=100% height=100% frameborder=0 scrolling="no" marginwidth="0" marginheight="0" src="<?php echo $CARGAR ?>" >please use a browser that supports frames</iframe></th>
</tr>
</table>
<body>
</body>
</html>
1.php:

Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>pagina 1</title>
</head>
<table>
<tr>
<td>este es el enlace 1</td>
</tr>
</table>
<body>
</body>
</html>
así, puedo poner mis 1.php, 2.php y 3.php, en una ubicación bien cubierta, con una URL complicada, para que los usuarios no puedan acceder directamente, ahora, hay manera de que los usuarios puedan saber esas rutas?? creo qu eno verdad? si no me equivoco porque las rutas está en php (side server), verdad??
  #6 (permalink)  
Antiguo 04/03/2010, 12:31
 
Fecha de Ingreso: marzo-2010
Mensajes: 18
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: problema con <a href>

Cita:
Iniciado por kesm372 Ver Mensaje
aaa que facil era, ya lo logré, no habia tenido en cuenta que aca era get en ves de post... y pos la clave estaba en index.php, asi quedo mi codigo (se aceptan sugerencias :D):

index.php:

Código:
<?php
$ENLACE=$_GET["link"];
$CARGAR="http://localhost/pruebas/1.php";
if($ENLACE=="1"){
$CARGAR="http://localhost/pruebas/1.php";
}else if($ENLACE=="2"){
$CARGAR="http://localhost/pruebas/2.php";
}else if($ENLACE=="3"){
$CARGAR="http://localhost/pruebas/3.php";
}
?>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>pagina principal</title>
</head>
<table>
<tr>
<td><a href="http://localhost/pruebas/index.php?link=1&">uno</td>
</tr>
<tr>
<td><a href="http://localhost/pruebas/index.php?link=2&">dos</td>
</tr>
<tr>
<td><a href="http://localhost/pruebas/index.php?link=3&">tres</td>
</tr>
<tr>
<th width="750" height="700" valign="top" scope="col"><iframe name="frame" frameborder="1" width=100% height=100% frameborder=0 scrolling="no" marginwidth="0" marginheight="0" src="<?php echo $CARGAR ?>" >please use a browser that supports frames</iframe></th>
</tr>
</table>
<body>
</body>
</html>
1.php:

Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>pagina 1</title>
</head>
<table>
<tr>
<td>este es el enlace 1</td>
</tr>
</table>
<body>
</body>
</html>
así, puedo poner mis 1.php, 2.php y 3.php, en una ubicación bien cubierta, con una URL complicada, para que los usuarios no puedan acceder directamente, ahora, hay manera de que los usuarios puedan saber esas rutas?? creo qu eno verdad? si no me equivoco porque las rutas está en php (side server), verdad??

aaaaa ahora me surgio otro problema :S:S:S:S:S, ahora me da:

Notice: Undefined index: link in ...\pruebas\index.php on line 2 (edite la ruta namas jeje)

es obvio porque, pero como lo soluciono, estuve leyendo que toca con isset en un foro de aca mismo pero me confundieron mas jajaja, espero puedan ayudarme gracias :P.

Etiquetas: Ninguno
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 03:19.