function install_etape_sup1_dist() { $adresse_db = _request('adresse_db'); if (!$adresse_db AND defined('_INSTALL_HOST_DB')) $adresse_db =_INSTALL_HOST_DB; $login_db = _request('login_db'); if (!$login_db AND defined('_INSTALL_USER_DB')) $login_db = _INSTALL_USER_DB; $pass_db = _request('pass_db'); if (!$pass_db AND defined('_INSTALL_PASS_DB')) $pass_db = _INSTALL_PASS_DB; $server_db =_request('server_db'); if (!$server_db AND defined('_INSTALL_SERVER_DB')) $server_db = _INSTALL_SERVER_DB; // Ceci indique la base principale (passe en hidden) // pour qu'on la refuse comme choix de base secondaire $sel_db =_request('sel_db'); if (!$sel_db AND defined('_INSTALL_NAME_DB')) $sel_db = _INSTALL_NAME_DB; echo install_debut_html(_T('config_titre_base_sup')); $link = spip_connect_db($adresse_db, 0, $login_db, $pass_db, '', $server_db); $GLOBALS['connexions'][$server_db][$GLOBALS['spip_sql_version']] = $GLOBALS['spip_' . $server_db .'_functions_' . $GLOBALS['spip_sql_version']]; if ($link) { $GLOBALS['connexions'][$server_db] = $link; echo '<div style="background-color: #eeeeee">'; echo "\n<!--\n", join(', ', $link), " $login_db "; echo join(', ', $GLOBALS['connexions'][$server_db]); echo "\n-->\n<p class='resultat'><b>"; echo _T('info_connexion_ok'),"</b></p>\n"; echo '<!-- ', sql_version($server_db), ' -->' ; $l = bases_referencees(); array_push($l, $sel_db); list(, $res) = install_etape_liste_bases($server_db, $login_db, $l); $hidden = predef_ou_cache($adresse_db,$login_db,$pass_db, $server_db) . (defined('_INSTALL_NAME_DB') ? '' : ("\n<input type='hidden' name='sel_db' value='$sel_db' />\n")); echo install_etape_sup1_form($hidden, '', $res, 'sup2'); echo '</div>'; } else { echo info_etape(_T('info_connexion_base')); echo "<p class='resultat'><b>", _T('avis_connexion_echec_1'), "</b></p>"; } echo install_fin_html(); }
function install_etape_2_dist() { $adresse_db = defined('_INSTALL_HOST_DB') ? _INSTALL_HOST_DB : _request('adresse_db'); if (preg_match(',(.*):(.*),', $adresse_db, $r)) { list(, $adresse_db, $port) = $r; } else { $port = ''; } $login_db = defined('_INSTALL_USER_DB') ? _INSTALL_USER_DB : _request('login_db'); $pass_db = defined('_INSTALL_PASS_DB') ? _INSTALL_PASS_DB : _request('pass_db'); $server_db = defined('_INSTALL_SERVER_DB') ? _INSTALL_SERVER_DB : _request('server_db'); $name_db = defined('_INSTALL_NAME_DB') ? _INSTALL_NAME_DB : ''; $chmod = _request('chmod'); $link = spip_connect_db($adresse_db, $port, $login_db, $pass_db, $name_db, $server_db); $GLOBALS['connexions'][$server_db] = $link; $GLOBALS['connexions'][$server_db][$GLOBALS['spip_sql_version']] = $GLOBALS['spip_' . $server_db . '_functions_' . $GLOBALS['spip_sql_version']]; echo install_debut_html(); // prenons toutes les dispositions possibles pour que rien ne s'affiche ! /* * /!\ sqlite3/PDO : erreur sur join(', ', $link) * L'objet PDO ne peut pas etre transformee en chaine * Un echo $link ne fonctionne pas non plus * Il faut utiliser par exemple print_r($link) */ //echo "\n<!--\n", join(', ', $link), " $login_db "; $db_connect = 0; // revoirfunction_exists($ferrno) ? $ferrno() : 0; //echo join(', ', $GLOBALS['connexions'][$server_db]); //echo "\n-->\n"; if ($db_connect == "0" && $link) { echo "<div class='success'><b>" . _T('info_connexion_ok') . "</b></div>"; echo info_progression_etape(2, 'etape_', 'install/'); echo info_etape(_T('menu_aide_installation_choix_base') . aide("install2", true)); echo "\n", '<!-- ', sql_version($server_db), ' -->'; list($checked, $res) = install_etape_2_bases($login_db, $server_db); $hidden = (defined('_SPIP_CHMOD') ? '' : "\n<input type='hidden' name='chmod' value='" . spip_htmlspecialchars($chmod) . "' />") . predef_ou_cache($adresse_db . ($port ? ':' . $port : ''), $login_db, $pass_db, $server_db); echo install_etape_2_form($hidden, $checked, $res, 3); } else { echo info_progression_etape(1, 'etape_', 'install/', true); echo "<div class='error'>"; echo info_etape(_T('info_connexion_base')); echo "<h3>" . _T('avis_connexion_echec_1') . "</h3>"; echo "<p>" . _T('avis_connexion_echec_2') . "</p>"; echo "<p style='font-size: small;'>", _T('avis_connexion_echec_3'), "</p></div>"; } echo install_fin_html(); }
function install_bases_sup($adresse_db, $login_db, $pass_db, $server_db, $sup_db){ if (!($GLOBALS['connexions'][$server_db] = spip_connect_db($adresse_db, 0, $login_db, $pass_db, '', $server_db))) return "<!-- connection perdue -->"; $GLOBALS['connexions'][$server_db][$GLOBALS['spip_sql_version']] = $GLOBALS['spip_' . $server_db .'_functions_' . $GLOBALS['spip_sql_version']]; if (!sql_selectdb($sup_db, $server_db)) return "<!-- base inaccessible -->"; $tables = sql_alltable('%', $server_db); if (!$tables) $res = _T('install_pas_table'); else { $res = _T('install_tables_base') . "<ol style='text-align: left'>\n<li>" . join("</li>\n<li>", $tables) . "</li>\n</ol>\n"; } if (preg_match(',(.*):(.*),', $adresse_db, $r)) list(,$adresse_db, $port) = $r; else $port = ''; $adresse_db = addcslashes($adresse_db,"'\\"); $port = addcslashes($port,"'\\"); $login_db = addcslashes($login_db,"'\\"); $pass_db = addcslashes($pass_db,"'\\"); $sup_db = addcslashes($sup_db,"'\\"); $server_db = addcslashes($server_db,"'\\"); $conn = install_mode_appel($server_db) . "spip_connect_db(" . "'$adresse_db','$port','$login_db'," . "'$pass_db','$sup_db'" . ",'$server_db', '');\n"; install_fichier_connexion(_DIR_CONNECT . $sup_db . '.php', $conn); return '<div style="background-color: #eeeeee">' . $res . '</div>'; }
/** * Sélectionne un fichier de base de données * * @param string $db * Nom de la base à utiliser * @param string $serveur * Nom du connecteur * @param bool $requeter * Inutilisé * * @return bool|string * - Nom de la base en cas de success. * - False en cas d'erreur. **/ function spip_sqlite_selectdb($db, $serveur = '', $requeter = true) { _sqlite_init(); // interdire la creation d'une nouvelle base, // sauf si on est dans l'installation if (!is_file($f = _DIR_DB . $db . '.sqlite') && (!defined('_ECRIRE_INSTALL') || !_ECRIRE_INSTALL)) { spip_log("Il est interdit de creer la base {$db}", 'sqlite.' . _LOG_HS); return false; } // se connecter a la base indiquee // avec les identifiants connus $index = $serveur ? $serveur : 0; if ($link = spip_connect_db('', '', '', '', '@selectdb@' . $db, $serveur, '', '')) { if ($db == $link['db'] && ($GLOBALS['connexions'][$index] = $link)) { return $db; } } else { spip_log("Impossible de selectionner la base {$db}", 'sqlite.' . _LOG_HS); return false; } }
<?php if (!defined("_ECRIRE_INC_VERSION")) { return; } define('_MYSQL_SET_SQL_MODE', true); $GLOBALS['spip_connect_version'] = 0.7; spip_connect_db('[[softdbhost]]', '', '[[softdbuser]]', '[[softdbpass]]', '[[softdb]]', 'mysql', '[[dbprefix]]', '');
function install_bases($adresse_db, $login_db, $pass_db, $server_db, $choix_db, $sel_db, $chmod_db){ global $spip_version_base; // Prefix des tables : // contrairement a ce qui est dit dans le message (trop strict mais c'est // pour notre bien), on va tolerer les chiffres en plus des minuscules // S'il n'est pas defini par mes_options/inc/mutualiser, on va le creer // a partir de ce qui est envoye a l'installation if (!defined('_INSTALL_TABLE_PREFIX')) { $table_prefix = ($GLOBALS['table_prefix'] != 'spip') ? $GLOBALS['table_prefix'] : trim(preg_replace(',[^a-z0-9],','',strtolower(_request('tprefix')))); // S'il est vide on remet spip if (!$table_prefix) $table_prefix = 'spip'; } else { $table_prefix = _INSTALL_TABLE_PREFIX; } $GLOBALS['connexions'][$server_db] = spip_connect_db($adresse_db, 0, $login_db, $pass_db, '', $server_db); $GLOBALS['connexions'][$server_db][$GLOBALS['spip_sql_version']] = $GLOBALS['spip_' . $server_db .'_functions_' . $GLOBALS['spip_sql_version']]; $fquery = sql_serveur('query', $server_db); if ($choix_db == "new_spip") { $re = ',^[a-z_][a-z_0-9-]*$,i'; if (preg_match($re, $sel_db)) sql_create_base($sel_db, $server_db); else { $re = "Le nom de la base doit correspondre a $re"; spip_log($re); return "<!--\n$re\n-->"; } } // on rejoue la connexion apres avoir teste si il faut lui indiquer // un sql_mode install_mode_appel($server_db, false); $GLOBALS['connexions'][$server_db] = spip_connect_db($adresse_db, $sel_db, $login_db, $pass_db, $sel_db, $server_db); $GLOBALS['connexions'][$server_db][$GLOBALS['spip_sql_version']] = $GLOBALS['spip_' . $server_db .'_functions_' . $GLOBALS['spip_sql_version']]; // Completer le tableau decrivant la connexion $GLOBALS['connexions'][$server_db]['prefixe'] = $table_prefix; $GLOBALS['connexions'][$server_db]['db'] = $sel_db; $old = sql_showbase($table_prefix . "_meta", $server_db); if ($old) $old = sql_fetch($old, $server_db); if (!$old) { // Si possible, demander au serveur d'envoyer les textes // dans le codage std de SPIP, $charset = sql_get_charset(_DEFAULT_CHARSET, $server_db); if ($charset) { sql_set_charset($charset['charset'], $server_db); $GLOBALS['meta']['charset_sql_base'] = $charset['charset']; $GLOBALS['meta']['charset_collation_sql_base'] = $charset['collation']; $GLOBALS['meta']['charset_sql_connexion'] = $charset['charset']; $charsetbase = $charset['charset']; } else { spip_log(_DEFAULT_CHARSET . " inconnu du serveur SQL"); $charsetbase = 'standard'; } spip_log("Creation des tables. Codage $charsetbase"); creer_base($server_db); // AT LAST creer_base_types_doc($server_db); // memoriser avec quel charset on l'a creee if ($charset) { $t = array('nom' => 'charset_sql_base', 'valeur' => $charset['charset'], 'impt' => 'non'); @sql_insertq('spip_meta', $t, '', $server_db); $t['nom'] = 'charset_collation_sql_base'; $t['valeur'] = $charset['collation']; @sql_insertq('spip_meta', $t, '', $server_db); $t['nom'] = 'charset_sql_connexion'; $t['valeur'] = $charset['charset']; @sql_insertq('spip_meta', $t, '', $server_db); } $t = array('nom' => 'version_installee', 'valeur' => $spip_version_base, 'impt' => 'non'); @sql_insertq('spip_meta', $t, '', $server_db); $t['nom'] = 'nouvelle_install'; $t['valeur'] = 1; @sql_insertq('spip_meta', $t, '', $server_db); // positionner la langue par defaut du site si un cookie de lang a ete mis if (isset($_COOKIE['spip_lang_ecrire'])){ @sql_insertq('spip_meta', array('nom'=>'langue_site','valeur'=>$_COOKIE['spip_lang_ecrire']), '', $server_db); } } else { // pour recreer les tables disparues au besoin spip_log("Table des Meta deja la. Verification des autres."); creer_base($server_db); $fupdateq = sql_serveur('updateq', $server_db); $r = $fquery("SELECT valeur FROM spip_meta WHERE nom='version_installee'", $server_db); if ($r) $r = sql_fetch($r, $server_db); $version_installee = !$r ? 0 : (double) $r['valeur']; if (!$version_installee OR ($spip_version_base < $version_installee)) { $fupdateq('spip_meta', array('valeur'=>$spip_version_base, 'impt'=>'non'), "nom='version_installee'", $server_db); spip_log("nouvelle version installee: $spip_version_base"); } // eliminer la derniere operation d'admin mal terminee // notamment la mise a jour @$fquery("DELETE FROM spip_meta WHERE nom='import_all' OR nom='admin'", $server_db); } $ligne_rappel = install_mode_appel($server_db); $result_ok = @$fquery("SELECT COUNT(*) FROM spip_meta", $server_db); if (!$result_ok) return "<!--\nvielle = $old rappel= $ligne_rappel\n-->"; if ($chmod_db) { install_fichier_connexion(_FILE_CHMOD_TMP, "if (!defined('_SPIP_CHMOD')) define('_SPIP_CHMOD', ". sprintf('0%3o',$chmod_db).");\n"); } if (preg_match(',(.*):(.*),', $adresse_db, $r)) list(,$adresse_db, $port) = $r; else $port = ''; // si ce fichier existe a cette etape c'est qu'il provient // d'une installation qui ne l'a pas cree correctement. // Le supprimer pour que _FILE_CONNECT_TMP prime. if (_FILE_CONNECT AND file_exists(_FILE_CONNECT)) spip_unlink(_FILE_CONNECT); install_fichier_connexion(_FILE_CONNECT_TMP, $ligne_rappel . install_connexion($adresse_db, $port, $login_db, $pass_db, $sel_db, $server_db, $table_prefix)); return ''; }
/** * Selectionne une base de donnees * * @param string $nom * Nom de la base a utiliser * @param string $serveur * Nom du connecteur * @param bool $requeter * Inutilise * * @return bool|string * Nom de la base en cas de success. * False en cas d'erreur. **/ function spip_pg_selectdb($db, $serveur = '', $requeter = true) { // se connecter a la base indiquee // avec les identifiants connus $index = $serveur ? strtolower($serveur) : 0; if ($link = spip_connect_db('', '', '', '', $db, 'pg', '', '')) { if ($db == $link['db'] && ($GLOBALS['connexions'][$index] = $link)) { return $db; } } else { return false; } }
function formulaires_declarer_bases_verifier_1_dist() { $erreurs = array(); list($def_adresse_db, $def_login_db, $def_pass_db, $sel_db, $def_serveur_db) = analyse_fichier_connection(_FILE_CONNECT); if (!($adresse_db = _request('adresse_db'))) { if (defined('_INSTALL_HOST_DB')) { $adresse_db = _INSTALL_HOST_DB; } else { $adresse_db = $def_adresse_db; } } if (!($serveur_db = _request('sql_serveur_db'))) { if (defined('_INSTALL_SERVER_DB')) { $serveur_db = _INSTALL_SERVER_DB; } else { $serveur_db = $def_serveur_db; } } $login_db = $pass_db = ""; if (!preg_match(',^sqlite,i', $serveur_db)) { if (!($login_db = _request('login_db'))) { if (defined('_INSTALL_USER_DB')) { $login_db = _INSTALL_USER_DB; } else { $login_db = $def_login_db; } } if (!($pass_db = _request('pass_db'))) { if (defined('_INSTALL_PASS_DB')) { $pass_db = _INSTALL_PASS_DB; } else { $pass_db = $def_pass_db; } } } $link = spip_connect_db($adresse_db, '', $login_db, $pass_db, '@test@', $serveur_db); if ($link) { $GLOBALS['connexions'][$serveur_db][$GLOBALS['spip_sql_version']] = $GLOBALS['spip_' . $serveur_db . '_functions_' . $GLOBALS['spip_sql_version']]; $GLOBALS['connexions'][$serveur_db] = $link; define('_DECLARER_serveur_db', $serveur_db); define('_DECLARER_adresse_db', $adresse_db); define('_DECLARER_login_db', $login_db); define('_DECLARER_pass_db', $pass_db); // si on est sur le meme serveur que connect.php // indiquer quelle est la db utilisee pour l'exclure des choix possibles if ($serveur_db == $def_serveur_db and $adresse_db == $def_adresse_db) { set_request('main_db', $sel_db); } else { set_request('main_db', ''); } } else { $erreurs['message_erreur'] = _T('avis_connexion_echec_1'); } return $erreurs; }
<?php if (!defined("_ECRIRE_INC_VERSION")) { return; } defined('_MYSQL_SET_SQL_MODE') || define('_MYSQL_SET_SQL_MODE', true); $GLOBALS['spip_connect_version'] = 0.8; spip_connect_db('localhost', '', 'root', '', 'spip', 'mysql', 'spip', '', 'utf8');
<?php /** * Plugin Spip 2.0 Reloaded * Ce que vous ne trouverez pas dans Spip 2.0 * (c) 2008 Cedric Morin * Licence GPL * */ if (!defined("_ECRIRE_INC_VERSION")) return; $GLOBALS['spip_connect_version'] = 0.1; spip_connect_db('host','port','login','pass','base','array', '',''); ?>
function install_etape_3_dist() { $ldap_present = _request('ldap_present'); if (!$ldap_present) { $adresse_db = defined('_INSTALL_HOST_DB') ? _INSTALL_HOST_DB : _request('adresse_db'); $login_db = defined('_INSTALL_USER_DB') ? _INSTALL_USER_DB : _request('login_db'); $pass_db = defined('_INSTALL_PASS_DB') ? _INSTALL_PASS_DB : _request('pass_db'); $server_db = defined('_INSTALL_SERVER_DB') ? _INSTALL_SERVER_DB : _request('server_db'); $chmod_db = defined('_SPIP_CHMOD') ? _SPIP_CHMOD : _request('chmod'); $choix_db = defined('_INSTALL_NAME_DB') ? _INSTALL_NAME_DB : _request('choix_db'); $sel_db = $choix_db == "new_spip" ? _request('table_new') : $choix_db; $res = install_bases($adresse_db, $login_db, $pass_db, $server_db, $choix_db, $sel_db, $chmod_db); if ($res) { $res = info_progression_etape(2, 'etape_', 'install/', true) . "<div class='error'><h3>" . _T('avis_operation_echec') . "</h3>" . $res . "<p>" . _T('texte_operation_echec') . "</p>" . "</div>"; } } else { $res = ''; list($adresse_db, $login_db, $pass_db, $sel_db, $server_db) = analyse_fichier_connection(_FILE_CONNECT_TMP); $GLOBALS['connexions'][$server_db] = spip_connect_db($adresse_db, $sel_db, $login_db, $pass_db, $sel_db, $server_db); } if (!$res) { if (file_exists(_FILE_CONNECT_TMP)) { include _FILE_CONNECT_TMP; } else { redirige_url_ecrire('install'); } if (file_exists(_FILE_CHMOD_TMP)) { include _FILE_CHMOD_TMP; } else { redirige_url_ecrire('install'); } $hidden = predef_ou_cache($adresse_db, $login_db, $pass_db, $server_db) . (defined('_INSTALL_NAME_DB') ? '' : "\n<input type='hidden' name='sel_db' value='{$sel_db}' />"); $auteur_obligatoire = $ldap_present ? 0 : !sql_countsel('spip_auteurs', '', '', '', $server_db); $res = "<div class='success'><b>" . _T('info_base_installee') . "</b></div>" . install_premier_auteur(_request('email'), _request('login'), _request('nom'), _request('pass'), $hidden, $auteur_obligatoire) . (($ldap_present or !function_exists('ldap_connect')) ? '' : install_propose_ldap()); } echo install_debut_html(); echo $res; echo install_fin_html(); }
<?php if (!defined("_ECRIRE_INC_VERSION")) { return; } define('_MYSQL_SET_SQL_MODE', true); $GLOBALS['spip_connect_version'] = 0.7; spip_connect_db('localhost', '', 'cac_user', 'secret', 'cac_site', 'mysql', 'spip', '');