function install_etape_1_dist() { echo install_debut_html(); // stopper en cas de grosse incompatibilite de l'hebergement tester_compatibilite_hebergement(); // Recuperer les anciennes donnees pour plus de facilite (si presentes) $s = !@is_readable(_FILE_CONNECT_TMP) ? '' : analyse_fichier_connection(_FILE_CONNECT_TMP); list($adresse_db, $login_db) = $s ? $s : login_hebergeur(); $chmod = (isset($_GET['chmod']) and preg_match(',^[0-9]+$,', $_GET['chmod'])) ? sprintf('%04o', $_GET['chmod']) : '0777'; if (@is_readable(_FILE_CHMOD_TMP)) { $s = @join('', @file(_FILE_CHMOD_TMP)); if (preg_match("#define\\('_SPIP_CHMOD', (.*)\\)#", $s, $regs)) { $chmod = $regs[1]; } } $db = array($adresse_db, _T('entree_base_donnee_2')); $login = array($login_db, _T('entree_login_connexion_2')); $pass = array($pass_db, _T('entree_mot_passe_2')); $predef = array(defined('_INSTALL_SERVER_DB') ? _INSTALL_SERVER_DB : '', defined('_INSTALL_HOST_DB'), defined('_INSTALL_USER_DB'), defined('_INSTALL_PASS_DB')); echo info_progression_etape(1, 'etape_', 'install/'); // ces deux chaines de langues doivent etre reecrites # echo info_etape(_T('info_connexion_mysql'), _T('texte_connexion_mysql').aide ("install1", true)); echo info_etape(_T('info_connexion_base_donnee')); echo install_connexion_form($db, $login, $pass, $predef, "\n<input type='hidden' name='chmod' value='{$chmod}' />", 2); echo install_fin_html(); }
function exec_install_dist() { $etape = _request('etape'); $deja = (_FILE_CONNECT AND analyse_fichier_connection(_FILE_CONNECT)); // Si deja installe, on n'a plus le droit qu'a l'etape chmod // pour chgt post-install ou aux etapes supplementaires // de declaration de base externes. // Mais alors il faut authentifier car ecrire/index.php l'a omis if ($deja AND in_array($etape, array('chmod', 'sup1', 'sup2'))) { $auth = charger_fonction('auth', 'inc'); if (!$auth()) { verifier_visiteur(); $deja = (!autoriser('configurer')); } } if ($deja) { // Rien a faire ici echo minipres(); } else { include_spip('base/create'); $fonc = charger_fonction("etape_$etape", 'install'); $fonc(); } }
function bases_referencees($exclu='') { $tables = array(); foreach(preg_files(_DIR_CONNECT, '.php$') as $f) { if ($f != $exclu AND analyse_fichier_connection($f)) $tables[]= basename($f, '.php'); } return $tables; }
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; }
function autres_bases() { $tables = bases_referencees(_FILE_CONNECT); if ($tables) $tables = "<br /><br /><fieldset style='margin-bottom: 10px;'>" . "<legend>"._T('config_info_base_sup_disponibles')."</legend>" . "<ul>\n<li>" . join("</li>\n<li>", $tables) . "</li>\n</ul></fieldset>"; else $tables =''; if (defined('_INSTALL_PASS_DB')) { // Si l'utilisateur n'a pas a donner le mot de passe de la base SQL // ce doit etre une installation mutualisee sur une meme base: // interdiction de creer d'autres acces pour assure la confidentialite $form = ''; } else { // Lire le fichier de connexion pour valeurs par defaut probables list($adresse_db, $login_db, $pass_db, $sel, $server_db) = analyse_fichier_connection(_FILE_CONNECT); // Passer la base courante en Hidden pour ne pas la proposer $name_db = ("\n<input type='hidden' name='sel_db' value='" . $sel . "' />\n"); // Dire que rien n'est predefini $predef = array(false, false, false, false); if (!autoriser('webmestre')){ $login_db = $pass_db = ""; } $form = install_connexion_form(array($adresse_db), array($login_db), array($pass_db), $predef, $name_db, 'sup1'); } return debut_cadre_trait_couleur('',true,'',_T('onglet_declarer_une_autre_base')) . _T('config_info_base_sup') . $tables . $form . fin_cadre_trait_couleur(true); }
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); $res .= "<p class='resultat echec'><b>"._T('avis_operation_echec')."</b></p>"._T('texte_operation_echec'); } } else { $res = ''; list($adresse_db, $login_db, $pass_db, $sel_db, $server_db) = analyse_fichier_connection(_FILE_CONNECT_TMP); } 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' />"); $res = "<p class='resultat ok'><b>" . _T('info_base_installee') . "</b></p>" . install_premier_auteur(_request('email'), _request('login'), _request('nom'), _request('pass'), $hidden) . (($ldap_present OR !function_exists('ldap_connect')) ? '' : install_propose_ldap()); } echo install_debut_html(); echo $res; echo install_fin_html(); }
function install_etape_chmod_dist() { global $test_dirs; $test_dir = _request('test_dir'); $chmod = 0; if ($test_dir) { if (substr($test_dir,-1)!=='/') $test_dir .= '/'; if (!in_array($test_dir, $test_dirs)) $test_dirs[] = _DIR_RACINE . $test_dir; } else { if (!_FILE_CONNECT) { $test_dirs[] = _DIR_CONNECT; $test_dirs[] = _DIR_CHMOD; } } $bad_dirs = array(); $absent_dirs = array();; while (list(, $my_dir) = each($test_dirs)) { $test = test_ecrire($my_dir); if (!$test) { $m = preg_replace(',^' . _DIR_RACINE . ',', '',$my_dir); if (@file_exists($my_dir)) { $bad_dirs["<li>".$m."</li>"] = 1; } else $absent_dirs["<li>".$m."</li>"] = 1; } else $chmod = max($chmod, $test); } if ($bad_dirs OR $absent_dirs) { if (!_FILE_CONNECT) { $titre = _T('dirs_preliminaire'); $continuer = ' '._T('dirs_commencer') . '.'; } else $titre = _T('dirs_probleme_droits'); $res = "<div align='right'>". menu_langues('var_lang_ecrire')."</div>\n"; if ($bad_dirs) { $res .= _T('dirs_repertoires_suivants', array('bad_dirs' => join("\n", array_keys($bad_dirs)))) . "<b>". _T('login_recharger')."</b>."; } if ($absent_dirs) { $res .= _T('dirs_repertoires_absents', array('bad_dirs' => join("\n", array_keys($absent_dirs)))) . "<b>". _T('login_recharger')."</b>."; } $res = "<p>" . $continuer . $res . aide ("install0") . "</p>"; $t = _T('login_recharger'); $t = (!$test_dir ? "" : "<input type='hidden' name='test_dir' value='$test_dir' />") . "<input type='hidden' name='etape' value='chmod' />" . "<div style='text-align: right'><input type='submit' value='$t' /></div>"; echo minipres($titre, $res . generer_form_ecrire('install', $t)); } else { $deja = (_FILE_CONNECT AND analyse_fichier_connection(_FILE_CONNECT)); if (!$deja) redirige_url_ecrire("install", "etape=1&chmod=".$chmod); else redirige_url_ecrire(); } }
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(); }