Hi,
I have a very strange bug in my application. I use symfony 1.2.7,
Doctrine and sfGuard.
I have a search functionnality with many criterias and I use the
DoctrinePager to display the result. The criterias are persisted with
a flash variable.
The problem is when I use Internet Explorer (6 or 7), a click on next
page destroy the flash (but not the entire session). On all the other
browsers, it works well. It works also when there is security is set
to off. And it works and when I don't display the template (ie return
sfView::NONE). These three elements are not very helpful to make a
diagnosis.
I check the request (cause I thought it was the only difference) and
the differences between the header is the presence of HTTP_KEEP_ALIVE:
'300', and HTTP_CACHE_CONTROL: max-age=0 in firefox but not in IE.
But I'm pretty sure it's not due to the cache (which is turned off in
symfony and in the browsers).
I also tested just with a string, rather than an array in the flash.
It doesn't change anything.
I tried to display the $_SESSION to bypass the symfony getFlash or
getAttribute with a namespace but the variable corresponding to the
flash is empty indeed.
I tested the setFlash() which seems to work well as long as you don't
reload the page...
I also sniff the request with Fiddler to see if it was not a problem
with the request sent by IE. I didn't find anything.
Here is a piece of code :
public function executeRechercherDossier(sfWebRequest $request)
{
$this->form = new EnregistrementDossierFormFilter();
// Traitement du formulaire
if ($request->isMethod('post'))
{
$valeurs = $request->getParameter($this->form->getName());
$this->form->bind($valeurs);
if ($this->form->isValid())
{
// Envoi des critères de recherche valides à la page de
résultat
$this->getUser()->setFlash('criteres', $valeurs);
$this->redirect('enregistrement/listeDossiers');
}
}
}
public function executeResults(sfWebRequest $request)
{
$criteres = $utilisateur->getFlash('criteres', array());
/*$this->forward404Unless($criteres != null, 'Vous devez arriver
du
formulaire de recherche pour afficher cette page.');*/
$utilisateur->setFlash('criteres', $criteres);
// Récupération des résultats de la recherche
$form = new EnregistrementDossierFormFilter();
$query = $form->buildQuery($criteres);
$this->rappelCriteres = $form->afficheCriteres($criteres);
// Récupération des informations de tri et d'ordre
$this->tri = $request->getParameter('tri', 'r.numero');
$this->ordre = $request->getParameter('ordre', 'asc');
$trisPossibles = array('r.numero', 'r.libelle_demande',
'et.numero',
'ctc.nom');
if (!in_array($this->tri, $trisPossibles))
{
$this->tri = 'r.numero';
}
// Test si l'ordre est valide
if ($this->ordre != 'asc' && $this->ordre != 'desc')
{
$this->ordre = 'asc';
}
// Construction du pager
$pagination = MyPager::getPagination('Dossier');
$this->pager = new MyPager($query, $pagination);
$this->dossiers = $this->pager->getResults();
}
If somebody has anything to provide about such things, I would be
very thanksfull.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"symfony users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/symfony-users?hl=en
-~----------~----~----~----~------~----~------~--~---