MYSQL"; if (!function_exists('preg_match_all')) $err[] = _T('install_extension_php_obligatoire') . " PCRE"; if ($a = @ini_get('mbstring.func_overload')) $err[] = _T('install_extension_mbstring') . "mbstring.func_overload=$a - mb_string.
"; if ($err) { echo "

"._T('avis_attention').'

'._T('install_echec_annonce')."

"; while (list(,$e) = each ($err)) echo "
  • $e
  • \n"; # a priori ici on pourrait die(), mais il faut laisser la possibilite # de forcer malgre tout (pour tester, ou si bug de detection) echo "


    \n"; } } // Une fonction pour faciliter la recherche du login (superflu ?) function login_hebergeur() { global $HTTP_X_HOST, $REQUEST_URI, $SERVER_NAME, $HTTP_HOST; $base_hebergeur = 'localhost'; # par defaut // Lycos (ex-Multimachin) if ($HTTP_X_HOST == 'membres.lycos.fr') { ereg('^/([^/]*)', $REQUEST_URI, $regs); $login_hebergeur = $regs[1]; } // Altern else if (ereg('altern\.com$', $SERVER_NAME)) { ereg('([^.]*\.[^.]*)$', $HTTP_HOST, $regs); $login_hebergeur = ereg_replace('[^a-zA-Z0-9]', '_', $regs[1]); } // Free else if (ereg('(.*)\.free\.fr$', $SERVER_NAME, $regs)) { $base_hebergeur = 'sql.free.fr'; $login_hebergeur = $regs[1]; } return array($base_hebergeur, $login_hebergeur); } if (_FILE_CONNECT) { install_debut_html(); echo "

    "._T('avis_espace_interdit').""; install_fin_html(); exit; } include_ecrire ("inc_base.php3"); define('_FILE_TMP', '_install'); // Sur tous les formulaires on peut cliquer "return" pour passer a la suite define ('_VALIDE_CLAVIER', ''); /* define ('_VALIDE_CLAVIER', "\n"); */ // // Etapes de l'installation standard // if ($etape == 6) { install_debut_html(); echo _VALIDE_CLAVIER; echo "
    "._T('info_derniere_etape').""; echo "

    "; echo ""._T('info_code_acces').""; echo "

    "._T('info_utilisation_spip'); include(_FILE_CONNECT_INS . _FILE_TMP . _EXTENSION_PHP); include_ecrire ("inc_meta.php3"); if ($login) { $nom = addslashes($nom); $login = addslashes($login); $query = "SELECT id_auteur FROM spip_auteurs WHERE login='$login'"; $result = spip_query($query); unset($id_auteur); while ($row = spip_fetch_array($result)) $id_auteur = $row['id_auteur']; $mdpass = md5($pass); $htpass = generer_htpass($pass); if ($id_auteur) { $query = "UPDATE spip_auteurs SET nom='$nom', email='$email', login='$login', pass='$mdpass', alea_actuel='', alea_futur=FLOOR(32000*RAND()), htpass='$htpass', statut='0minirezo' WHERE id_auteur=$id_auteur"; } else { $query = "INSERT INTO spip_auteurs (nom, email, login, pass, htpass, alea_futur, statut) VALUES('$nom','$email','$login','$mdpass','$htpass',FLOOR(32000*RAND()),'0minirezo')"; } spip_query($query); // inserer email comme email webmaster principal spip_query("REPLACE spip_meta (nom, valeur) VALUES ('email_webmaster', '".addslashes($email)."')"); } include_ecrire("inc_config.php3"); init_config(); init_langues(); include_ecrire ("inc_acces.php3"); ecrire_acces(); @unlink(_DIR_SESSIONS . 'inc_meta_cache.php3'); @unlink(_DIR_SESSIONS . 'meta_cache.php3'); if (!@rename(_FILE_CONNECT_INS . _FILE_TMP . _EXTENSION_PHP, _FILE_CONNECT_INS . _EXTENSION_PHP)) { copy(_FILE_CONNECT_INS . _FILE_TMP . _EXTENSION_PHP, _FILE_CONNECT_INS . _EXTENSION_PHP); @unlink(_FILE_CONNECT_INS . _FILE_TMP . _EXTENSION_PHP); } echo "

    "; echo "
    >'>"; echo ""; ecrire_metas(); install_fin_html(); } else if ($etape == 5) { install_debut_html(); echo _VALIDE_CLAVIER; include(_FILE_CONNECT_INS . _FILE_TMP . _EXTENSION_PHP); echo "
    \n"._T('info_informations_personnelles').""; echo "

    \n"; echo ""._T('texte_informations_personnelles_1').""; echo aide ("install5"); echo "

    \n"._T('texte_informations_personnelles_2')." "; echo _T('info_laisser_champs_vides'); echo "

    "; echo ""; echo "
    "; echo ""._T('entree_signature')."
    \n"; echo _T('entree_nom_pseudo_1')."
    \n"; echo "

    \n"; echo ""._T('entree_adresse_email')."
    \n"; echo "

    \n"; echo "

    "; echo ""._T('entree_login')."
    \n"; echo _T('info_plus_trois_car')."
    \n"; echo "

    \n"; echo ""._T('entree_mot_passe')."
    \n"; echo _T('info_plus_cinq_car_2')."
    \n"; echo "

    \n"; echo "

    >'>"; echo ""; echo "

    \n"; if ($flag_ldap AND !$ldap_present) { echo "

    "; echo ""._T('info_authentification_externe').""; echo "

    \n"._T('texte_annuaire_ldap_1'); echo "

    "; echo ""; echo "
    "; echo ""; } install_fin_html(); } else if ($etape == 4) { install_debut_html(); echo _VALIDE_CLAVIER; // Necessaire pour appeler les fonctions SQL wrappees include_ecrire("inc_db_mysql.php3"); echo "
    \n"._T('info_creation_tables').""; echo "

    \n"; $link = mysql_connect("$adresse_db", "$login_db", "$pass_db"); echo "<"."!-- $link "; if ($choix_db == "new_spip") { $sel_db = $table_new; mysql_query("CREATE DATABASE $sel_db"); } else { $sel_db = $choix_db; } echo "$sel_db "; mysql_select_db($sel_db); // Message pour spip_query : tout va bien ! $GLOBALS['db_ok'] = true; $GLOBALS['spip_connect_version'] = 0.2; # cf. inc_version // Test si SPIP deja installe spip_query("SELECT COUNT(*) FROM spip_meta"); $nouvelle = spip_sql_errno(); creer_base(); $maj_ok = maj_base(); // Tester $mysql_rappel_nom_base $GLOBALS['mysql_rappel_nom_base'] = true; $GLOBALS['spip_mysql_db'] = $sel_db; $ok_rappel_nom = spip_query("INSERT spip_meta (nom,valeur) VALUES ('mysql_rappel_nom_base', 'test')"); if ($ok_rappel_nom) { echo " (ok rappel nom base `$sel_db`.spip_meta) "; $ligne_rappel = ''; spip_query("DELETE FROM spip_meta WHERE nom='mysql_rappel_nom_base'"); } else { echo " (erreur rappel nom base `$sel_db`.spip_meta) "; $GLOBALS['mysql_rappel_nom_base'] = false; $ligne_rappel = "\$GLOBALS['mysql_rappel_nom_base'] = false; ". "/* echec du test sur `$sel_db`.spip_meta lors de l'installation. */\n"; } if ($nouvelle) { spip_query("INSERT spip_meta (nom, valeur) VALUES ('nouvelle_install', 'oui')"); $result_ok = !spip_sql_errno(); } else { $result = spip_query("SELECT COUNT(*) FROM spip_articles"); $result_ok = (spip_num_rows($result) > 0); } echo "($result_ok && $maj_ok) -->"; if ($result_ok && $maj_ok) { $conn = "<"."?php\n"; $conn .= "if (defined(\"_ECRIRE_INC_CONNECT\")) return;\n"; $conn .= "define(\"_ECRIRE_INC_CONNECT\", \"1\");\n"; $conn .= "\$GLOBALS['spip_connect_version'] = 0.2;\n"; $conn .= "include_ecrire('inc_db_mysql.php3');\n"; $conn .= $ligne_rappel; $conn .= "spip_connect_db('$adresse_db','','$login_db','$pass_db','$sel_db');\n"; # $conn .= "\$GLOBALS['db_ok'] = !!@spip_num_rows(@spip_query_db('SELECT COUNT(*) FROM spip_meta'));\n"; $conn .= "?".">"; $myFile = fopen(_FILE_CONNECT_INS . _FILE_TMP . _EXTENSION_PHP, "wb"); fputs($myFile, $conn); fclose($myFile); echo ""._T('info_base_installee')."

    \n"._T('info_etape_suivante_1'); echo "

    "; echo ""; echo "
    >'>"; echo ""; } else if ($result_ok) { echo _T('alerte_maj_impossible', array('version' => $spip_version)); } else { echo ""._T('avis_operation_echec')." "._T('texte_operation_echec'); } install_fin_html(); } else if ($etape == 3) { install_debut_html(); echo _VALIDE_CLAVIER; echo "
    \n"._T('info_choix_base')." "._T('menu_aide_installation_choix_base').""; echo aide ("install2"); echo "

    \n"; echo "

    "; echo ""; echo ""; echo ""; echo "

    \n"; $link = mysql_connect("$adresse_db","$login_db","$pass_db"); $result = @mysql_list_dbs(); echo "

    "; if ($result AND (($n = @mysql_num_rows($result)) > 0)) { echo ""._T('texte_choix_base_2')."

    "._T('texte_choix_base_3'); echo "

      "; $bases = ""; for ($i = 0; $i < $n; $i++) { $table_nom = mysql_dbname($result, $i); $base = "
      \n\n"; if ($table_nom == $login_db) { $bases = "$base CHECKED$base_fin".$bases; $checked = true; } else { $bases .= "$base$base_fin\n"; } } echo $bases."
    "; echo _T('info_ou')." "; } else { echo ""._T('avis_lecture_noms_bases_1')." "._T('avis_lecture_noms_bases_2')."

    "; if ($login_db) { // Si un login comporte un point, le nom de la base est plus // probablement le login sans le point -- testons pour savoir $test_base = $login_db; $ok = @mysql_select_db($test_base); $test_base2 = str_replace('.', '_', $test_base); if (@mysql_select_db($test_base2)) { $test_base = $test_base2; $ok = true; } if ($ok) { echo _T('avis_lecture_noms_bases_3'); echo "

      "; echo ""; echo "
      \n"; echo "
    "; echo _T('info_ou')." "; $checked = true; } } } echo " "; echo "

    "; echo "

    >'>"; echo ""; install_fin_html(); } else if ($etape == 2) { install_debut_html(); echo _VALIDE_CLAVIER; echo "
    \n"._T('info_connexion_base').""; echo ""; echo "

    "; if (($db_connect=="0") && $link){ echo ""._T('info_connexion_ok')."

    "._T('info_etape_suivante_2'); echo "

    "; echo ""; echo ""; echo ""; echo "

    "; echo "

    >'>"; echo ""; } else { echo ""._T('avis_connexion_echec_1').""; echo "

    "._T('avis_connexion_echec_2'); echo "

    "._T('avis_connexion_echec_3').""; } install_fin_html(); } else if ($etape == 1) { install_debut_html(); echo _VALIDE_CLAVIER; // stopper en cas de grosse incompatibilite de l'hebergement tester_compatibilite_hebergement(); echo "
    \n"._T('info_connexion_mysql').""; echo "

    "._T('texte_connexion_mysql'); echo aide ("install1"); list($adresse_db, $login_db) = login_hebergeur(); $pass_db = ''; // Recuperer les anciennes donnees pour plus de facilite (si presentes) if (@file_exists(_FILE_CONNECT_INS . _FILE_TMP . _EXTENSION_PHP)) { $s = @join('', @file(_FILE_CONNECT_INS . _FILE_TMP . _EXTENSION_PHP)); if (ereg("mysql_connect\([\"'](.*)[\"'],[\"'](.*)[\"'],[\"'](.*)[\"']\)", $s, $regs)) { $adresse_db = $regs[1]; $login_db = $regs[2]; } else if (ereg("spip_connect_db\('(.*)','(.*)','(.*)','(.*)','(.*)'\)", $s, $regs)) { $adresse_db = $regs[1]; if ($port_db = $regs[2]) $adresse_db .= ':'.$port_db; $login_db = $regs[3]; } } echo "

    "; echo ""; echo "
    "; echo _T('entree_base_donnee_2')."
    \n"; echo "

    "; echo "

    "; echo _T('entree_login_connexion_2')."
    \n"; echo "

    "; echo "

    "; echo _T('entree_mot_passe_2')."
    \n"; echo "

    "; echo "

    >'>"; echo ""; install_fin_html(); } else if ($etape == 'dirs') { header("Location: ../spip_test_dirs.php3"); } else if (!$etape) { $menu_langues = menu_langues('var_lang_ecrire'); if (!$menu_langues) header("Location: ../spip_test_dirs.php3"); else { install_debut_html(); echo _VALIDE_CLAVIER; echo "

    "; echo "

    "; echo info_copyright(); echo "

    "; echo "

    " . _T('install_select_langue'); echo "

    ".$menu_langues."
    "; echo "

    "; echo ""; echo "
    >'>"; echo ""; install_fin_html(); } } // // Etapes de l'installation LDAP // else if ($etape == 'ldap5') { install_debut_html(); echo _VALIDE_CLAVIER; include_local(_FILE_CONNECT_INS . _FILE_TMP . _EXTENSION_PHP); include_ecrire('inc_meta.php3'); ecrire_meta("ldap_statut_import", $statut_ldap); ecrire_metas(); echo ""._T('info_ldap_ok').""; echo "

    "._T('info_terminer_installation'); echo "

    "; echo ""; echo "
    >'>"; echo ""; } else if ($etape == 'ldap4') { install_debut_html(); echo _VALIDE_CLAVIER; if (!$base_ldap) $base_ldap = $base_ldap_text; $ldap_link = @ldap_connect("$adresse_ldap", "$port_ldap"); @ldap_bind($ldap_link, "$login_ldap", "$pass_ldap"); // Essayer de verifier le chemin fourni $r = @ldap_compare($ldap_link, $base_ldap, "objectClass", ""); $fail = (ldap_errno($ldap_link) == 32); if ($fail) { echo "
    \n"._T('info_chemin_acces_annuaire').""; echo "

    "; echo ""._T('avis_operation_echec')." "._T('avis_chemin_invalide_1')." (".htmlspecialchars($base_ldap); echo ") "._T('avis_chemin_invalide_2'); } else { echo "
    \n"._T('info_reglage_ldap').""; echo "

    "; $conn = join('', file(_FILE_CONNECT_INS . _FILE_TMP . _EXTENSION_PHP)); if ($p = strpos($conn, '?'.'>')) $conn = substr($conn, 0, $p); if (!strpos($conn, 'spip_connect_ldap')) { $conn .= "function spip_connect_ldap() {\n"; $conn .= "\t\$GLOBALS['ldap_link'] = @ldap_connect(\"$adresse_ldap\",\"$port_ldap\");\n"; $conn .= "\t@ldap_bind(\$GLOBALS['ldap_link'],\"$login_ldap\",\"$pass_ldap\");\n"; $conn .= "\treturn \$GLOBALS['ldap_link'];\n"; $conn .= "}\n"; $conn .= "\$GLOBALS['ldap_base'] = \"$base_ldap\";\n"; $conn .= "\$GLOBALS['ldap_present'] = true;\n"; } $conn .= "?".">"; $myFile = fopen(_FILE_CONNECT_INS . _FILE_TMP . _EXTENSION_PHP, "wb"); fputs($myFile, $conn); fclose($myFile); echo "

    "; echo ""; echo "

    \n"; echo _T('info_statut_utilisateurs_2')." "; echo "

    "; echo ""; echo " "._T('info_visiteur_2')."
    \n"; echo ""; echo " "._T('info_redacteur_2')."
    \n"; echo ""; echo " "._T('info_administrateur_2')."
    \n"; echo "

    >'>"; echo ""; } install_fin_html(); } else if ($etape == 'ldap3') { install_debut_html(); echo _VALIDE_CLAVIER; echo "
    \n"._T('info_chemin_acces_1').""; echo "

    "._T('info_chemin_acces_2'); $ldap_link = @ldap_connect("$adresse_ldap", "$port_ldap"); @ldap_bind($ldap_link, "$login_ldap", "$pass_ldap"); $result = @ldap_read($ldap_link, "", "objectclass=*", array("namingContexts")); $info = @ldap_get_entries($ldap_link, $result); echo "

    "; echo ""; echo ""; echo ""; echo ""; echo ""; echo "
    "; $checked = false; if (is_array($info) AND $info["count"] > 0) { echo "

    "._T('info_selection_chemin_acces'); echo "

      "; $n = 0; for ($i = 0; $i < $info["count"]; $i++) { $names = $info[$i]["namingcontexts"]; if (is_array($names)) { for ($j = 0; $j < $names["count"]; $j++) { $n++; echo ""; echo "
      \n\n"; } } } echo "
    "; echo _T('info_ou')." "; } echo ""; echo " "; echo "

    "; echo "

    >'>"; echo ""; install_fin_html(); } else if ($etape == 'ldap2') { install_debut_html(); echo _VALIDE_CLAVIER; echo "
    \n"._T('titre_connexion_ldap').""; echo "

    "; $ldap_link = @ldap_connect("$adresse_ldap", "$port_ldap"); $r = @ldap_bind($ldap_link, "$login_ldap", "$pass_ldap"); if ($ldap_link && ($r || !$login_ldap)) { echo ""._T('info_connexion_ldap_ok'); echo "

    "; echo ""; echo ""; echo ""; echo ""; echo ""; echo "
    >'>"; echo ""; } else { echo ""._T('avis_connexion_ldap_echec_1').""; echo "

    "._T('avis_connexion_ldap_echec_2'); echo "
    \n"._T('avis_connexion_ldap_echec_3'); } install_fin_html(); } else if ($etape == 'ldap1') { install_debut_html(); echo _VALIDE_CLAVIER; echo "
    \n"._T('titre_connexion_ldap').""; echo "

    "._T('entree_informations_connexion_ldap'); $adresse_ldap = 'localhost'; $port_ldap = 389; // Recuperer les anciennes donnees (si presentes) if (@file_exists(_FILE_CONNECT_INS . _FILE_TMP . _EXTENSION_PHP)) { $s = @join('', @file(_FILE_CONNECT_INS . _FILE_TMP . _EXTENSION_PHP)); if (ereg('ldap_connect\("(.*)","(.*)"\)', $s, $regs)) { $adresse_ldap = $regs[1]; $port_ldap = $regs[2]; } } echo "

    "; echo ""; echo "
    "; echo _T('texte_adresse_annuaire_1')."
    \n"; echo "

    "; echo ""; echo _T('texte_port_annuaire')."
    \n"; echo "

    "; echo "

    "; echo _T('texte_acces_ldap_anonyme_1')." "; echo ""; echo _T('texte_login_ldap_1')."
    \n"; echo "

    "; echo ""; echo "

    "; echo "

    >'>"; echo ""; install_fin_html(); } ?>