function securiser_action_auteur($action, $arg, $redirect="", $mode=false, $att='', $public=false) { static $id_auteur=0, $pass; if (!$id_auteur) { list($id_auteur, $pass) = caracteriser_auteur(); } $hash = _action_auteur("$action-$arg", $id_auteur, $pass, 'alea_ephemere'); if (!is_string($mode)){ $r = rawurlencode($redirect); if ($mode===-1) return array('action'=>$action,'arg'=>$arg,'hash'=>$hash); else return generer_url_action($action, "arg=$arg&hash=$hash" . (!$r ? '' : "&redirect=$r"), $mode, $public); } $att .= " style='margin: 0px; border: 0px'"; if ($redirect) $redirect = "\n\t\t<input name='redirect' type='hidden' value='". str_replace("'", ''', $redirect) ."' />"; $mode .= $redirect . " <input name='hash' type='hidden' value='$hash' /> <input name='arg' type='hidden' value='$arg' />"; return generer_form_action($action, $mode, $att, $public); }
/** * Attention: PHP applique urldecode sur $_GET mais pas sur $_POST * cf http://fr.php.net/urldecode#48481 * http://doc.spip.org/@securiser_action_auteur * * @param string $action * @param string $arg * @param string $redirect * @param bool|int|string $mode * -1 : renvoyer action, arg et hash sous forme de array() * true ou false : renvoyer une url, avec & (false) ou & (true) * string : renvoyer un formulaire * @param string|int $att * id_auteur pour lequel generer l'action en mode url ou array() * atributs du formulaire en mode formulaire * @param bool $public * @return array|string */ function securiser_action_auteur($action, $arg, $redirect = "", $mode = false, $att = '', $public = false) { // mode URL ou array if (!is_string($mode)) { $hash = calculer_action_auteur("{$action}-{$arg}", is_numeric($att) ? $att : null); $r = rawurlencode($redirect); if ($mode === -1) { return array('action' => $action, 'arg' => $arg, 'hash' => $hash); } else { return generer_url_action($action, "arg={$arg}&hash={$hash}" . (!$r ? '' : "&redirect={$r}"), $mode, $public); } } // mode formulaire $hash = calculer_action_auteur("{$action}-{$arg}"); $att .= " style='margin: 0px; border: 0px'"; if ($redirect) { $redirect = "\n\t\t<input name='redirect' type='hidden' value='" . str_replace("'", ''', $redirect) . "' />"; } $mode .= $redirect . "\n<input name='hash' type='hidden' value='{$hash}' />\n<input name='arg' type='hidden' value='{$arg}' />"; return generer_form_action($action, $mode, $att, $public); }
function liste_archive_jointe($valables, $zip, $type, $id, $mode, $id_document, $hash, $redirect, $iframe_redirect) { include_spip('inc/layer'); $arg = (intval($id) .'/' .intval($id_document) . "/$mode/$type"); $texte = "<div style='text-align: left'> <input type='hidden' name='redirect' value='$redirect' /> <input type='hidden' name='iframe_redirect' value='$iframe_redirect' /> <input type='hidden' name='hash' value='$hash' /> <input type='hidden' name='chemin' value='$zip' /> <input type='hidden' name='arg' value='$arg' /> <input type='radio' checked='checked' name='sousaction5' id='sousaction5_5' value='5' onchange='jQuery(\"#options_deballe_zip\").slideUp();' />" . "<label for='sousaction5_5'>" . _T('upload_zip_telquel'). "</label>" . "<br />". "<input type='radio' name='sousaction5' id='sousaction5_6' value='6' onchange='jQuery(\"#options_deballe_zip\").slideDown();' />". "<label for='sousaction5_6'>" . _T('upload_zip_decompacter') . "</label>" . "<ol>" . liste_archive_taille($valables) . "</ol>" . debut_block_depliable(false,'options_deballe_zip') . "<input type='checkbox' name='sousaction4' id='sousaction4_4' value='4' />". "<label for='sousaction4_4'>" . _T('upload_zip_conserver') . "</label>" . "<br /><input type='checkbox' name='titrer' id='titrer' />" . "<label for='titrer'>" . _T('upload_zip_titrer') . "</label>". "</div></div>" . fin_block() . "<div style='text-align: right;'><input type='submit' value='". _T('bouton_valider'). "' />"; $texte = "<p>" . _T('upload_fichier_zip_texte') . "</p><p>" . _T('upload_fichier_zip_texte2') . "</p>" . generer_form_action('joindre', $texte,' method="post"'); if(_request("iframe")=="iframe") { return "<p>build form $iframe_redirect</p>" . "<div class='upload_answer upload_zip_list'>" . $texte . "</div>"; } else { return minipres(_T('upload_fichier_zip'), $texte); } }