Exemplo n.º 1
0
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();
}
Exemplo n.º 2
0
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();
	}
}
Exemplo n.º 3
0
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;
}
Exemplo n.º 4
0
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;
}
Exemplo n.º 5
0
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);
}
Exemplo n.º 6
0
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();
}
Exemplo n.º 7
0
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();
	}
}
Exemplo n.º 8
0
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();
}