157 Posts
Hableur
1 year ago
6
Topic

J4Seb4, site neuf

Bonjour,

J'ai un problème avec mon formulaire d'inscription user en frontend.

Mon form user comprend des champs natifs (table _users) et des champs persos (table _cck_store_form_user). Aucun problème en backoffice, je peux créer et modifier mes users.

En ce qui concerne la création en front, cela fonctionne si je ne mets que des champs natifs dans le formulaire, mais j'ai l'erreur "Field 'id' doesn't have a default value" dès que j'ajoute un champ _cck_store_form_user.

Si je paramètre Seblod SQL mode en legacy, l'erreur devient Duplicate entry '0' for key 'PRIMARY'


Cordialement

Get a Book for SEBLOD
51 Posts
newbis
1 year ago
0
Level 1

Bonjour,
Cette erreur est une vraie prise de tête.
Peux-tu essayer cette manip :

  1. Exécutez l'outil Administrateur MySQL en tant qu'administrateur.
  2. Allez ensuite dans Variable de démarrage.
  3. Allez ensuite dans l'onglet Avancé.
  4. Recherchez le mode SQL et supprimez le STRICT_ALL_TABLES et / ou STRICT_TRANS_TABLES, puis cliquez sur Appliquer les modifications.
  5. Redémarrez le serveur MySQL.

Vérifier si l'erreur persiste.
Alain

157 Posts
Hableur
1 year ago
1
Level 1

Merci Alain,

le site est chez o2switch, je ne peux pas faire ça ?

Cordialement
Christophe

51 Posts
newbis
1 year ago
0
Level 2

Je pensais que tu testais ton site en local.

Deuxième piste
Regarde le code de la page et vérifie si le formulaire pointe bien au bon endroit

exemple:

si

<input type="hidden" name="config[type]" value="personne" />

alors 

<input type="hidden" name="config[url]" value="http://.../form/personne" />

157 Posts
Hableur
1 year ago
2
Level 1

Merci Alain.

Dans les deux cas j'ai la même url : <input type="hidden" name="config[url]" value="https://monsite.fr/sinscrire/form/user.html"> avec <input type="hidden" name="config[type]" value="user">

Par contre je viens de découvrir un truc "étonnant" : si j'ajoute mon champ "perso" en haut du formulaire donc au-dessus des champs user_xxx, ça ne fonctionne pas (Field 'id' doesn't have a default value), si je le place en bas de formulaire, l'enregistrement se fait !

Je vais faire plus de tests en testant finement la place. Mon hypothèse actuelle, c'est que  le formulaire est traité dans l'ordre des champs, et que quand il essaye d'enregistrer d'abord un champ perso, comme le nouvel user_id n'a pas été encore créé, ça génère logiquement l'erreur constatée.

157 Posts
Hableur
1 year ago
1
Level 2

Je confirme : il suffit que je place le champ user_username en tête de formulaire (comme je le remplis avec l'adresse mail en before store, je le cache) pour que ça fonctionne.

51 Posts
newbis
1 year ago
0
Level 3

Bonjour Christophe,
Belle trouvaille !
J'ai testé différentes solutions pour fixer ce bug. Parfois mon site fonctionne parfaitement pendant plusieurs mois et puis... l'erreur s'affiche.
Croisons les doigts.
Merci,
Alain

Get a VIP membership