Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Skeletron en 25 Septiembre 2009, 07:06 am



Título: Ayuda con Redireccion en PHP
Publicado por: Skeletron en 25 Septiembre 2009, 07:06 am
Hola gente..
me dijeron que colocando:
header("Location: http://www.google.com.ar");
En PHP, me redirije a google.com.ar

Es eficiente éste metodo???

Y hay alguna manera de poder a esa web a la que me "dirijo", le mande un valor para que tenga en algun campo de texto?? (uno de Nombre de Usuario)


Título: Re: Ayuda con Redireccion en PHP
Publicado por: :ohk<any> en 25 Septiembre 2009, 15:21 pm
El método si es eficiente.

Si hay una forma, enviando un parámetro via URL asi:

Código
  1. $var = index.php?usuario=ejemplo
  2.  
  3. header("Location: ". $var);

Puedes hacer lo mismo con tu ejemplo, pero no puedes controlar la forma en que lo procese el sitio que lo reciba a menos que sea tuyo  ;D

saludos


Título: Re: Ayuda con Redireccion en PHP
Publicado por: Skeletron en 25 Septiembre 2009, 19:08 pm
Perfecto..
Muchas Gracias!


Título: Re: Ayuda con Redireccion en PHP
Publicado por: ^Cloud^ en 27 Septiembre 2009, 20:22 pm
Perfecto..
Muchas Gracias!

¿Qué hace header? A mi no me ha quedado nada claro si es mejor usar esa funcion de php o hacer un refresh en la cabecera de un fichero html o usar mod_rewrite de apache..

Gracias por aclarame las dudas y un saludo,






Título: Re: Ayuda con Redireccion en PHP
Publicado por: [u]nsigned en 28 Septiembre 2009, 04:55 am
MOD_REWRITE no tiene nada que ver con lo que hace header. Este modulo de Apache simplemente nos permite reescribir URL,  se usa generalmente para usar URL's estaticas en lugar de dinammicas, y asi mejorar el SEO de nuestra WEB.

La funcion header de php permite controla la cabecera que enviara dicha pagina al navegador. Se puede usar para varias cosas como definir el mime-type o la codificacion de idioma. Pero usando Location lo que hace es redirigir la pagina a la URL indicada. Seria un analogo del location.href de JS, pero ejecutada en el servidor.

Saludos


Título: Re: Ayuda con Redireccion en PHP
Publicado por: ^Cloud^ en 29 Septiembre 2009, 13:37 pm
Casi bien pero te falta mirar a fondo la documentación de apache http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html. Mod rewrite también te va a permitir realizar redirecciones. De hecho, se suele utilizar mod_rewrite para realizar redirecciones 301 cuando cambian las urls de las paginas y mantener el page ranking de las paginas antiguas hasta que vuelvan a indexar las nuevas. Cosillas de SEO.



Título: Re: Ayuda con Redireccion en PHP
Publicado por: [u]nsigned en 29 Septiembre 2009, 20:23 pm
Casi bien pero te falta mirar a fondo la documentación de apache http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html. Mod rewrite también te va a permitir realizar redirecciones. De hecho, se suele utilizar mod_rewrite para realizar redirecciones 301 cuando cambian las urls de las paginas y mantener el page ranking de las paginas antiguas hasta que vuelvan a indexar las nuevas. Cosillas de SEO.

Gracias por el dato, ignoraba eso  ;D

Saludos


Título: Re: Ayuda con Redireccion en PHP
Publicado por: дٳŦ٭ en 29 Septiembre 2009, 20:28 pm
pues si quieres mandar variables por post te toca curl.


Título: Re: Ayuda con Redireccion en PHP
Publicado por: Skeletron en 29 Septiembre 2009, 21:18 pm
Se me agravió el problema..

Resulta que con PHP no puedo redireccionar en awardspace..
me da éste error:
Warning: Cannot modify header information - headers already sent by (output started at /home/www/miweb.com.ar/indexere.php:5) in /home/www/miweb.com.ar/index.php on line 80

Y les comento que la linea 80 dice:
   header("Location: http://www.otraweb.com/es" . $_SERVER['REQUEST_URI']);


O sea..
Aparentemente, el hosting no me deja manejar esos heraders..
Que me recomiendna entonces para "redireccionar?


Título: Re: Ayuda con Redireccion en PHP
Publicado por: [u]nsigned en 30 Septiembre 2009, 00:47 am
Eso es porque ya has 'printado' algo en la web.

Por ejemplo:

Código
  1. <?php
  2. echo "Texto";
  3. header("Location: http://www.elhacker.net");
  4. ?>

Dá este error:
Citar
Texto
Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\p\header.php:2) in C:\xampp\htdocs\p\header.php on line 3

Deberias buscar donde estas mostrando algo en la pagina antes de usar header y cambiarlo. No se puede usar la funcion header si ya has mostrado algo en la pagina, me explico?

Saludos


Título: Re: Ayuda con Redireccion en PHP
Publicado por: Skeletron en 30 Septiembre 2009, 06:01 am
Gracias igual amigo..
Lo solucioné cerrando el php sin salir del IF, colocando un codigo de redireccion de javascript, y volviendo a abrir PHP y cerrar el "}" del IF..


:D

Gracias amigo!


Título: Re: Ayuda con Redireccion en PHP
Publicado por: [u]nsigned en 30 Septiembre 2009, 20:26 pm
Gracias igual amigo..
Lo solucioné cerrando el php sin salir del IF, colocando un codigo de redireccion de ‭‬javascript, y volviendo a abrir PHP y cerrar el "}" del IF..


:D

Gracias amigo!

Ok. Pero tené en cuenta que si algún navegante tiene desactivado JS no se redireccionara...

Yo te recomiendo hacer la redireccion mediante header con PHP.

Mas de una vez me he topado con este problema: tener que usar header() (o session_start()) pero ya habia sacado info a la página y logicamente me tiraba un error.

Asi que ahora adopte una nueva forma de programar, tomada de PHPNuke. Consiste basicamente en ir almacenando TODO lo que voy a querer 'printar' en el documento en una variable, asi puedo usar cualquier funcion sin problemas, y por utlimo proceder a printar dicha variable.

Pero en fin es solo una recomendacíon  ;)

Saludos


Título: Re: Ayuda con Redireccion en PHP
Publicado por: ^Cloud^ en 1 Octubre 2009, 09:53 am
Una de las soluciones que nos presta PHP para modificar las cabeceras una vez se ha impreso algo por pantalla es usar el buffer de salida de PHP. De esta forma la salida será almacenada en el buffer permitiendote realizar la redirección antes de enviar los datos.

http://es.php.net/manual/en/book.outcontrol.php