Bug si date du serveur php différente du serveur mysql
Dans le cas où l'on a décidé que les articles n'étaient pas publiés tant qu'ils étaient dans le futur, on peut rencontrer le problème suivant :
- serveur web réglé sur la date/heure T
- serveur mysql réglé sur la date/heure T+2 minutes (c'est le cas des plan 240 d'OVH en ce moment).
- ecriture d'un article, passage en publication : mytérieusement, il est toujours en prévisualisation.
- attendre 2 minutes : il peut être vu en ligne
Analyse rapide du code :
- dans inc/rubriques.php, on a :
// Afficher les articles post-dates ?
include_spip('inc/meta');
$postdates = ($GLOBALS['meta'][[post_dates]] == "non") ?
"AND fille.date <= NOW()" : _;
==> Date prise dans [[MySQL]]
- action/editer_article.php, on a :
// En cas de publication, fixer la date a "maintenant"
// sauf si $c commande autre chose
if ($champs['statut'] == 'publie') {
if ($d = _request('date', $c))
$champs['date'] = $d;
else
$champs['date'] = date('Y-m-d H:i:s');
}
==> Date prise dans php
Solution : prendre la date dans [[MySQL]] ou dans php de manière cohérente partout, mais pas l'un ou l'autre.