Impossible de créer un evenement dans certains cas #57

Closed
opened 2 months ago by maieul · 5 comments
maieul commented 2 months ago
Collaborator

Chez Nursit, SPIP 4.1.2, agenda 4.5.1

sur la page ?exec=evenement_edit&id_evenement=new, j'ai l'erreur en capture d'écran.

Cela n'arrive pas si je vais sur ?exec=evenement_edit

Chez Nursit, SPIP 4.1.2, agenda 4.5.1 sur la page ?exec=evenement_edit&id_evenement=new, j'ai l'erreur en capture d'écran. Cela n'arrive pas si je vais sur ?exec=evenement_edit
Poster
Collaborator

(il s'agit du site du poirier au loup, pour info. J'ai tenté de reproduire en local, je n'y arrive pas.

(il s'agit du site du poirier au loup, pour info. J'ai tenté de reproduire en local, je n'y arrive pas.
Poster
Collaborator

Sur ?exec=evenement_edit cela se produirait à l'enregistrement.

Sur ?exec=evenement_edit cela se produirait à l'enregistrement.
Collaborator

Je n’arrive pas à reproduire en local, du coup je ne vois pas dans quel cas ça se produit. Il n’y a pas de fonction precharger_ dans le plugin agenda en plus.

Mais je vois que tu sembles avoir un &id_evenement=0 dans une URL, alors que toutes mes URLs en local ont des &id_evenement=new

En rapport avec e7e916e084 certainement aussi.

Sur ce commit je me demande si c’était pas $row ?: [] à mettre en fait.
Ou ($row ?? []) ?: []

De sorte que null ou false passent en []

Je n’arrive pas à reproduire en local, du coup je ne vois pas dans quel cas ça se produit. Il n’y a pas de fonction `precharger_` dans le plugin agenda en plus. Mais je vois que tu sembles avoir un `&id_evenement=0` dans une URL, alors que toutes mes URLs en local ont des `&id_evenement=new` En rapport avec https://git.spip.net/spip/spip/commit/e7e916e084292306a08b92e4b54f4c43ee78783e certainement aussi. Sur ce commit je me demande si c’était pas `$row ?: []` à mettre en fait. Ou `($row ?? []) ?: []` De sorte que `null` ou `false` passent en `[]`
Owner

oui donc en effet c'est lié à sqlite vs mysql

  • en mysql, mysqli_fetch_array() retourne un null quand il y a plus de résultat et un false en cas d'échec.
  • en sqlite PDOStatement::fetch retourne false qu'il n'y ait plus de résultat ou en cas d'échec. Il faudrait donc que le req/sqlite regarde la présence d'erreur pour distinguer si il doit renvoyer null ou false.

Mais dans les 2 cas, la proposition de @marcimat de remplacer le ?? par ?: semble la bonne solution

oui donc en effet c'est lié à sqlite vs mysql * en mysql, `mysqli_fetch_array()` retourne un null quand il y a plus de résultat et un false en cas d'échec. * en sqlite `PDOStatement::fetch` retourne false qu'il n'y ait plus de résultat ou en cas d'échec. Il faudrait donc que le req/sqlite regarde la présence d'erreur pour distinguer si il doit renvoyer null ou false. Mais dans les 2 cas, la proposition de @marcimat de remplacer le `??` par `?:` semble la bonne solution
b_b commented 3 weeks ago
Collaborator

On ferme donc.

On ferme donc.
b_b closed this issue 3 weeks ago
Sign in to join this conversation.
No Milestone
No Assignees
4 Participants
Notifications
Due Date

No due date set.

Dependencies

This issue currently doesn't have any dependencies.

Loading…
There is no content yet.