Foros del Web » Programando para Internet » PHP »

recoger la direccion url del navegador

Estas en el tema de recoger la direccion url del navegador en el foro de PHP en Foros del Web. Hola! Uso un include para añadir la cabecera de mi pagina, pero lo que queria es que la cabecera cambiara si estaba en una u ...
  #1 (permalink)  
Antiguo 11/07/2005, 07:15
 
Fecha de Ingreso: mayo-2005
Ubicación: Muy lejos de aquí
Mensajes: 367
Antigüedad: 18 años, 11 meses
Puntos: 0
recoger la direccion url del navegador

Hola!

Uso un include para añadir la cabecera de mi pagina, pero lo que queria es que la cabecera cambiara si estaba en una u otra pagina, por eso quiero saber la url que marca en ese momento el navegador, por ejemplo, si estoy en www.miweb.com/dir1/ sea la cabecera1 y si estoy en www.miweb.com/dir2/ sea la cabecera 2. Me explico?

Solo quiero saber como guardar en una variable la url del navegador.

A ver si alguien me ayuda. gracias
__________________
Saludos!
  #2 (permalink)  
Antiguo 11/07/2005, 07:17
okram
Invitado
 
Mensajes: n/a
Puntos:
puedes usar la variable $PHP_SELF;... algo asi:

<?
echo "Actualmente estas en la pagina: ".$PHP_SELF;
?>

espero haberte ayudado... salu2
  #3 (permalink)  
Antiguo 11/07/2005, 07:18
okram
Invitado
 
Mensajes: n/a
Puntos:
más especificamente, puedes hacer esto:
<?
$actual=$PHP_SELF;
//LO QUE SEA:::
?>
y la url quedaria guardada en la variable $actual... salu2
  #4 (permalink)  
Antiguo 11/07/2005, 11:37
 
Fecha de Ingreso: febrero-2004
Ubicación: España. Madrid
Mensajes: 454
Antigüedad: 20 años, 2 meses
Puntos: 0
existe alguna pagina que contenga los nombres de todas las variables que proporciona php para saber cosillas como esta (del estilo)
en www.php.net solo he visto la lista de funciones....
igual se me ha pasado

saludos
  #5 (permalink)  
Antiguo 11/07/2005, 11:41
 
Fecha de Ingreso: febrero-2004
Ubicación: España. Madrid
Mensajes: 454
Antigüedad: 20 años, 2 meses
Puntos: 0
bien...... esto me pasa por no terminar de mirar :p
http://es.php.net/reserved.variables

por cierto..... no deberia ir PHP_SELF dentro de _SERVER[''] ¿?

saludos

Última edición por cyborg; 11/07/2005 a las 11:52
  #6 (permalink)  
Antiguo 14/07/2005, 03:51
Avatar de wesse  
Fecha de Ingreso: junio-2003
Ubicación: España
Mensajes: 577
Antigüedad: 20 años, 10 meses
Puntos: 1
Haciendo lo que dice okram sólo sale: /fotos/foto_ampli.php
cuando en realidad la pagina es: http://www.dominio.com/fotos/foto_am...pli/chalet.jpg

Cómo se podría capturar toda la url?
  #7 (permalink)  
Antiguo 14/07/2005, 05:05
 
Fecha de Ingreso: diciembre-2004
Mensajes: 120
Antigüedad: 19 años, 4 meses
Puntos: 0
Hola.
Usa:
$ruta = $_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF'];
  #8 (permalink)  
Antiguo 14/07/2005, 05:10
Avatar de wesse  
Fecha de Ingreso: junio-2003
Ubicación: España
Mensajes: 577
Antigüedad: 20 años, 10 meses
Puntos: 1
Ahora he conseguido esto: www.dominio.com/fotos/foto_ampli.php

pero necesito también el "?foto=ampli/chalet.jpg" para que sea completa:

http://www.dominio.com/fotos/foto_am...pli/chalet.jpg
  #9 (permalink)  
Antiguo 14/07/2005, 05:26
 
Fecha de Ingreso: diciembre-2004
Mensajes: 120
Antigüedad: 19 años, 4 meses
Puntos: 0
Vaya.
Mira a ver si te vale esto:

