From e9beffc778bb4995b1fa89cbe95d91d01bdccee3 Mon Sep 17 00:00:00 2001
From: "Committo,Ergo:sum" <esj@rezo.net>
Date: Thu, 22 Dec 2005 20:04:51 +0000
Subject: [PATCH] hyper chaud l'url a double retour urlencode(...urlencode...)
 pour fonctionnaliser les appels de scripts php (encore 102 avant l'autoroute)

---
 ecrire/inc_aide_index.php |  2 +-
 ecrire/inc_forum.php3     | 19 ++++++++++---------
 ecrire/inc_minipres.php   | 13 +++++++++----
 3 files changed, 20 insertions(+), 14 deletions(-)

diff --git a/ecrire/inc_aide_index.php b/ecrire/inc_aide_index.php
index cf9044546f..2414c4a8ef 100644
--- a/ecrire/inc_aide_index.php
+++ b/ecrire/inc_aide_index.php
@@ -454,7 +454,7 @@ function aide_index_dist()
 global $img, $frame, $aide, $var_lang, $lang;
 // Eviter les calculs evitables (surtout en client/serveur sans cache !)
 
-if (http_last_modified(filemtime(http_php_scriptnq("aide_index","")), time() + 24 * 3600))
+ if (http_last_modified(filemtime("aide_index" . _EXTENSION_PHP), time() + 24 * 3600))
   exit;
 
 // Recuperer les infos de langue (preferences auteur), si possible
diff --git a/ecrire/inc_forum.php3 b/ecrire/inc_forum.php3
index ccb2618482..4b12c81a99 100644
--- a/ecrire/inc_forum.php3
+++ b/ecrire/inc_forum.php3
@@ -22,10 +22,6 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 function boutons_controle_forum($id_forum, $forum_stat, $forum_id_auteur=0, $ref, $forum_ip) {
 	$controle = '';
 
-	$link = new Link();
-	$link = $link->geturl() . "#id$id_forum";
-	$ulink = urlencode($link);
-	$action = "iframe_action.php3?action=forum_admin&amp;id=$id_forum";
 
 	// selection du logo et des boutons correspondant a l'etat du forum
 	switch ($forum_stat) {
@@ -88,26 +84,31 @@ function boutons_controle_forum($id_forum, $forum_stat, $forum_id_auteur=0, $ref
 			return;
 	}
 
+	$link = new Link();
+	$link = $link->geturl() . "#id$id_forum";
+	$ulink = urlencode($link);
+
 	if ($supprimer)
 		$controle .= icone(_T('icone_supprimer_message'), 
-			$action ."&amp;statut=$supprimer&amp;redirect=$ulink",
+				   http_php_scriptnq('iframe_action', "action=forum_admin&id=$id_forum&statut=$supprimer&redirect=$ulink"),
 			$logo,
 			"supprimer.gif", 'right', 'non');
 
 	if ($valider)
 		$controle .= icone(_T('icone_valider_message'), 
-			$action ."&amp;statut=$valider&amp;redirect=$ulink",
+				   http_php_scriptnq('iframe_action', "action=forum_admin&id=$id_forum&statut=$valider&redirect=$ulink"),
 			$logo,
 			"creer.gif", 'right', 'non');
 
 	if ($valider_repondre) {
 
-		$retour = urlencode("../forum.php3?$ref&id_forum=$id_forum&retour=" .
-			      urlencode(_DIR_RESTREINT_ABS . $link));
 		$controle .= icone(_T('icone_valider_message') 
 				   . " &amp; " .
 				   _T('lien_repondre_message'),
-				   $action ."&amp;statut=$valider&amp;redirect=$retour",
+				   http_php_scriptnq('iframe_action',
+						     "action=forum_admin&id=$id_forum&statut=$valider&redirect=", 
+						     "../forum",
+						     "$ref&id_forum=$id_forum&retour=" . urlencode(_DIR_RESTREINT_ABS . $link)),
 				   $logo,
 				   "creer.gif", 'right', 'non');
 	}
diff --git a/ecrire/inc_minipres.php b/ecrire/inc_minipres.php
index a33f800d50..1c9098f66f 100644
--- a/ecrire/inc_minipres.php
+++ b/ecrire/inc_minipres.php
@@ -171,14 +171,19 @@ function http_href($href, $clic, $title='', $style='', $class='', $evt='') {
 // elles sont destinees a assurer la transition
 // entre les scripts ecrire/*.php3 et le script generique ecrire/index.php
 
-function http_php_script($script, $args="") {
-	return '"' . http_php_scriptnq($script, $args) . '"';
+function http_php_script($script, $args="", $retour="", $retour_args="") {
+	return '"' . 
+	  http_php_scriptnq($script, $args, $retour, $retour_args) .
+	  '"';
 }
 
-function http_php_scriptnq($script, $args="") {
+function http_php_scriptnq($script, $args="", $retour="", $retour_args="") {
 	return $script .
 		_EXTENSION_PHP .
-		(!$args ? "" : ('?'  .str_replace('&', '&amp;', $args)));
+		(!$args ? "" : ('?'  .str_replace('&', '&amp;', $args))) .
+		(!$retour ? "" : 
+		urlencode($retour . _EXTENSION_PHP .
+			  (!$retour_args ? "" : ('?' . $retour_args))));
 }
 
 // produit une balise img avec un champ alt d'office si vide
-- 
GitLab