Exemplo n.º 1
0
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();
}
Exemplo n.º 2
0
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();
}
Exemplo n.º 3
0
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>';
}
Exemplo n.º 4
0
/**
 * 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;
    }
}
Exemplo n.º 5
0
<?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]]', '');
Exemplo n.º 6
0
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 '';
}
Exemplo n.º 7
0
/**
 * 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;
    }
}
Exemplo n.º 8
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.º 9
0
<?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');
Exemplo n.º 10
0
<?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', '','');
?>
Exemplo n.º 11
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();
}
Exemplo n.º 12
0
<?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', '');