<?php
$ruta = $_SERVER['SERVER_NAME'].$_SERVER['SCRIPT_NAME'];
if ($_SERVER['QUERY_STRING']) $ruta = $ruta .'?'.$_SERVER['QUERY_STRING'];
echo $ruta;
?>
  #10 (permalink)  
Antiguo 14/07/2005, 05:57
Avatar de DINASEN  
Fecha de Ingreso: marzo-2003
Mensajes: 997
Antigüedad: 21 años, 1 mes
Puntos: 1
prueba con

$actual =$_SERVER['REQUEST_URI'];

Un Saludo
  #11 (permalink)  
Antiguo 14/07/2005, 12:41
Avatar de wesse  
Fecha de Ingreso: junio-2003
Ubicación: España
Mensajes: 577
Antigüedad: 20 años, 10 meses
Puntos: 1
Dinasen y flopi, los dos funcionan:

Con el de flopi me aparece:
/fotos/foto_ampli.php?foto=ampli/chalet.jpg
así que con solo escribirle yo al script el nombre de mi dominio ya tendría resuelto de una manera sencilla el caso.

Con el de dinasen me aparece:
http://www.dominio.com/fotos/foto_am...pli/chalet.jpg
y funciona correctamente, salvo un pequeño detalle, que mi web comienza con http://dominio.com y no http://www.dominio.com
Realmente no se cual es la diferencia, pero he comprobado que escribiendo www.dominio.com no funciona la web


Porqué será?
  #12 (permalink)  
Antiguo 14/07/2005, 15:44
Avatar de DINASEN  
Fecha de Ingreso: marzo-2003
Mensajes: 997
Antigüedad: 21 años, 1 mes
Puntos: 1
mmmm yo se que en la actualidad un dominio www.dominio.com si no pones el www funciona pero que por omision ya no te vaya con www, pues no se parece raro, mandale un ticket atu proveedor de host que supongo que sera el mismo de dominio y lo mismo el nos puede dar una respuesta

Un Saludo
  #13 (permalink)  
Antiguo 14/07/2005, 16:27
Avatar de wesse  
Fecha de Ingreso: junio-2003
Ubicación: España
Mensajes: 577
Antigüedad: 20 años, 10 meses
Puntos: 1
Bueno en realidd mi dominio es del tipo empresa.midominio.com (con el http delante) No se si eso influirá
  #14 (permalink)  
Antiguo 15/07/2005, 00:03
Avatar de DINASEN  
Fecha de Ingreso: marzo-2003
Mensajes: 997
Antigüedad: 21 años, 1 mes
Puntos: 1
vale eso es otro cosa eso es un subdominio y los subdominios no llevan www ahora si es comprensible

Un Saludo
  #15 (permalink)  
Antiguo 15/07/2005, 04:32
Avatar de wesse  
Fecha de Ingreso: junio-2003
Ubicación: España
Mensajes: 577
Antigüedad: 20 años, 10 meses
Puntos: 1
aaaaaaaa no sabia yo eso
Bueno pues entonces usaré el código que no me da el nombre del dominio y lo pondre yo a mano.

Muchas gracias! llevaba mucho tiempo buscando esto!!
  #16 (permalink)  
Antiguo 23/07/2005, 02:58
Avatar de wesse  
Fecha de Ingreso: junio-2003
Ubicación: España
Mensajes: 577
Antigüedad: 20 años, 10 meses
Puntos: 1
Hola, de nuevo estoy aquí con un problemilla...

Al final utilizo:
$actual =$_SERVER['REQUEST_URI'];

Al imprimirlo así
<?
$actual = $_SERVER['REQUEST_URI'];
echo"http://dom.dominio.com".$actual;
?>

Me sale la url correcta, pero cuando esto lo introduzco en el formulario para recomerdar, lo que me llega al email es:
http://dom.dominio.com/fotos/foto_am...?accion=enviar
en lugar de:
http://don.dominio.com/fotos/foto_am...pli/chalet.jpg
que es lo que quiero que llegue...

Por qué me envia "?acción=enviar"?

Espero q podais ayudarme... un saludo y gracias
  #17 (permalink)  
Antiguo 23/07/2005, 03:49
Avatar de DvD AdN  
Fecha de Ingreso: mayo-2005
Ubicación: Frente al monitor
Mensajes: 610
Antigüedad: 18 años, 11 meses
Puntos: 0
sera que pones:

