Foros del Web » Programando para Internet » PHP »

mantener variables al hacer header location(con smarty, sin usar get)

Estas en el tema de mantener variables al hacer header location(con smarty, sin usar get) en el foro de PHP en Foros del Web. Hola a tod@s, os cuento un poquito :) envío un formulario a la misma página de este y para que no me de el fallo ...
  #1 (permalink)  
Antiguo 29/01/2009, 10:05
 
Fecha de Ingreso: noviembre-2007
Mensajes: 382
Antigüedad: 16 años, 4 meses
Puntos: 16
mantener variables al hacer header location(con smarty, sin usar get)

Hola a tod@s, os cuento un poquito :)

envío un formulario a la misma página de este y para que no me de el fallo de registros repetidos por el f5 al salvar los datos lo retorno con header location pero claro pierdo entonces el mensaje enviado o no.
Estoy con smarty y no consigo asignar la variable ni asi
$smarty->assign('error', false);
ni asi (que esta si que me ha sacado de algún apuro)
$smarty->assign('error', $smarty->get_template_vars('error'));

No puedo hacerlo por get por que tengo las urls reescritas y se me va a hacer lio al parsear la url

¿Qué hago?
Gracias

Última edición por manzarinaa; 30/01/2009 a las 04:09
  #2 (permalink)  
Antiguo 29/01/2009, 10:35
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: mantener variables al hacer header location(con smarty, sin usar get)

Hola manzarinaa,

Usa entonces variables de sesión para pasar las variables y rescatarlas en el otro documento.

Saludos.
  #3 (permalink)  
Antiguo 29/01/2009, 11:05
 
Fecha de Ingreso: noviembre-2007
Mensajes: 382
Antigüedad: 16 años, 4 meses
Puntos: 16
Respuesta: mantener variables al hacer header location(con smarty, sin usar get)

Gracias GatorV
Esta solución la vi esta mañana y como llevo poco tiempo tocando smarty, pensé que habría algo por ahí..pero nada si que voy a plantar ahí una variable de sesión y sanseacabó.
Gracias de nuevo
  #4 (permalink)  
Antiguo 30/01/2009, 04:08
 
Fecha de Ingreso: noviembre-2007
Mensajes: 382
Antigüedad: 16 años, 4 meses
Puntos: 16
Respuesta: solucionado- mantener variables al hacer header location(con smarty, sin u

ais...
el caso es que al redireccionar me pierde la sesión
este es el código a ver si alguienme puede echar un cable.

Aqui inicio sesion si no la hay y asigno si hay o no errores
Código:
if (! session_id()) {
    		session_start();
		}
		if($saveInBD)
		{
			//mando mail
			$res = $comment->sendMailComment($post);
			if($res)
				{
					//se ha enviado un mail
					$_SESSION["error"]= "adios";
				}else{
					//no se ha enviado
					$_SESSION["error"]=  "adios";
				}
		}else{
				//ERROR1: no se han guardado los datos correctamente
				$_SESSION["error"]="hola";
		}
			$page=$this->funcLinkRecepta($post['post'], $post['nom_post']);
			
			//$smarty = & $this->_moduleManager->getSmarty();
					//$smarty->assign('error', $error);
			header("Location: " . $page);
y aqui el template que los muestra

Código:
{if $smarty.post.enviar}
	   {validateComm post=$smarty.post}
  
  		{if $error}
  		        mensaje de error en la validacion
			{if $noInfo}- tal tal{/if}
			{if $email}- tal tal{/if}
			{if $antiRobots} - tal tal{/if}
			{if $titCom} -tal tal{/if}
			{if $comentari} -tal tal{/if}
			</div>
		{else}
			{saveDadas post=$smarty.post}
		{/if}------------------------------------------------>hasta aqui funciona
{elseif $smarty.session.error == "hola"}
		mensaje se ha mandado bien
{elseif $smarty.session.error == "adios"}
		mensaje se ha mandado mal
{/if}
el var_dump de la sesion me da null y $smarty.session.error me da 'adios' siempre

Muchisimas gracias
  #5 (permalink)  
Antiguo 30/01/2009, 10:14
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: mantener variables al hacer header location(con smarty, sin usar get)

Bueno primero veo esto:
Código:
if($res)
				{
					//se ha enviado un mail
					$_SESSION["error"]= "adios";
				}else{
					//no se ha enviado
					$_SESSION["error"]=  "adios";
				}
En los dos casos asignas adios ....

Por otro lado, prueba hacer un var_dump($_SESSION) en la otra clase donde recibes los valores.

Saludos
  #6 (permalink)  
Antiguo 31/01/2009, 09:27
 
Fecha de Ingreso: noviembre-2007
Mensajes: 382
Antigüedad: 16 años, 4 meses
Puntos: 16
Respuesta: mantener variables al hacer header location(con smarty, sin usar get)

si, iniciando la sesion en la clase no la pierdo.
Gracias por responder.

Saludos
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 16:34.