From 7ce2c047f7c86db82035cf249039cd770a1f1c8d Mon Sep 17 00:00:00 2001 From: "Committo,Ergo:sum" <esj@rezo.net> Date: Sun, 12 Nov 2006 17:01:55 +0000 Subject: [PATCH] =?UTF-8?q?T=C3=A2che=20#328=20et=20rationnalisation=20du?= =?UTF-8?q?=20cod:=20les=20fonctions=20de=20inc/utils=20produisant=20du=20?= =?UTF-8?q?code=20HTML=20et=20des=20entetes=20HTTP=20sont=20=C3=A9vacu?= =?UTF-8?q?=C3=A9es=20ailleurs.=20En=20particulier,=20la=20plupart=20des?= =?UTF-8?q?=20redirections=20=C3=A9tant=20=C3=A0=20present=20dans=20les=20?= =?UTF-8?q?scripts=20de=20action/,=20redirige=5Fpar=5Fentete=20passe=20dan?= =?UTF-8?q?s=20inc/headers.=20Plus=20un=20peu=20de=20partage=20de=20code?= =?UTF-8?q?=20ici=20ou=20l=C3=A0.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ecrire/action/cookie.php | 22 +---------- ecrire/balise/login_public.php | 11 ++++-- ecrire/base/db_mysql.php | 1 + ecrire/exec/admin_plugin.php | 1 + ecrire/exec/aide_index.php | 2 +- ecrire/exec/auteur_infos.php | 1 + ecrire/exec/auteurs_edit.php | 2 +- ecrire/exec/configuration.php | 5 ++- ecrire/exec/convert_utf8.php | 1 + ecrire/exec/legender_auteur.php | 1 + ecrire/exec/upgrade.php | 1 + ecrire/inc/acces.php | 1 + ecrire/inc/flock.php | 1 + ecrire/inc/getdocument.php | 1 + ecrire/inc/headers.php | 62 ++++++++++++++++++++++-------- ecrire/inc/lang.php | 1 + ecrire/inc/minipres.php | 1 + ecrire/inc/plugin.php | 5 ++- ecrire/inc/presentation.php | 4 +- ecrire/inc/sax.php | 10 +---- ecrire/inc/session.php | 5 ++- ecrire/inc/utils.php | 67 +++++++-------------------------- ecrire/inc_version.php | 1 + ecrire/install/etape_.php | 7 +++- ecrire/install/etape_4.php | 4 ++ ecrire/install/etape_5.php | 4 ++ ecrire/install/etape_6.php | 4 ++ ecrire/install/etape_ldap5.php | 3 ++ ecrire/install/etape_unpack.php | 2 +- ecrire/public.php | 1 + ecrire/public/assembler.php | 2 + ecrire/public/balises.php | 4 +- ecrire/public/debug.php | 24 +++++------- ecrire/public/parametrer.php | 2 +- 34 files changed, 135 insertions(+), 129 deletions(-) diff --git a/ecrire/action/cookie.php b/ecrire/action/cookie.php index 7a05b5b8d4..7892e12abb 100644 --- a/ecrire/action/cookie.php +++ b/ecrire/action/cookie.php @@ -179,26 +179,6 @@ if ($var_lang_ecrire) { $redirect = parametre_url($redirect,'lang',$var_lang_ecrire,'&'); } -// Redirection -// Sous Apache, les cookies avec une redirection fonctionnent -// Sinon, on fait un refresh HTTP -if (ereg("^Apache", $GLOBALS['SERVER_SOFTWARE'])) { - redirige_par_entete($redirect); + redirige_par_entete($redirect, true); } -else { - include_spip('inc/headers'); - include_spip('inc/lang'); - spip_header("Refresh: 0; url=" . $redirect); - echo html_lang_attributes(), - "<head><meta http-equiv='Refresh' content='0; url=", - $redirect, - "'></head>\n", - "<body><a href='", - $redirect, - "'>", - _T('navigateur_pas_redirige'), - "</a></body></html>"; - } -} - ?> diff --git a/ecrire/balise/login_public.php b/ecrire/balise/login_public.php index 4746d2e7ce..61188f0962 100644 --- a/ecrire/balise/login_public.php +++ b/ecrire/balise/login_public.php @@ -64,9 +64,10 @@ function login_explicite($login, $cible) { ($auteur_session['statut']=='0minirezo' OR $auteur_session['statut']=='1comite')) { if ($cible != $action) { - if (!headers_sent() AND !$_GET['var_mode']) + if (!headers_sent() AND !$_GET['var_mode']) { + include_spip('inc/headers'); redirige_par_entete($cible); - else { + } else { include_spip('inc/minipres'); return http_href($cible, _T('login_par_ici')); } @@ -91,8 +92,10 @@ function login_pour_tous($login, $cible, $action) { $pose_cookie = generer_url_public('spip_cookie'); $auth_http = ''; if ($echec_cookie AND !$ignore_auth_http) { - include_spip('inc/headers'); - if (php_module()) $auth_http = $pose_cookie; + if (($GLOBALS['flag_sapi_name'] + AND eregi("apache", @php_sapi_name())) + OR ereg("^Apache.* PHP", $_SERVER['SERVER_SOFTWARE'])) + $auth_http = $pose_cookie; } // Attention dans le cas 'intranet' la proposition de se loger // par auth_http peut conduire a l'echec. diff --git a/ecrire/base/db_mysql.php b/ecrire/base/db_mysql.php index 074143f8e2..855688fcd7 100644 --- a/ecrire/base/db_mysql.php +++ b/ecrire/base/db_mysql.php @@ -48,6 +48,7 @@ function base_db_mysql_dist() if (!_DIR_RESTREINT) return false; + include_spip('inc/headers'); redirige_par_entete(generer_url_ecrire('upgrade', 'reinstall=oui', true)); } diff --git a/ecrire/exec/admin_plugin.php b/ecrire/exec/admin_plugin.php index b959f06bb2..41f4b55363 100644 --- a/ecrire/exec/admin_plugin.php +++ b/ecrire/exec/admin_plugin.php @@ -29,6 +29,7 @@ function exec_admin_plugin() { enregistre_modif_plugin(); // pour la peine, un redirige, // que les plugin charges soient coherent avec la liste + include_spip('inc/headers'); redirige_par_entete(generer_url_ecrire('admin_plugin')); } else diff --git a/ecrire/exec/aide_index.php b/ecrire/exec/aide_index.php index 34fae87bfd..5e9475c1b7 100644 --- a/ecrire/exec/aide_index.php +++ b/ecrire/exec/aide_index.php @@ -13,6 +13,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return; include_spip('inc/minipres'); +include_spip('inc/headers'); include_spip('inc/layer'); include_spip('inc/texte'); @@ -457,7 +458,6 @@ else { $_SERVER['HTTP_IF_MODIFIED_SINCE']); $if_modified_since = trim(str_replace('GMT', '', $if_modified_since)); if ($if_modified_since == $gmoddate) { - include_spip('inc/headers'); http_status(304); exit; } diff --git a/ecrire/exec/auteur_infos.php b/ecrire/exec/auteur_infos.php index a490b8b439..37fe6e6081 100644 --- a/ecrire/exec/auteur_infos.php +++ b/ecrire/exec/auteur_infos.php @@ -32,6 +32,7 @@ function exec_auteur_infos_dist() // id_auteur nul ==> creation, et seuls les admins complets creent if (!$id_auteur AND $connect_toutes_rubriques) { $arg = "0/"; + include_spip('inc/headers'); redirige_par_entete(generer_action_auteur('legender_auteur', $arg, $redirect, true)); exit; } diff --git a/ecrire/exec/auteurs_edit.php b/ecrire/exec/auteurs_edit.php index 97fa31da21..56abaa600a 100644 --- a/ecrire/exec/auteurs_edit.php +++ b/ecrire/exec/auteurs_edit.php @@ -13,7 +13,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return; $id_auteur = intval(_request('id_auteur')); - +include_spip('inc/headers'); redirige_par_entete("./?exec=auteur_infos&id_auteur=$id_auteur&initial=-1"); ?> diff --git a/ecrire/exec/configuration.php b/ecrire/exec/configuration.php index 091210dd50..175bde8a14 100644 --- a/ecrire/exec/configuration.php +++ b/ecrire/exec/configuration.php @@ -26,7 +26,10 @@ include_spip('inc/config'); exit; } -if (!$connect_toutes_rubriques) redirige_par_entete(generer_url_ecrire('admin_tech','',true)); + if (!$connect_toutes_rubriques) { + include_spip('inc/headers'); + redirige_par_entete(generer_url_ecrire('admin_tech','',true)); + } // // Modifications diff --git a/ecrire/exec/convert_utf8.php b/ecrire/exec/convert_utf8.php index 291ed6b21e..a6e4a7b595 100644 --- a/ecrire/exec/convert_utf8.php +++ b/ecrire/exec/convert_utf8.php @@ -204,6 +204,7 @@ function exec_convert_utf8_dist() { // C'est fini, supprimer le fichier autorisant les modifs fin_admin($action); + include_spip('inc/headers'); // bouton "retour au site" + redirige_par_entete echo "<p align='right'> <a href='" . generer_url_ecrire("config_lang") . "'> >> "._T('icone_retour')."</a>"; diff --git a/ecrire/exec/legender_auteur.php b/ecrire/exec/legender_auteur.php index 91e4dd40b5..125c3c140a 100644 --- a/ecrire/exec/legender_auteur.php +++ b/ecrire/exec/legender_auteur.php @@ -31,6 +31,7 @@ function exec_legender_auteur_dist() } if (!$echec AND $retour) { + include_spip('inc/headers'); redirige_par_entete(rawurldecode($retour)); exit; } diff --git a/ecrire/exec/upgrade.php b/ecrire/exec/upgrade.php index 48905e0e18..ff5c4c3d27 100644 --- a/ecrire/exec/upgrade.php +++ b/ecrire/exec/upgrade.php @@ -13,6 +13,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return; include_spip('inc/actions'); +include_spip('inc/headers'); // http://doc.spip.org/@exec_upgrade_dist function exec_upgrade_dist() { diff --git a/ecrire/inc/acces.php b/ecrire/inc/acces.php index ff6a1373cb..390f821097 100644 --- a/ecrire/inc/acces.php +++ b/ecrire/inc/acces.php @@ -165,6 +165,7 @@ function ecrire_acces() { ecrire_logins($fichier, $logins); fclose($fichier); } else { + include_spip('inc/headers'); redirige_par_entete(generer_url_action('test_dirs', '', true)); } diff --git a/ecrire/inc/flock.php b/ecrire/inc/flock.php index 3a5a7fe691..6c505b8fc7 100644 --- a/ecrire/inc/flock.php +++ b/ecrire/inc/flock.php @@ -183,6 +183,7 @@ function sous_repertoire($base, $subdir, $nobase = false) { fclose($f); else { spip_log("echec creation $base${subdir}"); + include_spip('inc/headers'); redirige_par_entete( generer_url_action('test_dirs',"test_dir=$base${subdir}",true)); } diff --git a/ecrire/inc/getdocument.php b/ecrire/inc/getdocument.php index 12689af255..d87f9eaa5d 100644 --- a/ecrire/inc/getdocument.php +++ b/ecrire/inc/getdocument.php @@ -92,6 +92,7 @@ function deplacer_fichier_upload($source, $dest, $move=false) { if ($f) { fclose ($f); } else { + include_spip('inc/headers'); redirige_par_entete(generer_url_action("test_dirs", "test_dir=". dirname($dest), true)); } @unlink($dest); diff --git a/ecrire/inc/headers.php b/ecrire/inc/headers.php index 26a290fd57..43726ebaff 100644 --- a/ecrire/inc/headers.php +++ b/ecrire/inc/headers.php @@ -11,26 +11,45 @@ \***************************************************************************/ -// if (!defined("_ECRIRE_INC_VERSION")) return; +// envoyer le navigateur sur une nouvelle adresse +// en evitant les attaques par la redirection (souvent indique par 1 $_GET) -// Interdire les attaques par manipulation des headers -// http://doc.spip.org/@spip_header -function spip_header($h) { - @header(strtr($h, "\n\r", " ")); -} +// http://doc.spip.org/@redirige_par_entete +function redirige_par_entete($url, $equiv='') { -// cf. liste des sapi_name - http://fr.php.net/php_sapi_name -// http://doc.spip.org/@php_module -function php_module() { - global $SERVER_SOFTWARE, $flag_sapi_name; - return ( - ($flag_sapi_name AND eregi("apache", @php_sapi_name())) - OR ereg("^Apache.* PHP", $SERVER_SOFTWARE) - ); -} + $url = strtr($url, "\n\r", " "); + # en theorie on devrait faire ca tout le temps, mais quand la chaine + # commence par ? c'est imperatif, sinon l'url finale n'est pas la bonne + if ($url[0]=='?') + $url = url_de_base().$url; + + // Il n'y a que sous Apache que setcookie puis redirection fonctionne + + if (!$equiv OR ereg("^Apache", $GLOBALS['SERVER_SOFTWARE'])) { + @header("Location: " . $url); + } else { + @header("Refresh: 0; url=" . $url); + $equiv = "<meta http-equiv='Refresh' content='0; url=$url'>"; + } + include_spip('inc/lang'); + echo '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">',"\n", + html_lang_attributes(),' +<head>', + $equiv,' +<title>HTTP 302</title> +</head> +<body> +<h1>HTTP 302</h1> +<a href="', + quote_amp($url), + '">', + _T('navigateur_pas_redirige'), + '</a></body></html>'; + exit; +} // http://doc.spip.org/@http_status function http_status($status) { @@ -74,4 +93,17 @@ function http_no_cache() { } +// envoi de l'image demandee dans le code ci-dessus +// http://doc.spip.org/@envoie_image_vide +function envoie_image_vide() { + $image = pack("H*", "47494638396118001800800000ffffff00000021f90401000000002c0000000018001800000216848fa9cbed0fa39cb4da8bb3debcfb0f86e248965301003b"); + header("Content-Type: image/gif"); + header("Content-Length: ".strlen($image)); + header("Cache-Control: no-cache,no-store"); + header("Pragma: no-cache"); + header("Connection: close"); + echo $image; + flush(); +} + ?> diff --git a/ecrire/inc/lang.php b/ecrire/inc/lang.php index 6ce99ff3c4..b3f21ccef8 100644 --- a/ecrire/inc/lang.php +++ b/ecrire/inc/lang.php @@ -261,6 +261,7 @@ function verifier_lang_url() { $destination = parametre_url(self(),'lang', $lang_demandee, '&'); if (isset($GLOBALS['var_mode'])) $destination = parametre_url($destination, 'var_mode', $GLOBALS['var_mode'], '&'); + include_spip('inc/headers'); redirige_par_entete($destination); } diff --git a/ecrire/inc/minipres.php b/ecrire/inc/minipres.php index 17261b9e77..b2454d80ac 100644 --- a/ecrire/inc/minipres.php +++ b/ecrire/inc/minipres.php @@ -212,6 +212,7 @@ function exec_test_ajax_dist() { // on est appele par <noscript> case -1: spip_setcookie('spip_accepte_ajax', -1); + include_spip('inc/headers'); redirige_par_entete(_DIR_IMG_PACK.'puce-orange-anim.gif'); break; diff --git a/ecrire/inc/plugin.php b/ecrire/inc/plugin.php index dbbc40734a..11f8a74cd8 100644 --- a/ecrire/inc/plugin.php +++ b/ecrire/inc/plugin.php @@ -386,9 +386,10 @@ function plugin_verifie_conformite($plug,&$arbre){ // http://doc.spip.org/@verifie_include_plugins function verifie_include_plugins() { if (_request('exec')!="admin_plugin"){ - if (@is_readable(_DIR_PLUGINS)) + if (@is_readable(_DIR_PLUGINS)) { + include_spip('inc/headers'); redirige_par_entete(generer_url_ecrire("admin_plugin")); - + } // plus de repertoire plugin existant, le menu n'existe plus // on fait une mise a jour silencieuse // generer les fichiers php precompiles diff --git a/ecrire/inc/presentation.php b/ecrire/inc/presentation.php index a42a5bc5d1..286dd43f49 100644 --- a/ecrire/inc/presentation.php +++ b/ecrire/inc/presentation.php @@ -1738,7 +1738,9 @@ function fin_page() { . fin_grand_cadre(true) . "</div>" // cf. <div center> ouverte dans conmmencer_page() . $GLOBALS['rejoue_session'] - . generer_spip_cron() + . '<div style="background-image: url(\'' + . generer_url_action('cron') + . '\');"></div>' . (defined('_TESTER_NOSCRIPT') ? _TESTER_NOSCRIPT : '') . "</body></html>\n"; } diff --git a/ecrire/inc/sax.php b/ecrire/inc/sax.php index b9fa6f3844..15c96e61df 100644 --- a/ecrire/inc/sax.php +++ b/ecrire/inc/sax.php @@ -43,7 +43,7 @@ function debutElement($parser, $name, $attrs) $sep = ' '; foreach ($attrs as $k => $v) { $delim = strpos($v, "'") === false ? "'" : '"'; - $val = $phraseur_xml->translate_entities($v); + $val = entites_html($v); $att .= $sep . $k . "=" . $delim . ($delim !== '"' ? str_replace('"', '"', $val) : $val) . $delim; @@ -88,7 +88,7 @@ function textElement($parser, $data) $contenu = &$phraseur_xml->contenu; $contenu[$depth] .= preg_match('/^script/',$phraseur_xml->ouvrant[$depth]) ? $data - : $phraseur_xml->translate_entities($data); + : entites_html($data); } // http://doc.spip.org/@PiElement @@ -119,12 +119,6 @@ function defautElement($parser, $data) $contenu[$depth] .= $data; } -// http://doc.spip.org/@translate_entities -function translate_entities($data) - { - return entites_html($data); - } - // http://doc.spip.org/@xml_parsefile function xml_parsefile($xml_parser, $file) { diff --git a/ecrire/inc/session.php b/ecrire/inc/session.php index 8642ac33e9..1679e4b6c3 100644 --- a/ecrire/inc/session.php +++ b/ecrire/inc/session.php @@ -64,9 +64,10 @@ function ajouter_session($auteur) { } $texte .= "?".">\n"; - if (!ecrire_fichier($fichier_session, $texte)) + if (!ecrire_fichier($fichier_session, $texte)) { + include_spip('inc/headers'); redirige_par_entete(generer_url_action('test_dirs','test_dir=' . _DIR_SESSIONS,true)); - else return $spip_session; + } else return $spip_session; } // diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php index f67ca13f6c..aa39181309 100644 --- a/ecrire/inc/utils.php +++ b/ecrire/inc/utils.php @@ -396,13 +396,10 @@ function self($root = false) { // http://doc.spip.org/@_T function _T($texte, $args=array()) { - $f = charger_fonction('traduire', 'inc'); - $text = $f($texte,$GLOBALS['spip_lang']); + static $traduire=false ; - if (!empty($GLOBALS['xhtml'])) { - include_spip('inc/charsets'); - $text = html2unicode($text, true /* secure */); - } + if (!$traduire) $traduire = charger_fonction('traduire', 'inc'); + $text = $traduire($texte,$GLOBALS['spip_lang']); if (!$text) // pour les chaines non traduites @@ -512,33 +509,16 @@ function spip_touch($fichier, $duree=0, $touch=true) { return false; } -// Pour executer des taches de fond discretement, on utilise background-image -// car contrairement a un iframe vide, les navigateurs ne diront pas qu'ils -// n'ont pas fini de charger, c'est plus rassurant. +// Ce declencheur de tache de fond, de l'espace prive (cf inc_presentation) +// et de l'espace public (cf #SPIP_CRON dans inc_balise), est appelee +// par un background-image car contrairement a un iframe vide, +// les navigateurs ne diront pas qu'ils n'ont pas fini de charger, +// c'est plus rassurant. // C'est aussi plus discret qu'un <img> sous un navigateur non graphique. -// Cette fonction est utilisee pour l'espace prive (cf inc_presentation) -// et pour l'espace public (cf #SPIP_CRON dans inc_balise) -// http://doc.spip.org/@generer_spip_cron -function generer_spip_cron() { - return '<div style="background-image: url(\'' . generer_url_action('cron') . - '\');"></div>'; -} - -// envoi de l'image demandee dans le code ci-dessus -// http://doc.spip.org/@envoie_image_vide -function envoie_image_vide() { - $image = pack("H*", "47494638396118001800800000ffffff00000021f90401000000002c0000000018001800000216848fa9cbed0fa39cb4da8bb3debcfb0f86e248965301003b"); - header("Content-Type: image/gif"); - header("Content-Length: ".strlen($image)); - header("Cache-Control: no-cache,no-store"); - header("Pragma: no-cache"); - header("Connection: close"); - echo $image; - flush(); -} // http://doc.spip.org/@action_cron function action_cron() { + include_spip('inc/headers'); envoie_image_vide(); cron (1); } @@ -566,31 +546,6 @@ function cron ($gourmand=false) { } } -// envoyer le navigateur sur une nouvelle adresse -// en evitant les attaques par la redirection (souvent indique par 1 $_GET) - -// http://doc.spip.org/@redirige_par_entete -function redirige_par_entete($url) { - # en theorie on devrait faire ca tout le temps, mais quand la chaine - # commence par ? c'est imperatif, sinon l'url finale n'est pas la bonne - if ($url[0]=='?') - $url = url_de_base().$url; - - @header("Location: " . strtr($url, "\n\r", " ")); - - echo '<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> -<html><head> -<title>302 Found</title> -</head> -<body> -<h1>302 Found</h1> -<a href="' -.quote_amp($url) -.'">Click here</a>. -</body></html>'; - - exit; -} // transformation XML des "&" en "&" // http://doc.spip.org/@quote_amp @@ -1133,6 +1088,7 @@ function spip_initialisation($pi=NULL, $pa=NULL, $ti=NULL, $ta=NULL) { unset ($GLOBALS['meta']['noyau']); } } + // en cas d'echec refaire le fichier if (!is_array($GLOBALS['meta']) AND _FILE_CONNECT) { include_spip('inc/meta'); @@ -1150,6 +1106,7 @@ function spip_initialisation($pi=NULL, $pa=NULL, $ti=NULL, $ta=NULL) { // Verifier le visiteur if (_FILE_CONNECT) verifier_visiteur(); + } // Annuler les magic quotes \' sur GET POST COOKIE et GLOBALS ; @@ -1184,11 +1141,13 @@ function verifier_visiteur() { // il faut forcer l'init si ce n'est fait @spip_initialisation(); + $var_f = charger_fonction('session', 'inc'); if ($var_f()) return $GLOBALS['auteur_session']['statut']; include_spip('inc/actions'); return verifier_php_auth(); } + return false; } diff --git a/ecrire/inc_version.php b/ecrire/inc_version.php index 19244862c5..db7f601d30 100644 --- a/ecrire/inc_version.php +++ b/ecrire/inc_version.php @@ -354,6 +354,7 @@ OR _request('action') == 'test_dirs')) { // Si on peut installer, on lance illico if (!_DIR_RESTREINT) { + include_spip('inc/headers'); redirige_par_entete(generer_url_ecrire("install")); } else { // Si on est dans le site public, dire que qq s'en occupe diff --git a/ecrire/install/etape_.php b/ecrire/install/etape_.php index 1ae37c0642..cc36d92253 100644 --- a/ecrire/install/etape_.php +++ b/ecrire/install/etape_.php @@ -10,15 +10,18 @@ * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * \***************************************************************************/ +if (!defined("_ECRIRE_INC_VERSION")) return; #securite + // http://doc.spip.org/@inc_install_ function install_etape__dist() { global $spip_lang_right; $menu_langues = menu_langues('var_lang_ecrire'); - if (!$menu_langues) + if (!$menu_langues) { + include_spip('inc/headers'); redirige_par_entete(generer_url_action('test_dirs')); - else { + } else { install_debut_html(); echo "<div><img alt='SPIP' src='" . _DIR_IMG_PACK . "logo-spip.gif' /></div>\n", "<div class='petit-centre'><p>",info_copyright(),"</p></div>\n", diff --git a/ecrire/install/etape_4.php b/ecrire/install/etape_4.php index 74f4d6debf..645bb23ca5 100644 --- a/ecrire/install/etape_4.php +++ b/ecrire/install/etape_4.php @@ -10,6 +10,10 @@ * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * \***************************************************************************/ +if (!defined("_ECRIRE_INC_VERSION")) return; #securite + +include_spip('inc/headers'); + // http://doc.spip.org/@inc_install_4 function install_etape_4_dist() { diff --git a/ecrire/install/etape_5.php b/ecrire/install/etape_5.php index 739c6f2125..8da28173fe 100644 --- a/ecrire/install/etape_5.php +++ b/ecrire/install/etape_5.php @@ -10,6 +10,10 @@ * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * \***************************************************************************/ +if (!defined("_ECRIRE_INC_VERSION")) return; #securite + +include_spip('inc/headers'); + // http://doc.spip.org/@inc_install_5 function install_etape_5_dist() { diff --git a/ecrire/install/etape_6.php b/ecrire/install/etape_6.php index 428dec0abe..d43d8ca0c9 100644 --- a/ecrire/install/etape_6.php +++ b/ecrire/install/etape_6.php @@ -10,6 +10,10 @@ * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * \***************************************************************************/ +if (!defined("_ECRIRE_INC_VERSION")) return; #securite + +include_spip('inc/headers'); + // http://doc.spip.org/@inc_install_6 function install_etape_6_dist() { diff --git a/ecrire/install/etape_ldap5.php b/ecrire/install/etape_ldap5.php index 9897e30623..a1fa7940fb 100644 --- a/ecrire/install/etape_ldap5.php +++ b/ecrire/install/etape_ldap5.php @@ -10,6 +10,9 @@ * 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/@inc_install_ldap5 function install_etape_ldap5_dist() { diff --git a/ecrire/install/etape_unpack.php b/ecrire/install/etape_unpack.php index 495db244ce..90601aac8f 100644 --- a/ecrire/install/etape_unpack.php +++ b/ecrire/install/etape_unpack.php @@ -12,7 +12,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return; include_spip('inc/actions'); - +include_spip('inc/headers'); // http://doc.spip.org/@inc_install_unpack function install_etape_unpack_dist() { diff --git a/ecrire/public.php b/ecrire/public.php index 5eb89435a0..61ec019c74 100644 --- a/ecrire/public.php +++ b/ecrire/public.php @@ -46,6 +46,7 @@ if (defined('_INC_PUBLIC')) { // Est-ce une action ? if ($action = _request('action')) { + include_spip('inc/headers'); $var_f = charger_fonction($action, 'action'); $var_f(); if ($redirect) redirige_par_entete(urldecode($redirect)); diff --git a/ecrire/public/assembler.php b/ecrire/public/assembler.php index f67c7fcc7d..e88ba13eb8 100644 --- a/ecrire/public/assembler.php +++ b/ecrire/public/assembler.php @@ -33,6 +33,7 @@ function public_assembler_dist($fond) { // Si envoi pour un forum, enregistrer puis rediriger if (isset($_POST['confirmer_forum']) OR (isset($_POST['ajouter_mot']) AND $GLOBALS['afficher_texte']=='non')) { + include_spip('inc/headers'); $f = charger_fonction('forum_insert', 'inc'); redirige_par_entete($f()); } @@ -49,6 +50,7 @@ function public_assembler_dist($fond) { if ($auteur_session['statut'] == '0minirezo') spip_log('debug !'); else + include_spip('inc/headers'); redirige_par_entete(generer_url_public('login', 'url='.rawurlencode( parametre_url(self(), 'var_mode', 'debug', '&') diff --git a/ecrire/public/balises.php b/ecrire/public/balises.php index da85894b45..94db567adb 100644 --- a/ecrire/public/balises.php +++ b/ecrire/public/balises.php @@ -502,7 +502,9 @@ function balise_FIN_SURLIGNE_dist($p) { // ATTENTION: cette balise efface parfois les boutons admin implicites // http://doc.spip.org/@balise_SPIP_CRON_dist function balise_SPIP_CRON_dist ($p) { - $p->code = '"' . str_replace('"', '\"', (generer_spip_cron())) . '"'; + $p->code = '"<div style=\"background-image: url(\'' . + generer_url_action('cron') . + '\');\"></div>"'; $p->interdire_scripts = false; return $p; } diff --git a/ecrire/public/debug.php b/ecrire/public/debug.php index 16c047f752..3250895c0f 100644 --- a/ecrire/public/debug.php +++ b/ecrire/public/debug.php @@ -126,21 +126,17 @@ function erreur_squelette($message='', $lieu='') { // Eviter les boucles infernales if (++$runs > 4) { if ($_COOKIE['spip_admin'] OR - $auteur_session['statut'] == '0minirezo' OR + ($auteur_session['statut'] == '0minirezo') OR ($GLOBALS['var_mode'] == 'debug')) { - include_spip('inc/headers'); - lang_select($auteur_session['lang']); - http_no_cache(); - echo _DOCTYPE_ECRIRE, - html_lang_attributes(), - "<head>\n<title>", - ('Spip ' . $GLOBALS['spip_version_affichee'] . ' ' . - _T('admin_debug') . ' ' . - supprimer_tags(extraire_multi($GLOBALS['meta']['nom_site']))), - "</title>\n</head><body>", - affiche_erreurs_page($tableau_des_erreurs), - "</body></html>"; - exit; + include_spip('inc/minipres'); + + $titre = 'Spip ' + . $GLOBALS['spip_version_affichee'] + . ' ' + . _T('admin_debug') + . ' ' + . supprimer_tags(extraire_multi($GLOBALS['meta']['nom_site'])); + minipres($titre, affiche_erreurs_page($tableau_des_erreurs)); } } } diff --git a/ecrire/public/parametrer.php b/ecrire/public/parametrer.php index bb53c0e27b..b6184fbd79 100644 --- a/ecrire/public/parametrer.php +++ b/ecrire/public/parametrer.php @@ -270,7 +270,7 @@ function public_parametrer_dist($fond, $local='', $cache='') { if ($url) { // sinon les navigateurs pataugent $url = texte_script(str_replace('&', '&', $url)); return array('texte' => "<". - "?php redirige_par_entete('$url'); ?" . ">", + "?php header('Location: $url'); ?" . ">", 'process_ins' => 'php'); } } -- GitLab