Migration 4.0 vers 4.17 mot de passe admin dans les choux !

Bonjour,
je me suis décidé à passer de la 4.0x à la 4.1x.
J’ai donc fait tourner spip_loader.php avec succès, en apparence.
Une fois en 4.17, je me suis déconnecté de l’admin et j’ai voulu me reconnecter. Là le mot de passe avait sauté, ou du moins n’était plus reconnu.
Pas de panique je clique sur le lien « j’ai oublié mon mot de passe » - je reçois le lien pour le renouveler - je saisi le nouveau mot de passe et de valide et là le lien çi dessous refuse de fonctionner :
https://xxxxxs.net/spip/spip.php?page=spip_pass&p=111xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

« Cette page ne fonctionne pas
Impossible actuellement de traiter cette demande via xxxxxxs.net.
HTTP ERROR 500 »

J’essai alors la réinstallation en supprimant config.php (le htaccess) et recharge le site avec /ecrire/ et là je tombe sur une page spip de « site en travaux » avec l’alerte : Attention : un problème technique (serveur SQL) empêche l’accès à cette partie du site. Merci de votre compréhension.

Que faire après ce problème de migration, et ces deux solutions en échec pour renouveler le mot de passe admin ?
Help !

Salut, c’est peut-être un problème similaire à cles.php, secret_des_auth et problème d'écriture

Quelles sont les variables définies dans le fichier config/cles.php de ton site ?

Ou alors, c’est qu’il manque la lib PHP Sodium qui est nécessaire à partir de SPIP 4.1

Bonjour b_b
Ca ressemble à ça

<?php die ('Acces interdit'); ?>

{« secret_du_site »:« BVeZ602jMv1AjQoVN3inArlkYFKET…= »,« secret_des_auth »:« q/yu6g6tajq5fqC…= »}

Bonjour RealET
j’image que mon hébergeur lorsque j’ai basculé sur PhP 8.x l’intègre non ? sinon j’ai jeté un oeil mais dans les directive PhP auxquelles mon hébergeur me donne accès : pas cette lib. Comment l’installer, mystère ?

Pour vérifier si la lib est là, tu peux créer un fichier à la racine de ton site : infos.php
Avec dedans :

<?php phpinfo(); ?>

Et tu visites urldusite/infos.php en cherchant ensuite sodium dans la page.

Moi, j’ai :

sodium

sodium support enabled
libsodium headers version 1.0.18
libsodium library version 1.0.18

ok merci je regarde ça immédiatement (j’avais oublié cette manip - je suis rouillé)

Yep elles y sont : pareil que vous

sodium support enabled
libsodium headers version 1.0.18
libsodium library version 1.0.18

Puisque tu as une erreur 500, peux-tu faire afficher l’erreur (instructions ici : Les aides au débuggage de squelettes - SPIP)

Bonjour RealET,
et merci pour cette aide


Dans le contexte de la modification du mot de passe par le lien envoyé. Une fois le nouveau mot de passe saisi (par deux fois), je valide et obtiens l’erreur suivante :

Fatal error : Uncaught Error: Call to undefined function auteurs_set() in /home3/neomens/public_html/spip/squelettes/squelettes_spip_gumby/formulaires/mot_de_passe.php:109 Stack trace: #0 /home3/neomens/public_html/spip/ecrire/public/aiguiller.php(289): formulaires_mot_de_passe_traiter_dist() #1 /home3/neomens/public_html/spip/ecrire/public.php(105): traiter_formulaires_dynamiques() #2 /home3/neomens/public_html/spip/spip.php(20): include(’/home3/neomens/…’) #3 {main} thrown in /home3/neomens/public_html/spip/squelettes/squelettes_spip_gumby/formulaires/mot_de_passe.php on line 109


La ligne 109 est la suivante :
auteurs_set($id_auteur, array(‹ pass ›=>$oubli));


J’ai l’impression que c’est le squelette que j’utilise qui n’a pas supporté la mise à jour. En effet, je maintiens ce site depuis presque 12ans, l’ayant consciencieusement mis à jour.

Et ben voilà : tu as une surcharge personnelle du fichier natif de SPIP.

  1. Si tu renommes ce fichier, ça devrait marcher
  2. Il faudrait ensuite que tu refasses ta surcharge si tu avais une raison de le faire

Donc ok
j’ai modifié le nom du fichier en ajoutant OLD
je retente le schémas nouveau mot de passe :
dans le formulaire de saisi j’obtiens une nouvelle erreur :


Warning : include_once(): Failed opening ‹ /home3/neomens/public_html/spip/squelettes/squelettes_spip_gumby/formulaires/mot_de_passe.php › for inclusion (include_path=’.:/opt/cpanel/ea-php81/root/usr/share/pear’) in /home3/neomens/public_html/spip/ecrire/inc/utils.php on line 1606


La 1606 du fichier utils.php donne ceci
if ($include and !isset($inc[$dirname][$file])) {
1606 —> include_once _ROOT_CWD .
$GLOBALS[‹ path_files ›][$GLOBALS[‹ path_sig ›]][$dirname][$file];
$inc[$dirname][$file] = $inc[’’][$dirname . $file] = true;
}

Je sens la cascade de problèmes survenir.

c’est le Natif qu’il faut renommé non ? car j’ai renommé celui du squelette gumby

Dans squelettes, c’est là qu’il y a des surcharges.
Surcharges qui datent de la précédente version de SPIP (donc compatible avec cette ancienne version, mais plus avec la nouvelle).
Donc, c’est le natif qui doit être gardé et la surcharge supprimée/renommée.

Et vider le cache au cas où

ok donc c’est bien la première erreur qui survient dans le formulaire de saisie des mot de passe.
la ligne 1606

Si tu renommes le dossier squelettes/ pour ne plus avoir aucune surcharge, qu’est-ce que ça donne ?

Alors miracle ça a fonctionné, j’ai pu changer le mot de passe et retrouvé l’accès à l’admin !!!
Enorme - Grand merci RealET !!!

en remettant squelettes/ en fonction ça semble tenir. Juste le template gumby qui ne suis plus sur le site public. Mais je vais trouvé pourquoi. Encore merci

1 « J'aime »

Avec grand plaisir hhhh.