diff --git a/ecrire/action/editer_article.php b/ecrire/action/editer_article.php index 37527f2b78861506d0f219477158c881dcccf7b8..488f01c7131029333aeaba6ea7a8feb9b6f72c59 100644 --- a/ecrire/action/editer_article.php +++ b/ecrire/action/editer_article.php @@ -24,7 +24,8 @@ function action_editer_article_dist() { if (!$id_article = intval($arg)) { $id_parent = _request('id_parent'); $id_auteur = $GLOBALS['auteur_session']['id_auteur']; - if (!($id_parent AND $id_auteur)) redirige_par_entete('./'); + if (!($id_parent AND $id_auteur)) + redirige_par_entete(generer_url_ecrire()); $id_article = insert_article($id_parent); # cf. GROS HACK ecrire/inc/getdocument diff --git a/ecrire/action/editer_breve.php b/ecrire/action/editer_breve.php index 3b112d32468987d609c1ce85b4cfa5b2c585f44f..a49e1e12198360e06e4a8c717d9ba2f355305cf6 100644 --- a/ecrire/action/editer_breve.php +++ b/ecrire/action/editer_breve.php @@ -42,7 +42,7 @@ function action_editer_breve_dist() { } // Erreur else{ - redirige_par_entete('./'); + redirige_par_entete(generer_url_ecrire()); } // Rediriger le navigateur diff --git a/ecrire/action/editer_rubrique.php b/ecrire/action/editer_rubrique.php index e8f53604cc526f16e9093830c0fbf747e0375a6d..1ae4554f17cd7868b2db9a1b06fe41ca2c37b7ab 100644 --- a/ecrire/action/editer_rubrique.php +++ b/ecrire/action/editer_rubrique.php @@ -21,7 +21,8 @@ function action_editer_rubrique_dist() { $arg = $securiser_action(); if (!$id_rubrique = intval($arg)) { - if ($arg != 'oui') redirige_par_entete('./'); + if ($arg != 'oui') + redirige_par_entete(generer_url_ecrire()); $id_rubrique = insert_rubrique(_request('id_parent')); } diff --git a/ecrire/action/editer_site.php b/ecrire/action/editer_site.php index 5951036acf8d58cdf3437f6b433f9334246a389c..4af38a5b1ba034ba68f381747516f1cbdadee889 100644 --- a/ecrire/action/editer_site.php +++ b/ecrire/action/editer_site.php @@ -63,7 +63,7 @@ function action_editer_site_dist() { } // Erreur else { - redirige_par_entete('./'); + redirige_par_entete(generer_url_ecrire()); } // Re-syndiquer le site diff --git a/ecrire/action/export_all.php b/ecrire/action/export_all.php index 9b28a38f9a1e8418b5d21d2f415bfcd06a7c552d..87b5b427ef3408936218a83df74ba16146f07cc9 100644 --- a/ecrire/action/export_all.php +++ b/ecrire/action/export_all.php @@ -79,7 +79,7 @@ function action_export_all_dist() echo "<p style='text-align: left'>". $n, - " <a href='" . _DIR_RESTREINT . "'>". + " <a href='" . generer_url_ecrire() . "'>". _T('info_sauvegarde_reussi_03') . "</a> " ._T('info_sauvegarde_reussi_04') diff --git a/ecrire/balise/login_public.php b/ecrire/balise/login_public.php index eb2f93b54f881173de8c81574e1080533b0d7bfb..a5a69b25123c0df6e2504b15cf5d62d23c60dea5 100644 --- a/ecrire/balise/login_public.php +++ b/ecrire/balise/login_public.php @@ -52,8 +52,7 @@ function login_explicite($login, $cible) { } else { if (preg_match(",[?&]url=([^&]*),", $action, $m)) $cible = rawurldecode($m[1]); - else - $cible = _DIR_RESTREINT ; + else $cible = generer_url_ecrire(); } verifier_visiteur(); diff --git a/ecrire/exec/accueil.php b/ecrire/exec/accueil.php index 43b9d1a6613f5dd9d420769b17f29fa8b797714b..fc33dbfda74a7656cde0011591ff2ad78bd510ec 100644 --- a/ecrire/exec/accueil.php +++ b/ecrire/exec/accueil.php @@ -193,6 +193,8 @@ function colonne_droite_neq4($id_rubrique, $activer_breves, if (!$_COOKIE['spip_admin']) { $cookie = rawurlencode("@$connect_login"); + $retour = rawurlencode(_DIR_RESTREINT_ABS . _SPIP_ECRIRE_SCRIPT); + $lien = generer_url_public('spip_cookie', "cookie_admin=$cookie&url=$retour"); $gadget .= "<div> </div>". "<table width='95%'><tr>". "<td style='width: 100%'>". @@ -203,7 +205,7 @@ function colonne_droite_neq4($id_rubrique, $activer_breves, http_img_pack("rien.gif", ' ', "width='10'") . "</td>". "<td style='width: 250px'>". - icone_horizontale(_T('icone_activer_cookie'), generer_url_public('spip_cookie', "cookie_admin=$cookie&url=".rawurlencode(_DIR_RESTREINT_ABS)), "cookie-24.gif", "", false). + icone_horizontale(_T('icone_activer_cookie'), $lien,"cookie-24.gif", "", false). "</td></tr></table>"; } @@ -249,8 +251,9 @@ function personnel_accueil($coockcookie) // if ($coockcookie) { + $lien = generer_url_public("spip_cookie", "cookie_admin=non&url=".rawurlencode(_DIR_RESTREINT_ABS . _SPIP_ECRIRE_SCRIPT)); $t = _T('icone_supprimer_cookie'); - $t = icone_horizontale($t, generer_url_public("spip_cookie", "cookie_admin=non&url=".rawurlencode(_DIR_RESTREINT_ABS)), "cookie-24.gif", "", false); + $t = icone_horizontale($t, $lien, "cookie-24.gif", "", false); if ($GLOBALS['spip_display'] != 1) $t = str_replace('</td></tr></table>', aide("cookie").'</td></tr></table>', diff --git a/ecrire/exec/menu_navigation.php b/ecrire/exec/menu_navigation.php index de8b03fd3793438072a8dec9e51cf176d145444a..129868af0ff7637515db904afa6d947202a4f63e 100644 --- a/ecrire/exec/menu_navigation.php +++ b/ecrire/exec/menu_navigation.php @@ -42,7 +42,7 @@ function exec_menu_navigation_dist() { if (spip_num_rows($vos_articles) > 0) { $gadget .= "<div> </div>"; $gadget .= "<div class='bandeau_rubriques' style='z-index: 1;'>"; - $gadget .= bandeau_titre_boite2(afficher_plus('./') . '<b>' . _T('info_articles_proposes') . '</b>', "article-24.gif", $couleur_foncee, 'white', false); + $gadget .= bandeau_titre_boite2(afficher_plus(generer_url_ecrire()) . '<b>' . _T('info_articles_proposes') . '</b>', "article-24.gif", $couleur_foncee, 'white', false); $gadget .= "<div class='plan-articles'>"; while($row = spip_fetch_array($vos_articles)) { $id_article = $row['id_article']; diff --git a/ecrire/exec/upgrade.php b/ecrire/exec/upgrade.php index 9ee787775f59c993f0955d082a11757cdc71a736..6d3a9c4971f8ad33d96be87712e72a05a2ef2337 100644 --- a/ecrire/exec/upgrade.php +++ b/ecrire/exec/upgrade.php @@ -62,7 +62,7 @@ function exec_upgrade_dist() { // Qu'est-ce que tu fais ici? if ($spip_version == $version_installee) - redirige_par_entete('./'); + redirige_par_entete(generer_url_ecrire()); // On passe a l'upgrade include_spip('inc/admin'); diff --git a/ecrire/inc/actions.php b/ecrire/inc/actions.php index 57260f1e69c6cd0dad4fc0863152e9a3177a0cca..3015ac28fc7e6c32139c3cf86c2fc64fbcd32e98 100644 --- a/ecrire/inc/actions.php +++ b/ecrire/inc/actions.php @@ -274,13 +274,14 @@ function verifier_php_auth() { function ask_php_auth($pb, $raison, $retour, $url='', $re='', $lien='') { @Header("WWW-Authenticate: Basic realm=\"espace prive\""); @Header("HTTP/1.0 401 Unauthorized"); - echo "<b>$pb</b><p>$raison</p>[<a href='./'>$retour</a>] "; + $ici = generer_url_ecrire(); + echo "<b>$pb</b><p>$raison</p>[<a href='$ici'>$retour</a>] "; if ($url) { echo "[<a href='", generer_url_public('spip_cookie',"essai_auth_http=oui&$url"), "'>$re</a>]"; } if ($lien) - echo " [<a href='" . _DIR_RESTREINT_ABS . "'>"._T('login_espace_prive')."</a>]"; + echo " [<a href='$ici'>"._T('login_espace_prive')."</a>]"; exit; } diff --git a/ecrire/inc/admin.php b/ecrire/inc/admin.php index 06346b59af5eea7ff4a656f6c4b8d92ae4accbe0..ef5850fe48cc30598a8208ffadde59c2d189a422 100644 --- a/ecrire/inc/admin.php +++ b/ecrire/inc/admin.php @@ -54,37 +54,35 @@ function debut_admin($script, $action, $commentaire='') { return true; } $form = $commentaire - . "<form action='./' method='post'>" - . copy_request($script) - . '<input type="hidden" name="validation_admin" value="'.$signal.'" />' - . bouton_suivant(_T('bouton_valider')) - . "</form>"; + . copy_request($script, + ('<input type="hidden" name="validation_admin" value="'.$signal.'" />' + . bouton_suivant(_T('bouton_valider')))); + $js = ''; } else { $form = $commentaire - . "<form action='./' method='post'>" - . copy_request($script) - . fieldset(_T('info_authentification_ftp').aide("ftp_auth"), - array( - 'fichier' => array( - 'label' => _T('info_creer_repertoire'), - 'valeur' => $signal - )), - ('<br />' - . _T('info_creer_repertoire_2', array('repertoire' => joli_repertoire($dir))) - . bouton_suivant(_T('bouton_recharger_page')))) - . "</form>"; - $js = " onload='document.forms[0].fichier.value=\"\";barre_inserer(\"$signal\", document.forms[0].fichier)'"; - } + . copy_request($script, + (fieldset(_T('info_authentification_ftp').aide("ftp_auth"), + array( + 'fichier' => array( + 'label' => _T('info_creer_repertoire'), + 'valeur' => $signal + )), + ('<br />' + . _T('info_creer_repertoire_2', array('repertoire' => joli_repertoire($dir))) + . bouton_suivant(_T('bouton_recharger_page')))))); // code volontairement tordu: // provoquer la copie dans le presse papier du nom du repertoire // en remettant a vide le champ pour que ca marche aussi en cas // de JavaScript inactif. - echo minipres(_T('info_action', array('action' => $action)), - $form, $js); + + $js = " onload='document.forms[0].fichier.value=\"\";barre_inserer(\"$signal\", document.forms[0].fichier)'"; + } + + echo minipres(_T('info_action', array('action' => $action)), $form, $js); exit; } @@ -103,7 +101,7 @@ function fin_admin($action) { // http://doc.spip.org/@copy_request -function copy_request($script) +function copy_request($script, $suite) { $hidden = ""; $args = $_POST; @@ -115,6 +113,7 @@ function copy_request($script) entites_html($c) . "' />"; } - return $hidden; + return "<form action='" . generer_url_ecrire() . + "' method='post'><div>$hidden$suite</div></form>"; } ?> diff --git a/ecrire/inc/commencer_page.php b/ecrire/inc/commencer_page.php index 8bb3c82c8477905a427c231801b43617e01fad22..251e58e781ec35ca048da3d05918f20a85d6ba5e 100644 --- a/ecrire/inc/commencer_page.php +++ b/ecrire/inc/commencer_page.php @@ -93,7 +93,7 @@ function init_body($rubrique='accueil', $sous_rubrique='accueil', $id_rubrique=' if ($spip_display == "4") { $res .= "<ul>" - . "\n<li><a href='./'>"._T('icone_a_suivre')."</a></li>" + . "\n<li><a href='" . generer_url_ecrire() ."'>"._T('icone_a_suivre')."</a></li>" . "\n<li><a href='" . generer_url_ecrire("naviguer") . "'>"._T('icone_edition_site')."</a></li>" . "\n<li><a href='" . generer_url_ecrire("forum"). "'>"._T('titre_forum')."</a></li>" . "\n<li><a href='" . generer_url_ecrire("auteurs") . "'>"._T('icone_auteurs')."</a></li>" diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php index 70db96f46c78693cd410422e1c1976da0ecae7b2..2cb71400a2386ef9b2efee8189c0ae057f915fe3 100644 --- a/ecrire/inc/utils.php +++ b/ecrire/inc/utils.php @@ -756,16 +756,12 @@ function url_de_base() { // http://httpd.apache.org/docs/2.0/mod/mod_dir.html // http://doc.spip.org/@generer_url_ecrire -function generer_url_ecrire($script, $args="", $no_entities=false, $rel=false) { +function generer_url_ecrire($script='', $args="", $no_entities=false, $rel=false) { if (!$rel) - $rel = url_de_base() . _DIR_RESTREINT_ABS; + $rel = url_de_base() . _DIR_RESTREINT_ABS . _SPIP_ECRIRE_SCRIPT; else if (!is_string($rel)) - $rel = _DIR_RESTREINT ? _DIR_RESTREINT : './'; - - // Les anciens IIS n'acceptent pas les POST sur ecrire/ (#419) - // meme pb sur thttpd cf. http://forum.spip.org/fr_184153.html - if (preg_match(',IIS|thttpd,',$_SERVER['SERVER_SOFTWARE'])) - $rel .= 'index.php'; + $rel = _DIR_RESTREINT ? _DIR_RESTREINT : + ('./' . _SPIP_ECRIRE_SCRIPT); if ($script AND $script<>'accueil') $args = "?exec=$script" . (!$args ? '' : "&$args"); @@ -1002,9 +998,18 @@ function spip_initialisation($pi=NULL, $pa=NULL, $ti=NULL, $ta=NULL) { "<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Frameset//EN' 'http://www.w3.org/TR/1999/REC-html401-19991224/frameset.dtd'>"); // L'adresse de base du site ; on peut mettre '' si la racine est geree par - // le script index.php + // le script de l'espace public, alias index.php define('_SPIP_SCRIPT', 'spip.php'); + // le script de l'espace prive + // Mettre a "index.php" si DirectoryIndex ne le fait pas ou pb connexes: + // les anciens IIS n'acceptent pas les POST sur ecrire/ (#419) + // meme pb sur thttpd cf. http://forum.spip.org/fr_184153.html + + define('_SPIP_ECRIRE_SCRIPT', // true ? #decommenter ici et commenter la + preg_match(',IIS|thttpd,',$_SERVER['SERVER_SOFTWARE']) ? + 'index.php' : ''); + // le nom du repertoire plugins/ define('_DIR_PLUGINS', _DIR_RACINE . "plugins/"); diff --git a/ecrire/install/etape_6.php b/ecrire/install/etape_6.php index 5bf4b722b1794aedeb1953976ca34b577b5d4c72..fc68a30dd64f444f29d64a5d08d06228c998cd5f 100644 --- a/ecrire/install/etape_6.php +++ b/ecrire/install/etape_6.php @@ -103,7 +103,7 @@ function install_etape_6_dist() @unlink(_FILE_CHMOD_INS . _FILE_TMP . '.php'); } - echo "<form action='./' method='post'><div>"; + echo "<form action='", generer_url_ecrire(), "' method='post'><div>"; echo bouton_suivant(); echo "</div></form>"; echo install_fin_html();