* Ce systeme n'est pas fonctionnel pour les forums sans previsu (notamment\r
* si $afficher_previsu = 'non')\r
*\r
- * http://doc.spip.org/@forum_fichier_tmp\r
+ * http://code.spip.net/@forum_fichier_tmp\r
*\r
* @param $arg\r
* @return int\r
include_spip('base/abstract_sql');\r
\r
$erreurs = array();\r
+ $doc = array();\r
\r
// desactiver id_rubrique si un id_article ou autre existe dans le contexte\r
// if ($id_article OR $id_breve OR $id_forum OR $id_syndic)\r
// stocker un eventuel document dans un espace temporaire\r
// portant la cle du formulaire ; et ses metadonnees avec\r
\r
- if (!isset($GLOBALS['visiteur_session']['tmp_forum_document']))\r
- session_set('tmp_forum_document',\r
- sous_repertoire(_DIR_TMP, 'documents_forum') . md5(uniqid(rand())));\r
- $tmp = $GLOBALS['visiteur_session']['tmp_forum_document'];\r
- $doc = &$_FILES['ajouter_document'];\r
if (isset($_FILES['ajouter_document'])\r
- AND $_FILES['ajouter_document']['tmp_name']\r
- ){\r
- // securite :\r
- // verifier si on possede la cle (ie on est autorise a poster)\r
- // (sinon tant pis) ; cf. charger.php pour la definition de la cle\r
- if (_request('cle_ajouter_document')!=calculer_cle_action($a = "ajouter-document-$objet-$id_objet")){\r
+ AND $_FILES['ajouter_document']['tmp_name']){\r
+\r
+ $acceptes = forum_documents_acceptes();\r
+ if (\r
+ // si on a poste un $_FILES mais que l'option n'est pas active : cas produit par les bots qui spamment automatiquement\r
+ !count($acceptes)\r
+ // securite :\r
+ // verifier si on possede la cle (ie on est autorise a poster)\r
+ // (sinon tant pis) ; cf. charger.php pour la definition de la cle\r
+ OR _request('cle_ajouter_document')!=calculer_cle_action($a = "ajouter-document-$objet-$id_objet")\r
+ ){\r
$erreurs['document_forum'] = _T('forum:documents_interdits_forum');\r
unset($_FILES['ajouter_document']);\r
}\r
else {\r
+ if (!isset($GLOBALS['visiteur_session']['tmp_forum_document']))\r
+ session_set('tmp_forum_document', sous_repertoire(_DIR_TMP, 'documents_forum') . md5(uniqid(rand())));\r
+\r
+ $tmp = $GLOBALS['visiteur_session']['tmp_forum_document'];\r
+ $doc = &$_FILES['ajouter_document'];\r
+\r
include_spip('inc/joindre_document');\r
include_spip('action/ajouter_documents');\r
list($extension, $doc['name']) = fixer_extension_document($doc);\r
- $acceptes = forum_documents_acceptes();\r
\r
if (!in_array($extension, $acceptes)){\r
- # normalement on n'arrive pas ici : pas d'upload si aucun format\r
- if (!$formats = join(', ', $acceptes)){\r
- $formats = '-'; //_L('aucun');\r
- }\r
- $erreurs['document_forum'] = _T('public:formats_acceptes', array('formats' => $formats));\r
+ $erreurs['document_forum'] = _T('public:formats_acceptes', array('formats' => join(', ', $acceptes)));\r
}\r
else {\r
include_spip('inc/getdocument');\r
if (isset($erreurs['document_forum'])){\r
spip_unlink($tmp . '.bin');\r
unset ($_FILES['ajouter_document']);\r
- }\r
- else {\r
+ } else {\r
$doc['tmp_name'] = $tmp . '.bin';\r
ecrire_fichier($tmp . '.txt', serialize($doc));\r
}\r
}\r
- } // restaurer le document uploade au tour precedent\r
- elseif (file_exists($tmp . '.bin')){\r
+ }\r
+ // restaurer/supprimer le document eventuellement uploade au tour precedent\r
+ elseif (isset($GLOBALS['visiteur_session']['tmp_forum_document'])\r
+ AND $tmp = $GLOBALS['visiteur_session']['tmp_forum_document']\r
+ AND file_exists($tmp . '.bin')){\r
if (_request('supprimer_document_ajoute')){\r
spip_unlink($tmp . '.bin');\r
spip_unlink($tmp . '.txt');\r
}\r
elseif (lire_fichier($tmp . '.txt', $meta)){\r
+ $doc = &$_FILES['ajouter_document'];\r
$doc = @unserialize($meta);\r
}\r
}\r
/**\r
* Preparer la previsu d'un message de forum\r
*\r
- * http://doc.spip.org/@inclure_previsu\r
+ * http://code.spip.net/@inclure_previsu\r
*\r
* @param string $texte\r
* @param string $titre\r