uawdijnntqw1x1x1
IP : 216.73.216.175
Hostname : webm001.cluster110.gra.hosting.ovh.net
Kernel : Linux webm001.cluster110.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64
Disable Function : _dyuweyrj4,_dyuweyrj4r,dl
OS : Linux
PATH:
/
home
/
etiennec
/
www
/
plugins
/
..
/
IMG
/
pdf
/
..
/
..
/
f1f54
/
install.tar
/
/
etape_.php000066600000002647152503074610006532 0ustar00<?php /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * * Copyright (c) 2001-2014 * * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * * * * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * \***************************************************************************/ if (!defined('_ECRIRE_INC_VERSION')) return; // http://doc.spip.org/@install_etape__dist function install_etape__dist() { utiliser_langue_visiteur(); $menu_langues = menu_langues('var_lang_ecrire'); if (!$menu_langues) { redirige_url_ecrire('install', "etape=chmod"); } else { include_spip('inc/presentation'); // pour info_copyright $res = "<div class='petit-centre'><img alt='SPIP' src='" . chemin_image('logo-spip2.gif') . "' />\n" . "<p class='small'>" .info_copyright() ."</p></div>\n" . "<p>" ._T('install_select_langue') ."</p>" . "<div>" .$menu_langues ."</div>\n" . generer_form_ecrire('install', "<input type='hidden' name='etape' value='chmod' />" . bouton_suivant()); echo minipres('AUTO', $res); } } ?> etape_2.php000066600000013327152503074610006611 0ustar00<?php /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * * Copyright (c) 2001-2014 * * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * * * * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * \***************************************************************************/ if (!defined('_ECRIRE_INC_VERSION')) return; include_spip('base/abstract_sql'); // http://doc.spip.org/@install_etape_2_dist function install_etape_2_dist() { $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'); $name_db = defined('_INSTALL_NAME_DB') ? _INSTALL_NAME_DB : ''; $chmod = _request('chmod'); $link = spip_connect_db($adresse_db, 0, $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)); spip_connect_db($adresse_db, 0, $login_db, $pass_db, '',$server_db); 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,$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(); } // Liste les bases accessibles, // avec une heuristique pour preselectionner la plus probable // http://doc.spip.org/@install_etape_2_bases function install_etape_2_bases($login_db, $server_db) { $res = install_etape_liste_bases($server_db, $login_db); if ($res) { list($checked, $bases) = $res; return array($checked, "<label for='choix_db'><b>" ._T('texte_choix_base_2') ."</b><br />" ._T('texte_choix_base_3') ."</label>" . "<ul>\n<li>" . join("</li>\n<li>",$bases) . "</li>\n</ul><p>" . _T('info_ou') . " " ); } $res = "<b>"._T('avis_lecture_noms_bases_1')."</b> "._T('avis_lecture_noms_bases_2')."<p>"; 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 = sql_selectdb($test_base, $server_db); $test_base2 = str_replace('.', '_', $test_base); if (sql_selectdb($test_base2, $server_db)) { $test_base = $test_base2; $ok = true; } if ($ok) { $res .= _T('avis_lecture_noms_bases_3') . "<ul>" . "<li><input name=\"choix_db\" value=\"".$test_base."\" type='radio' id='stand' checked='checked' />" . "<label for='stand'>".$test_base."</label></li>\n" . "</ul>" . "<p>"._T('info_ou')." "; $checked = true; } } return array($checked, $res); } // http://doc.spip.org/@install_etape_2_form function install_etape_2_form($hidden, $checked, $res, $etape) { return generer_form_ecrire('install', ( "\n<input type='hidden' name='etape' value='$etape' />" . $hidden . (defined('_INSTALL_NAME_DB') ? '<h3>'._T('install_nom_base_hebergeur'). ' <tt>'._INSTALL_NAME_DB.'</tt>'.'</h3>' : "\n<fieldset><legend>"._T('texte_choix_base_1')."</legend>\n" . $res . "\n<input name=\"choix_db\" value=\"new_spip\" type='radio' id='nou'" . ($checked ? '' : " checked='checked'") . " />\n<label for='nou'>"._T('info_creer_base')."</label></p>\n<p>" . "\n<input type='text' name='table_new' class='text' value=\"spip\" size='20' /></p></fieldset>\n" ) . ((defined('_INSTALL_TABLE_PREFIX') OR $GLOBALS['table_prefix'] != 'spip') ? '<h3>'._T('install_table_prefix_hebergeur').' <tt>'.$GLOBALS['table_prefix'].'</tt>'.'</h3>' : "<fieldset><legend>"._T('texte_choix_table_prefix')."</legend>\n" . "<p><label for='table_prefix'>"._T('info_table_prefix')."</label></p><p>" . "\n<input type='text' id='tprefix' name='tprefix' class='text' value='" . 'spip' # valeur par defaut . "' size='20' /></p></fieldset>" ) . bouton_suivant())); } ?> etape_fin.php000066600000004720152503074610007221 0ustar00<?php /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * * Copyright (c) 2001-2014 * * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * * * * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * \***************************************************************************/ if (!defined('_ECRIRE_INC_VERSION')) return; include_spip('inc/headers'); include_spip('inc/acces'); // Mise en place des fichiers de configuration si ce n'est fait // http://doc.spip.org/@install_etape_fin_dist function install_etape_fin_dist() { ecrire_acces(); $f = str_replace( _FILE_TMP_SUFFIX, '.php', _FILE_CHMOD_TMP); if (file_exists(_FILE_CHMOD_TMP)) { if (!@rename(_FILE_CHMOD_TMP, $f)) { if (@copy(_FILE_CHMOD_TMP, $f)) spip_unlink(_FILE_CHMOD_TMP); } } $f = str_replace( _FILE_TMP_SUFFIX, '.php', _FILE_CONNECT_TMP); if (file_exists(_FILE_CONNECT_TMP)) { spip_log("renomme $f"); if (!@rename(_FILE_CONNECT_TMP, $f)) { if (@copy(_FILE_CONNECT_TMP, $f)) @spip_unlink(_FILE_CONNECT_TMP); } } // creer le repertoire cache, qui sert partout ! // deja fait en etape 4 en principe, on garde au cas ou if(!@file_exists(_DIR_CACHE)) { $rep = preg_replace(','._DIR_TMP.',', '', _DIR_CACHE); $rep = sous_repertoire(_DIR_TMP, $rep, true,true); } // Verifier la securite des htaccess // Si elle ne fonctionne pas, prevenir $msg = install_verifier_htaccess(); if ($msg) { $cible = _T('public:accueil_site'); $cible = generer_form_ecrire('accueil', '','', $cible); echo minipres('AUTO', $msg . $cible); // ok, deboucher dans l'espace prive } else redirige_url_ecrire('accueil'); } function install_verifier_htaccess() { if (verifier_htaccess(_DIR_TMP, true) AND verifier_htaccess(_DIR_CONNECT, true)) return ''; $titre = _T('htaccess_inoperant'); $averti = _T('htaccess_a_simuler', array('htaccess' => '<tt>' . _ACCESS_FILE_NAME . '</tt>', 'constantes' => '<tt>_DIR_TMP & _DIR_CONNECT</tt>', 'document_root' => '<tt>' . $_SERVER['DOCUMENT_ROOT'] . '</tt>')); return "<div class='error'><h3>$titre</h3><p>$averti</p></div>"; } ?> etape_ldap1.php000066600000005246152503074610007452 0ustar00<?php /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * * Copyright (c) 2001-2014 * * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * * * * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * \***************************************************************************/ if (!defined('_ECRIRE_INC_VERSION')) return; // http://doc.spip.org/@install_etape_ldap1_dist function install_etape_ldap1_dist() { $adresse_ldap = defined('_INSTALL_HOST_LDAP') ? _INSTALL_HOST_LDAP : 'localhost'; $port_ldap = defined('_INSTALL_PORT_LDAP') ? _INSTALL_PORT_LDAP : 389; $tls_ldap = defined('_INSTALL_TLS_LDAP') ? _INSTALL_TLS_LDAP : 'non'; $protocole_ldap = defined('_INSTALL_PROTOCOLE_LDAP') ? _INSTALL_PROTOCOLE_LDAP : 3 ; // on essaie 2 en cas d'echec $login_ldap = defined('_INSTALL_USER_LDAP') ? _INSTALL_USER_LDAP : ''; $pass_ldap = defined('_INSTALL_PASS_LDAP') ? _INSTALL_PASS_LDAP : ''; echo install_debut_html('AUTO', ' onload="document.getElementById(\'suivant\').focus();return false;"'); echo info_etape(_T('titre_connexion_ldap'),info_progression_etape(1,'etape_ldap','install/'), _T('entree_informations_connexion_ldap')); echo generer_form_ecrire('install', ( "\n<input type='hidden' name='etape' value='ldap2' />" . fieldset(_T('entree_adresse_annuaire'), array( 'adresse_ldap' => array( 'label' => _T('texte_adresse_annuaire_1'), 'valeur' => $adresse_ldap ), 'port_ldap' => array( 'label' => _T('entree_port_annuaire').'<br />'._T('texte_port_annuaire'), 'valeur' => $port_ldap ), 'tls_ldap' => array( 'label' => '<b>'._T('tls_ldap').'</b>', 'valeur' => $tls_ldap, 'alternatives' => array( 'non' => _T('item_non'), 'oui' => _T('item_oui') ) ), 'protocole_ldap' => array( 'label' => _T('protocole_ldap'), 'valeur' => $protocole_ldap, 'alternatives' => array( '3' => '3', '2' => '2' ) ) ) ) . "\n<p>"._T('texte_acces_ldap_anonyme_1').'</p>' . fieldset(_T('connexion_ldap'), array( 'login_ldap' => array( 'label' => _T('texte_login_ldap_1'), 'valeur' => $login_ldap ), 'pass_ldap' => array( 'label' => _T('entree_passe_ldap'), 'valeur' => $pass_ldap ) ) ) . bouton_suivant())); echo install_fin_html(); } ?> etape_4.php000066600000004150152503074610006605 0ustar00<?php /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * * Copyright (c) 2001-2014 * * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * * * * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * \***************************************************************************/ if (!defined('_ECRIRE_INC_VERSION')) return; include_spip('inc/headers'); // http://doc.spip.org/@install_etape_4_dist function install_etape_4_dist() { // creer le repertoire cache, qui sert partout ! if(!@file_exists(_DIR_CACHE)) { $rep = preg_replace(','._DIR_TMP.',', '', _DIR_CACHE); $rep = sous_repertoire(_DIR_TMP, $rep, true,true); } echo install_debut_html('AUTO', ' onload="document.getElementById(\'suivant\').focus();return false;"'); echo info_progression_etape(4,'etape_','install/'); echo "<div class='success'><b>" . _T('info_derniere_etape') . "</b><p>" . _T('info_utilisation_spip') . "</p></div>"; echo "<p>" ._T('plugin_info_plugins_dist_1', array('plugins_dist' => "<tt>".joli_repertoire(_DIR_PLUGINS_DIST)."</tt>")) ."</p>"; // installer les extensions include_spip('inc/plugin'); $afficher = charger_fonction("afficher_liste",'plugins'); echo $afficher(self(), liste_plugin_files(_DIR_PLUGINS_DIST),array(), array(), _DIR_PLUGINS_DIST,'afficher_nom_plugin'); plugin_installes_meta(); // mettre a jour si necessaire l'adresse du site // securite si on arrive plus a se loger include_spip('inc/config'); appliquer_adresse_site(''); // aller a la derniere etape qui clos l'install et redirige $suite = "\n<input type='hidden' name='etape' value='fin' />" . bouton_suivant(_T('login_espace_prive')); echo generer_form_ecrire('install', $suite); echo install_fin_html(); } ?> etape_3.php000066600000025217152503074610006613 0ustar00<?php /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * * Copyright (c) 2001-2014 * * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * * * * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * \***************************************************************************/ if (!defined('_ECRIRE_INC_VERSION')) return; include_spip('inc/headers'); include_spip('base/abstract_sql'); // http://doc.spip.org/@install_bases 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 "<p>"._T("avis_connexion_erreur_nom_base")."</p><!--\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 // 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 ''; } // http://doc.spip.org/@install_propose_ldap function install_propose_ldap() { return generer_form_ecrire('install', ( fieldset(_T('info_authentification_externe'), array( 'etape' => array( 'label' => _T('texte_annuaire_ldap_1'), 'valeur' => 'ldap1', 'hidden' => true )), bouton_suivant(_T('bouton_acces_ldap')) ))); } // http://doc.spip.org/@install_premier_auteur function install_premier_auteur($email, $login, $nom, $pass, $hidden, $auteur_obligatoire) { return info_progression_etape(3,'etape_','install/') . info_etape(_T('info_informations_personnelles'), "<b>"._T('texte_informations_personnelles_1')."</b>" . aide ("install5", true) . "<p>" . ($auteur_obligatoire? '' : _T('texte_informations_personnelles_2') . " " . _T('info_laisser_champs_vides') )) . generer_form_ecrire('install', ( "\n<input type='hidden' name='etape' value='3b' />" . $hidden . fieldset(_T('info_identification_publique'), array( 'nom' => array( 'label' => "<b>"._T('entree_signature')."</b><br />\n"._T('entree_nom_pseudo_1')."\n", 'valeur' => $nom, 'required' => $auteur_obligatoire, ), 'email' => array( 'label' => "<b>"._T('entree_adresse_email')."</b>\n", 'valeur' => $email, ) ) ) . fieldset(_T('entree_identifiants_connexion'), array( 'login' => array( 'label' => "<b>"._T('entree_login')."</b><br />\n"._T('info_login_trop_court_car_pluriel', array('nb' => _LOGIN_TROP_COURT))."\n", 'valeur' => $login, 'required' => $auteur_obligatoire, ), 'pass' => array( 'label' => "<b>"._T('entree_mot_passe')."</b><br />\n"._T('info_passe_trop_court_car_pluriel', array('nb' => _PASS_LONGUEUR_MINI))."\n", 'valeur' => $pass, 'required' => $auteur_obligatoire, ), 'pass_verif' => array( 'label' => "<b>"._T('info_confirmer_passe')."</b><br />\n", 'valeur' => $pass, 'required' => $auteur_obligatoire, ) ) ) . bouton_suivant())); } // http://doc.spip.org/@install_etape_3_dist 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(); } ?> index.php000066600000000002152503074610006363 0ustar00X etape_ldap5.php000066600000006121152503074610007447 0ustar00<?php /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * * Copyright (c) 2001-2014 * * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * * * * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * \***************************************************************************/ if (!defined('_ECRIRE_INC_VERSION')) return; include_spip('inc/headers'); include_spip('auth/ldap'); // http://doc.spip.org/@install_etape_ldap5_dist function install_etape_ldap5_dist() { etape_ldap5_save(); etape_ldap5_suite(); } function etape_ldap5_save() { if (!@file_exists(_FILE_CONNECT_TMP)) redirige_url_ecrire('install'); ecrire_meta('ldap_statut_import', _request('statut_ldap')); lire_fichier(_FILE_CONNECT_TMP, $conn); if ($p = strpos($conn, "'');")) { ecrire_fichier(_FILE_CONNECT_TMP, substr($conn, 0, $p+1) . _FILE_LDAP . substr($conn, $p+1)); } $adresse_ldap = addcslashes(_request('adresse_ldap'),"'\\"); $login_ldap = addcslashes(_request('login_ldap'),"'\\"); $pass_ldap = addcslashes(_request('pass_ldap'),"'\\"); $port_ldap = addcslashes(_request('port_ldap'),"'\\"); $tls_ldap = addcslashes(_request('tls_ldap'),"'\\"); $protocole_ldap = addcslashes(_request('protocole_ldap'),"'\\"); $base_ldap = addcslashes(_request('base_ldap'),"'\\"); $base_ldap_text = addcslashes(_request('base_ldap_text'),"'\\"); $conn = "\$GLOBALS['ldap_base'] = '$base_ldap';\n" . "\$GLOBALS['ldap_link'] = @ldap_connect('$adresse_ldap','$port_ldap');\n" . "@ldap_set_option(\$GLOBALS['ldap_link'],LDAP_OPT_PROTOCOL_VERSION,'$protocole_ldap');\n" . (($tls_ldap != 'oui') ? '' : "@ldap_start_tls(\$GLOBALS['ldap_link']);\n") . "@ldap_bind(\$GLOBALS['ldap_link'],'$login_ldap','$pass_ldap');\n"; $champs = is_array($GLOBALS['ldap_attributes']) ? $GLOBALS['ldap_attributes'] : array(); $res = ''; foreach ($champs as $champ => $v ) { $nom = 'ldap_' . $champ; $val = trim(_request($nom)); if (preg_match('/^\w*$/', $val)) { if ($val) $val = _q($val); } else $val = "array(" . _q(preg_split('/\W+/', $val)) . ')';; if ($val) $res .= "'$champ' => " . $val . ","; } $conn .= "\$GLOBALS['ldap_champs'] = array($res);\n"; install_fichier_connexion(_DIR_CONNECT . _FILE_LDAP, $conn); } function etape_ldap5_suite() { echo install_debut_html('AUTO', ' onload="document.getElementById(\'suivant\').focus();return false;"'); echo info_etape(_T('info_ldap_ok'), info_progression_etape(5,'etape_ldap','install/'), _T('info_terminer_installation')); echo generer_form_ecrire('install', ( "<input type='hidden' name='etape' value='3' />" . "<input type='hidden' name='ldap_present' value='true' />" . bouton_suivant())); echo install_fin_html(); } ?> etape_ldap2.php000066600000006047152503074610007453 0ustar00<?php /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * * Copyright (c) 2001-2014 * * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * * * * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * \***************************************************************************/ if (!defined('_ECRIRE_INC_VERSION')) return; // http://doc.spip.org/@install_etape_ldap2_dist function install_etape_ldap2_dist() { echo install_debut_html('AUTO', ' onload="document.getElementById(\'suivant\').focus();return false;"'); $adresse_ldap = _request('adresse_ldap'); $port_ldap = _request('port_ldap'); $tls_ldap = _request('tls_ldap'); $protocole_ldap = _request('protocole_ldap'); $login_ldap = _request('login_ldap'); $pass_ldap = _request('pass_ldap'); $port_ldap = intval($port_ldap); $tls = false; if ($tls_ldap == 'oui') { if ($port_ldap==636) { $adresse_ldap = "ldaps://$adresse_ldap"; } else $tls = true; } $ldap_link = ldap_connect($adresse_ldap, $port_ldap); $erreur = "ldap_connect($adresse_ldap, $port_ldap)"; if ($ldap_link) { if ( !ldap_set_option($ldap_link, LDAP_OPT_PROTOCOL_VERSION, $protocole_ldap) ) { $protocole_ldap = 2 ; ldap_set_option($ldap_link, LDAP_OPT_PROTOCOL_VERSION, $protocole_ldap); } if ($tls === true) { if (!ldap_start_tls($ldap_link)) { $erreur = "ldap_start_tls($ldap_link) $adresse_ldap, $port_ldap"; $ldap_link = false; } } if ($ldap_link) { $ldap_link = ldap_bind($ldap_link, $login_ldap, $pass_ldap); $erreur = "ldap_bind('$ldap_link', '$login_ldap', '$pass_ldap'): $adresse_ldap, $port_ldap"; } } if ($ldap_link) { echo info_etape(_T('titre_connexion_ldap'),info_progression_etape(2,'etape_ldap','install/')), _T('info_connexion_ldap_ok'); echo generer_form_ecrire('install', ( "\n<input type='hidden' name='etape' value='ldap3' />" . "\n<input type='hidden' name='adresse_ldap' value=\"$adresse_ldap\" />" . "\n<input type='hidden' name='port_ldap' value=\"$port_ldap\" />" . "\n<input type='hidden' name='login_ldap' value=\"$login_ldap\" />" . "\n<input type='hidden' name='pass_ldap' value=\"$pass_ldap\" />" . "\n<input type='hidden' name='protocole_ldap' value=\"$protocole_ldap\" />" . "\n<input type='hidden' name='tls_ldap' value=\"$tls_ldap\" />" . bouton_suivant())); } else { echo info_etape(_T('titre_connexion_ldap')), info_progression_etape(1,'etape_ldap','install/', true), "<div class='error'><p>"._T('avis_connexion_ldap_echec_1')."</p>", "<p>"._T('avis_connexion_ldap_echec_2'). "<br />\n"._T('avis_connexion_ldap_echec_3') . '<br /><br />'. $erreur. '<b> ?</b></p></div>' ; } echo install_fin_html(); } ?> etape_1.php000066600000004300152503074610006577 0ustar00<?php /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * * Copyright (c) 2001-2014 * * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * * * * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * \***************************************************************************/ if (!defined('_ECRIRE_INC_VERSION')) return; // http://doc.spip.org/@install_etape_1_dist 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(); } ?> etape_ldap3.php000066600000005655152503074610007460 0ustar00<?php /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * * Copyright (c) 2001-2014 * * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * * * * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * \***************************************************************************/ if (!defined('_ECRIRE_INC_VERSION')) return; // http://doc.spip.org/@install_etape_ldap3_dist function install_etape_ldap3_dist() { $adresse_ldap = _request('adresse_ldap'); $login_ldap = _request('login_ldap'); $pass_ldap = _request('pass_ldap'); $port_ldap = _request('port_ldap'); $base_ldap_text = defined('_INSTALL_BASE_LDAP') ? _INSTALL_BASE_LDAP : "ou=users, dc=mon-domaine, dc=com"; echo install_debut_html('AUTO', ' onload="document.getElementById(\'suivant\').focus();return false;"'); echo info_etape(_T('info_chemin_acces_1'),info_progression_etape(3,'etape_ldap','install/')),_T('info_chemin_acces_2'); $ldap_link = @ldap_connect("$adresse_ldap", "$port_ldap"); if ($ldap_link) { @ldap_bind($ldap_link, "$login_ldap", "$pass_ldap"); $result = @ldap_read($ldap_link, "", "objectclass=*", array("namingContexts")); $info = @ldap_get_entries($ldap_link, $result); @ldap_close($ldap_link); } $checked = false; $res = ''; if (is_array($info) AND $info["count"] > 0) { $res .= "<p>"._T('info_selection_chemin_acces')."</p>"; $res .= "<ul>"; $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++; $res .= "<li><input name=\"base_ldap\" value=\"".spip_htmlspecialchars($names[$j])."\" type='radio' id='tab$n'"; if (!$checked) { $res .= " checked=\"checked\""; $checked = true; } $res .= " />"; $res .= "<label for='tab$n'>".spip_htmlspecialchars($names[$j])."</label></li>\n"; } } } $res .= "</ul>"; $res .= _T('info_ou')." "; } $res .= "<br />\n<input name=\"base_ldap\" value=\"\" type='radio' id='manuel'"; if (!$checked) { $res .= " checked=\"checked\""; $checked = true; } $res .= " />" . "\n<label for='manuel'>"._T('entree_chemin_acces')."</label> " . "\n<fieldset>" . "<input type='text' name='base_ldap_text' class='text' value=\"$base_ldap_text\" size='40' />" . "\n</fieldset>" . "\n<input type='hidden' name='etape' value='ldap4' />" . install_propager(array('adresse_ldap','port_ldap','login_ldap','pass_ldap','protocole_ldap','tls_ldap')) . bouton_suivant(); echo generer_form_ecrire('install', $res); echo install_fin_html(); } ?> etape_ldap4.php000066600000007351152503074610007454 0ustar00<?php /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * * Copyright (c) 2001-2014 * * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * * * * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * \***************************************************************************/ if (!defined('_ECRIRE_INC_VERSION')) return; include_spip('auth/ldap'); // http://doc.spip.org/@install_etape_ldap4_dist function install_etape_ldap4_dist() { $adresse_ldap = _request('adresse_ldap'); $login_ldap = _request('login_ldap'); $pass_ldap = _request('pass_ldap'); $port_ldap = _request('port_ldap'); $base_ldap = _request('base_ldap'); $base_ldap_text = _request('base_ldap_text'); if (!$base_ldap) $base_ldap = $base_ldap_text; echo install_debut_html('AUTO', ' onload="document.getElementById(\'suivant\').focus();return false;"'); $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 info_etape(_T('info_chemin_acces_annuaire')), info_progression_etape(3,'etape_ldap','install/', true), "<div class='error'><p><b>"._T('avis_operation_echec')."</b></p><p>"._T('avis_chemin_invalide_1'), " (<tt>".spip_htmlspecialchars($base_ldap)."</tt>) "._T('avis_chemin_invalide_2')."</p></div>"; } else { info_etape(_T('info_reglage_ldap')); echo info_progression_etape(4,'etape_ldap','install/'); $statuts = liste_statuts_ldap(); $statut_ldap = defined('_INSTALL_STATUT_LDAP') ? _INSTALL_STATUT_LDAP : $GLOBALS['liste_des_statuts']['info_redacteurs']; $res = install_propager(array('adresse_ldap','port_ldap','login_ldap','pass_ldap','protocole_ldap','tls_ldap')) . "<input type='hidden' name='etape' value='ldap5' />" . "<input type='hidden' name='base_ldap' value='" . spip_htmlentities($base_ldap) . "' />" . fieldset(_T('info_statut_utilisateurs_1'), array( 'statut_ldap' => array( 'label' => _T('info_statut_utilisateurs_2').'<br />', 'valeur' => $statut_ldap, 'alternatives' => $statuts ) ) ) . install_ldap_correspondances() . bouton_suivant(); echo generer_form_ecrire('install', $res); } echo install_fin_html(); } // http://doc.spip.org/@liste_statuts_ldap function liste_statuts_ldap() { $recom = array("info_administrateurs" => ("<b>" ._T('info_administrateur_1')."</b> "._T('info_administrateur_2')."<br />"), "info_redacteurs" => ("<b>"._T('info_redacteur_1')."</b> "._T('info_redacteur_2')."<br />"), "info_visiteurs" => ("<b>"._T('info_visiteur_1')."</b> "._T('info_visiteur_2')."<br />")); $res = array(); foreach($GLOBALS['liste_des_statuts'] as $k => $v) { if (isset($recom[$k])) $res[$v] = $recom[$k]; } return $res; } function install_ldap_correspondances() { $champs = array(); foreach (is_array($GLOBALS['ldap_attributes']) ? $GLOBALS['ldap_attributes'] : array() as $champ => $v ) { $nom = 'ldap_' . $champ; $val = is_array($v) ? join(',', $v) : strval($v); $champs[$nom]= array( 'label' => _T('ldap_correspondance', array('champ' => "<tt>$champ</tt>")).'<br />', 'valeur' => $val ); } return !$champs ? '' : fieldset(_T('ldap_correspondance_1'), $champs, '', _T('ldap_correspondance_2') . '<br /><br />'); } ?> etape_3b.php000066600000011272152503074610006751 0ustar00<?php /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * * Copyright (c) 2001-2014 * * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * * * * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * \***************************************************************************/ if (!defined('_ECRIRE_INC_VERSION')) return; include_spip('inc/headers'); function install_etape_3b_dist() { $login = _request('login'); $email = _request('email'); $nom = _request('nom'); $pass = _request('pass'); $pass_verif = _request('pass_verif'); $server_db = defined('_INSTALL_SERVER_DB') ? _INSTALL_SERVER_DB : _request('server_db'); if (!defined('_PASS_LONGUEUR_MINI')) define('_PASS_LONGUEUR_MINI', 6); if (!defined('_LOGIN_TROP_COURT')) define('_LOGIN_TROP_COURT', 4); if($login) { $echec = ($pass!=$pass_verif) ? _T('info_passes_identiques') : ((strlen($pass)<_PASS_LONGUEUR_MINI) ? _T('info_passe_trop_court_car_pluriel', array('nb'=>_PASS_LONGUEUR_MINI)) : ((strlen($login)<_LOGIN_TROP_COURT) ? _T('info_login_trop_court') : '')); include_spip('inc/filtres'); if (!$echec AND $email AND !email_valide($email)) $echec = _T('form_email_non_valide'); if ($echec) { echo minipres( 'AUTO', info_progression_etape(3,'etape_','install/', true). "<div class='error'><h3>$echec</h3>\n". "<p>"._T('avis_connexion_echec_2')."</p>". "</div>" ); exit; } } if (@file_exists(_FILE_CHMOD_TMP)) include(_FILE_CHMOD_TMP); else redirige_url_ecrire('install'); if (!@file_exists(_FILE_CONNECT_TMP)) redirige_url_ecrire('install'); # maintenant on connait le vrai charset du site s'il est deja configure # sinon par defaut lire_meta reglera _DEFAULT_CHARSET # (les donnees arrivent de toute facon postees en _DEFAULT_CHARSET) lire_metas(); if ($login) { include_spip('inc/charsets'); $nom = (importer_charset($nom, _DEFAULT_CHARSET)); $login = (importer_charset($login, _DEFAULT_CHARSET)); $email = (importer_charset($email, _DEFAULT_CHARSET)); # pour le passwd, bizarrement il faut le convertir comme s'il avait # ete tape en iso-8859-1 ; car c'est en fait ce que voit md5.js $pass = unicode2charset(utf_8_to_unicode($pass), 'iso-8859-1'); include_spip('auth/sha256.inc'); include_spip('inc/acces'); $htpass = generer_htpass($pass); $alea_actuel = creer_uniqid(); $alea_futur = creer_uniqid(); $shapass = _nano_sha256($alea_actuel.$pass); // prelablement, creer le champ webmestre si il n'existe pas (install neuve // sur une vieille base $t = sql_showtable("spip_auteurs", true); if (!isset($t['field']['webmestre'])) @sql_alter("TABLE spip_auteurs ADD webmestre varchar(3) DEFAULT 'non' NOT NULL"); $id_auteur = sql_getfetsel("id_auteur", "spip_auteurs", "login=" . sql_quote($login)); if ($id_auteur !== NULL) { sql_updateq('spip_auteurs', array("nom"=> $nom, 'email'=> $email, 'login'=>$login, 'pass'=>$shapass, 'alea_actuel'=>$alea_actuel, 'alea_futur'=> $alea_futur, 'htpass'=>$htpass, 'statut'=>'0minirezo'), "id_auteur=$id_auteur"); } else { $id_auteur = sql_insertq('spip_auteurs', array( 'nom' => $nom, 'email' => $email, 'login' => $login, 'pass' => $shapass, 'htpass' => $htpass, 'alea_actuel' => $alea_actuel, 'alea_futur' => $alea_futur, 'statut' =>'0minirezo')); } // le passer webmestre separrement du reste, au cas ou l'alter n'aurait pas fonctionne @sql_updateq('spip_auteurs', array('webmestre' => 'oui'), "id_auteur=$id_auteur"); // inserer email comme email webmaster principal // (sauf s'il est vide: cas de la re-installation) if ($email) ecrire_meta('email_webmaster', $email); // Connecter directement celui qui vient de (re)donner son login // mais sans cookie d'admin ni connexion longue include_spip('inc/auth'); if (!$auteur = auth_identifier_login($login, $pass) OR !auth_loger($auteur, true)) spip_log("login automatique impossible $auth_spip $session" . count($row)); } // installer les metas $config = charger_fonction('config', 'inc'); $config(); // activer les plugins // leur installation ne peut pas se faire sur le meme hit, il faudra donc // poursuivre au hit suivant include_spip('inc/plugin'); actualise_plugins_actifs(); include_spip('inc/distant'); redirige_par_entete(parametre_url(self(),'etape','4','&')); } ?> etape_chmod.php000066600000010205152503074610007532 0ustar00<?php /***************************************************************************\ * SPIP, Systeme de publication pour l'internet * * * * Copyright (c) 2001-2014 * * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * * * * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * \***************************************************************************/ if (!defined('_ECRIRE_INC_VERSION')) return; if (defined('_TEST_DIRS')) return; define('_TEST_DIRS', "1"); include_spip('inc/minipres'); utiliser_langue_visiteur(); // // Tente d'ecrire // // http://doc.spip.org/@test_ecrire function test_ecrire($my_dir) { static $chmod = 0; $ok = false; $script = @file_exists('spip_loader.php') ? 'spip_loader.php' : $_SERVER['PHP_SELF']; $self = basename($script); $uid = @fileowner('.'); $uid2 = @fileowner($self); $gid = @filegroup('.'); $gid2 = @filegroup($self); $perms = @fileperms($self); // Comparer l'appartenance d'un fichier cree par PHP // avec celle du script et du repertoire courant if(!$chmod) { @rmdir('test'); spip_unlink('test'); // effacer au cas ou @touch('test'); if ($uid > 0 && $uid == $uid2 && @fileowner('test') == $uid) $chmod = 0700; else if ($gid > 0 && $gid == $gid2 && @filegroup('test') == $gid) $chmod = 0770; else $chmod = 0777; // Appliquer de plus les droits d'acces du script if ($perms > 0) { $perms = ($perms & 0777) | (($perms & 0444) >> 2); $chmod |= $perms; } spip_unlink('test'); } // Verifier que les valeurs sont correctes $f = @fopen($my_dir.'test.php', 'w'); if ($f) { @fputs($f, '<'.'?php $ok = true; ?'.'>'); @fclose($f); @chmod($my_dir.'test.php', $chmod); include($my_dir.'test.php'); } spip_unlink($my_dir.'test.php'); return $ok?$chmod:false; } // // tester les droits en ecriture sur les repertoires // rajouter celui passe dans l'url ou celui du source (a l'installation) // // http://doc.spip.org/@install_etape_chmod_dist 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", true) . "</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(); } } ?>
/home/etiennec/www/plugins/../IMG/pdf/../../f1f54/install.tar