Código PHP:
if ($accion == "enviar") {
$mensaje=$msg."http://dom.dominio.com".$actual;
mail ($para,$asunto,$mensaje);
}else{
....... 
y al darle enviar al formulario la URL cambia a http://dom.dominio.com/fotos/foto_am...?accion=enviar
y entonces $_SERVER['REQUEST_URL'] toma ese valor, y el correo se envia como dices
__________________
Keep f***ing learning
Ask for f***ing help.
Use f***ing spell check.
Think about all the f***ing possibilities.
  #18 (permalink)  
Antiguo 23/07/2005, 04:01
Avatar de DvD AdN  
Fecha de Ingreso: mayo-2005
Ubicación: Frente al monitor
Mensajes: 610
Antigüedad: 18 años, 11 meses
Puntos: 0
Se me olvido

Tambien debiste poner en el action del form "pagina.php?accion=enviar"
entonces la url va a cambiar.
Estoy en lo correcto?????

Entonces envez de eso en el action del form pon "<?$_SERVER['PHP_SELF']?>"
y en vez de
Código PHP:
if ($accion == "enviar") {........ 
usa:
Código PHP:
if (isset($la_variable_que_esta_en_el_atributo_name_del_input_submit)) {
.............. 
y en el submit pon:

<input type="submit" value="Recomendar" name="la_variable_que_digo">

lo que hace isset(); es revisar si una variable existe.

Estoy en lo correcto?????? O toy mal??????

Si estoy en lo correcto, espero que te sirva

Salu2
__________________
Keep f***ing learning
Ask for f***ing help.
Use f***ing spell check.
Think about all the f***ing possibilities.
  #19 (permalink)  
Antiguo 23/07/2005, 04:11
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Borré un mensaje porque decía lo mismo que planteas (con el formulario) DvD_AdN... más vuelvo a escribir porque se sigue adivinando... así que hago la invitación a wesse de que sea claro: ¿dónde recojes la URL?, ¿dónde esta el formulario?, ¿dónde recojes el formulario?, ¿dónde envias el correo?... posiblemente sea una simple cuestión de órden...

Salu2
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #20 (permalink)  
Antiguo 23/07/2005, 09:48
Avatar de wesse  
Fecha de Ingreso: junio-2003
Ubicación: España
Mensajes: 577
Antigüedad: 20 años, 10 meses
Puntos: 1
Mira jam1138, este es el formulario:

Código PHP:
<table width="209" height="242" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#CCCC99" class="normal-verd-10" style="border:#FFFFFF 1px solid">
  <tr> 
    <td height="240"> 
      <!-- formulario de recomendación -->
      <? if ($HTTP_GET_VARS["accion"] == "") { 
?>
      <form method="post" action="foto_ampli.php?accion=enviar" name="recomienda">
        <div align="center"><b>Recomienda este sitio</b><br>
          Tu Nombre:<br>
          <input name="n_remitente" type="text" class="desplegable1" size="10">
          <br>
          Tu E-mail:<br>
          <input name="e_remitente" type="text" class="desplegable1" size="15">
          <br>
          Nombre de tu amigo:<br>
          <input name="n_destinatario" type="text" class="desplegable1" size="10">
          <br>
          E-mail de tu amigo:<br>
          <input name="e_destinatario" type="text" class="desplegable1" size="15">
          <br>
          <br>
          <input name="submit2" type="submit" value="enviar">
        </div>
      </form>
      <!-- envío del formulario y acuse de envío o información de errores -->
      <? 


elseif (
$HTTP_GET_VARS["accion"] == "enviar") { 


$n_destinatario $HTTP_POST_VARS["n_destinatario"]; 
$e_destinatario $HTTP_POST_VARS["e_destinatario"]; 
$n_remitente $HTTP_POST_VARS["n_remitente"]; 
$e_remitente $HTTP_POST_VARS["e_remitente"]; 


  if (
$n_destinatario != "" && $e_destinatario != "" && $n_remitente != "" && $e_remitente != "") { 


     
$actual $_SERVER['REQUEST_URI'];
     
$url "http://dom.dominio.com".$actual;

     
$nombre_del_sitio "web"

     
$asunto $n_remitente " te recomienda esta web"


     
$mensaje "Hola " $n_destinatario ":<br>"
     
$mensaje .= $n_remitente " te recomienda que visites <b>" $nombre_del_sitio "</b>.<br>"
     
$mensaje .= "Puedes verlo en <a href='" $url "'>" $url "</a><br><br>Esperamos que disfrutes en la web."



     
$encabezado "From:".$e_remitente."\nAReply-To:".$e_remitente."\n"
     
$encabezado .= "X-Mailer:PHP/".phpversion()."\n"
     
$encabezado .= "Mime-Version: 1.0\n"
     
$encabezado .= "Content-Type: text/html"



     
mail($e_destinatario,$asunto,$mensaje,$encabezado); 



     echo 
"<div align='center'><b>El mensaje ha sido enviado</b>.<br>Gracias por recomendarnos!</div>"

     } 

//si hay error

     
else { 

     echo 
"<div align='center'>Por favor, completa todos los campos.</div><br>"
     echo 
"<div align='center'><a href='recomiendanos.php'>Completar</a></div>"

     } 


?>
    </td>
  </tr>
</table>
  #21 (permalink)  
Antiguo 25/07/2005, 01:10
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
.... después de todo, parece ser que se van adquiriendo capacidades adivinatorias ... veamos lo que haces:

1.- Ves si la URL no esta pasando un valor: if ($HTTP_GET_VARS["accion"] == ""

2.- Suponiendo no lo tiene accedes a el formulario, según el action será enviado a misma_hubicación/foto_ampli.php?accion=enviar. Donde supongo foto_ampli.php es el mismo archivo así que, vuelve a cargarse pero ahora la URL sí tendrá el valor buscado en el paso 1.

3.- Ahora se cumple el elseif: elseif ($HTTP_GET_VARS["accion"] == "enviar") {

4.- Recibes el formulario, validas campos vacios... cosa aparte.

5.- Recojes los valores pasados por URL: $actual = $_SERVER['REQUEST_URI'];. Recordemos que estamos en la URL que se originó en el paso 3 por lo que lo recojido será ?accion=enviar.

Supongo es suficiente para que entiendas tu error; para responder tu pregunta...

Ahora, consejos/recomendaciones:
- Evita pasar valores por el action del formulario... no es correcto. Para ver si provienes de un formulario hazlo validando la existencia de un elemento que sabes se recibirá. Lo normal es hacerlo con el mismo botón: $_POST['submir'] para tu caso, igual puedes usa method GET; primero aclarar que a diferencia es que el valor se añadirá porque es parte del formulario no porque lo pongas en el action y segundo decir que tomes en cuenta lo que implica tomar valores por URL --alterables--.

- Haz uso de la función empty() en vez de tus validaciones de $algo=="". Funciona y pero técnicamente no es lo adecuado... solo es una sugerencia.

- Supongo la URL que quieres enviar es la que provoca que se muestre el formulario... capturala en ese instante, imprimela como un campo oculto del mismo --formulario--, recibela como normalmente lo haces (cheka las funciones urlencode() y urldecode())... simple!. Igual puedes pasar el valor por una variable de sesión... como quieras.

- último pero no menos importante: ORGANIZATE ... no son errores de funciones ni demás, son errores de pensarle... haz lo que yo, ve PASO A PASO lo que haces.. piensa antes o que vaz a hacer, haz diagramas de flujo... COMENTA TU CÓDIGO...

La mejor de las suertes!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #22 (permalink)  
Antiguo 25/07/2005, 01:52
Avatar de DINASEN  
Fecha de Ingreso: marzo-2003
Mensajes: 997
Antigüedad: 21 años, 1 mes
Puntos: 1
prueba con

if ($submit=="enviar"){
enviamos
}
else{
presentamos el formulario
y ne el action pon <?php echo $PHP_SELF ?>
}

Un Saludo
  #23 (permalink)  
Antiguo 19/09/2005, 10:38
Avatar de wesse  
Fecha de Ingreso: junio-2003
Ubicación: España
Mensajes: 577
Antigüedad: 20 años, 10 meses
Puntos: 1
Bueno después de este verano desestresado de php vuelvo a la carga con el dichoso formulario de recomendación. Voy a retomarlo y a ver que ocurre. Por el momento sigue sin funcionarme, las últimas explicaciones de jam solo han hecho liarme mas :S
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 10:10.