[solution] Re: Problème de cache was Formulaire CVT : bug ou idiotie de ma part ?

BERTRAND Joël <[email protected]>
Newsgroups gmane.comp.web.spip.devel
Message-ID <[email protected]>
	Pas simple, mais j'ai trouvé en tâtonnant. Il faut invalider le cache
associé à l'auteur courant. La fonction traiter() devient :

function
formulaires_membre_sympathisant_traiter_dist()
{
    $message = array();
    $donnees = array();

    $donnees['identite_nom'] = _request('nom');
    $donnees['identite_prenom'] = _request('prenom');
    $donnees['civilite'] = _request('civilite');
    $donnees['cat_socio'] = _request('sociopro');

    if (_request('membre_adherent'))
    {
        $donnees['membre_adherent'] = _request('membre_adherent');
    }
    else
    {
        $donnees['membre_adherent'] = 'non';
    }

    $donnees['maj'] = date("Y-m-d H:i:s");

    // Cette requête ne peut échouer (sauf si le disque est plein
    // auquel cas je ne peux rien faire).

    if (sql_updateq('spip_auteurs', $donnees,
        'id_auteur = '.$GLOBALS['visiteur_session']['id_auteur']))
    {
        $message['message_ok'] =
                'La modification des données a été prise en compte.';
    }
    else
    {
        $message['message_ok'] =
                'Erreur d\'enregistrement dans la base de données.';
    }

    include_spip('inc/invalideur');

suivre_invalideur("id='auteur/".$GLOBALS['visiteur_session']['id_auteur']
            ."'");

    return $message;
}

	À cette condition, spip effectue une requête sur la table 'auteur' et
recharge les bonnes données. Sinon, il les prend dans le cache (mais
seulement lorsque l'utilisateur a quitté la page et y revient).

	Ça vaudrait peut-être le coup d'avoir une fonction sql qui passe outre
le cache pour éviter ce genre de comportement.

	Bien cordialement,

	JB
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.