Browse Source

fix : compatibilité PHP 8.1 + SPIP 4.1

Avec en plus la possibiité de rejouer la création sans avoir de message d'erreur fatal que l'utilisateur de la base de données existe déjà
master
RealET 2 months ago
parent
commit
1886876b67
  1. 16
      mutualiser_creer.php

16
mutualiser_creer.php

@ -198,7 +198,7 @@ function mutu_etape_creer_base($e, $options) {
// mode de creation par un ping sur une URL (AlternC)
// on le fait en local et en POST, donc pas de trou de secu
// curl indispensable pour le https... devrait aller dans inc/distant
if ($options['url_creer_base']
if (isset($options['url_creer_base'])
and defined('_INSTALL_NAME_DB')
) {
$url = str_replace('%x', _INSTALL_NAME_DB, $options['url_creer_base']);
@ -236,7 +236,9 @@ function mutu_etape_creer_base($e, $options) {
if ($options['creer_user_base']) {
// le nom de la machine MySQL peut etre different
// du nom de la connexion via DNS
define('_INSTALL_HOST_DB_LOCALNAME', _INSTALL_HOST_DB);
if (!defined('_INSTALL_HOST_DB_LOCALNAME')) {
define('_INSTALL_HOST_DB_LOCALNAME', _INSTALL_HOST_DB);
}
// requete differente entre pg et mysql...
$req = $err = array();
@ -254,6 +256,14 @@ function mutu_etape_creer_base($e, $options) {
case 'mysql':
default:
// creer user
// Commencer par le supprimer s'il existe déjà
// cf https://bugs.mysql.com/bug.php?id=19166
// A good workaround is to grant a harmless privilege to the user before dropping it.
// This will create the user if it doesn't exist, so that it can be dropped safely
$req[] = "GRANT USAGE ON *.* TO '" . _INSTALL_USER_DB . "'@'" . _INSTALL_HOST_DB_LOCALNAME . "'";
$err[] = "GRANT USAGE ON *.* TO '" . _INSTALL_USER_DB . "'@'" . _INSTALL_HOST_DB_LOCALNAME . "'";
$req[] = "DROP USER '" . _INSTALL_USER_DB . "'@'" . _INSTALL_HOST_DB_LOCALNAME . "'";
$err[] = "DROP USER '" . _INSTALL_USER_DB . "'@'" . _INSTALL_HOST_DB_LOCALNAME . "'";
$req[] = "CREATE user '" . _INSTALL_USER_DB . "'@'" . _INSTALL_HOST_DB_LOCALNAME . "' IDENTIFIED BY '" . _INSTALL_PASS_DB . "'";
$err[] = "CREATE user '" . _INSTALL_USER_DB . "'@'" . _INSTALL_HOST_DB_LOCALNAME . "' IDENTIFIED BY 'xxx'";
// affecter a sa base
@ -294,6 +304,7 @@ function mutu_etape_creer_base($e, $options) {
);
if ($options['mail']) {
$GLOBALS['meta']['email_envoi'] = $options['mail'];
$mail = charger_fonction('envoyer_mail', 'inc');
$mail($options['mail'],
_T('mutu:install_creation_bd', array('nombase' => _INSTALL_NAME_DB)),
@ -399,6 +410,7 @@ function mutu_etape_creer_repertoires($e, $options) {
);
if ($options['mail']) {
$GLOBALS['meta']['email_envoi'] = $options['mail'];
$mail = charger_fonction('envoyer_mail', 'inc');
$mail($options['mail'],
_T('mutu:install_creation_site', array('site' => joli_repertoire($e))),

Loading…
Cancel
Save