Foros del Web » Programando para Internet » PHP »

funcion HEADER y una duda

Estas en el tema de funcion HEADER y una duda en el foro de PHP en Foros del Web. hola de nuevo :) estoy redireccionando con la funcion header que me dijeron que utilice aca en el foro. pero sucede que se me presentó ...
  #1 (permalink)  
Antiguo 12/11/2003, 12:46
 
Fecha de Ingreso: octubre-2003
Mensajes: 96
Antigüedad: 20 años, 6 meses
Puntos: 0
funcion HEADER y una duda

hola de nuevo :)

estoy redireccionando con la funcion header que me dijeron que utilice aca en el foro.
pero sucede que se me presentó un problema.

Estoy queriendo pasar variables por la URL, de esta forma:

header("Location:error.php?texto='paso algo muy feo'");

lo que pasa es que el texto se me corta en el primer espacio, como puedo hacer para pasar el texto entero?

gracias :)
  #2 (permalink)  
Antiguo 12/11/2003, 19:58
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Tienes que usar la función urlencode() aplicada al valor de esa variabel que pueda tener espacios, comillas .. acentos .. etc .. para que sea un URL standar.

Código PHP:
$mensaje=urlencode("paso algo muy feo");
header("Location: error.php?texto=$mensaje");
exit; 
Y si trabajas ese tipo de variables de control usando por ejemplo indices que usarás en arrays .. sería más optimo el código y no tendrías problemas por ejemplo con el tamaño de ese texto que vas a propagar a ese scritp que vas a redireccionar.

ejemplo:

Código PHP:
header("Location: error.php?codigo=2");
exit; 
y en tu error.php

Código PHP:
// defines el array con los posibles mensajes de error ...
// Este mismo array lo puedes tener en un archivo externo y llamarlo bajo un include() .. 
// También puede ser hasta un array bidimensional para trabajar con mensajes de error en vários idiomas .. etc .. etc ...
$errores[1] ="bla bla";
$errores[2] ="ocurrió algo muyy feo";

if (isset(
$_GET['codigo'])){
$codigo=$_GET['codigo'];
echo 
$errores[$codigo];

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 10:00.