本文整理汇总了PHP中redirige_formulaire函数的典型用法代码示例。如果您正苦于以下问题:PHP redirige_formulaire函数的具体用法?PHP redirige_formulaire怎么用?PHP redirige_formulaire使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了redirige_formulaire函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: formulaires_editer_balade_traiter_dist
function formulaires_editer_balade_traiter_dist($id_collection = 'new', $retour = '')
{
$message = array();
// récupérer le rang des articles de la balade et le mettre à jour
$rangs = _request('rang');
foreach ($rangs as $rang => $id_article) {
$rang = $rang + 1;
$ok = sql_updateq('spip_collections_liens', array('rang' => intval($rang)), "objet='article' AND id_objet = {$id_article}");
}
// éditer le gis associé
if ($action_editer = charger_fonction("editer_gis", 'action', true)) {
list($id, $err) = $action_editer(_request('id_gis'));
}
// ne pas polluer l'url de retour avec des paramètres inutiles
set_request('id_gis');
set_request('id_objet');
// invalider le cache
include_spip('inc/invalideur');
suivre_invalideur("id='gis/{$id}");
// rediriger sur l'url de retour passée en paramètre
if ($retour) {
include_spip('inc/headers');
$message['redirect'] = redirige_formulaire($retour);
}
return $message;
}
示例2: formulaires_editer_json_article_traiter_dist
function formulaires_editer_json_article_traiter_dist($id_article = 'new', $retour = '')
{
$message = array('editable' => true, 'message_ok' => '');
$vhplab_json = _request('vhplab_json');
$vhplab_json_num = intval($vhplab_json);
if ($vhplab_json_num > 0) {
// comprobamos si el articulo ya ha sido relacionado con un id
$result = sql_select('*', 'spip_vhplab_json_liens', 'id_objet=' . intval($id_article) . ' AND objet=' . sql_quote("article"));
if ($row = sql_fetch($result)) {
// si el articulo ya ha sido relacionado con un id actualizamos el enlace
sql_updateq('spip_vhplab_json', array('id_json' => $vhplab_json_num), 'id_vhplab_json=' . intval($row['id_vhplab_json']));
$message['message_ok'] = _T('vhplab:json_update_ok');
} else {
// si el articulo no ha sido relacionado con ningún id creamos un enlace
$id_vhplab = sql_insertq("spip_vhplab_json", array('id_json' => $vhplab_json_num));
sql_insertq('spip_vhplab_json_liens', array('id_vhplab_json' => intval($id_vhplab), 'id_objet' => intval($id_article), 'objet' => 'article'));
$message['message_ok'] = _T('vhplab:json_insert_ok');
}
}
if ($retour) {
include_spip('inc/headers');
$message['message_ok'] .= redirige_formulaire($retour);
}
return $message;
}
示例3: formulaires_editer_mot_article_traiter_dist
function formulaires_editer_mot_article_traiter_dist($id_article = 'new', $id_groupe = '', $retour = '')
{
$message = array('editable' => true, 'message_ok' => '');
$id_mot_ancien = sql_getfetsel('mot.id_mot', 'spip_mots as mot left join spip_mots_liens as mots_liens ON (mot.id_mot=mots_liens.id_mot)', 'mots_liens.id_objet=' . intval($id_article) . ' AND mots_liens.objet = "article" AND mot.id_groupe=' . intval($id_groupe));
include_spip('action/editer_liens');
// si aucun mot selectionne on delie le mot de ce groupe
if (!($id_mot = _request('id_mot'))) {
objet_dissocier(array("mot" => $id_mot_ancien), array("article" => $id_article));
} else {
if ($id_mot_ancien != $id_mot) {
// on delie l'ancien mot
objet_dissocier(array("mot" => $id_mot_ancien), array("article" => $id_article));
// on lie le nouveau
objet_associer(array("mot" => $id_mot), array("article" => $id_article));
}
}
// on invalide le cache
include_spip('inc/invalideur');
suivre_invalideur("id='id_article/{$id_article}'");
if ($retour) {
include_spip('inc/headers');
$message .= redirige_formulaire($retour);
}
return $message;
}
示例4: action_sauvegarder_dist
/**
* Sauvegarder par morceaux
*
* @param string $arg
*/
function action_sauvegarder_dist($arg = null)
{
if (!$arg) {
$securiser_action = charger_fonction('securiser_action', 'inc');
$arg = $securiser_action();
}
$status_file = $arg;
$redirect = parametre_url(generer_action_auteur('sauvegarder', $status_file), "step", intval(_request('step') + 1), '&');
// lancer export qui va se relancer jusqu'a sa fin
$sauvegarder = charger_fonction('sauvegarder', 'inc');
utiliser_langue_visiteur();
// quand on sort de $export avec true c'est qu'on a fini
if ($sauvegarder($status_file, $redirect)) {
dump_end($status_file, 'sauvegarder');
include_spip('inc/headers');
echo redirige_formulaire(generer_url_ecrire("sauvegarder", 'status=' . $status_file, '', true, true));
}
// forcer l'envoi du buffer par tous les moyens !
echo str_repeat("<br />\r\n", 256);
while (@ob_get_level()) {
@ob_flush();
@flush();
@ob_end_flush();
}
}
示例5: action_restaurer_dist
/**
* Sauvegarder par morceaux
*
* @param string $arg
*/
function action_restaurer_dist($arg = null)
{
if (!$arg) {
$securiser_action = charger_fonction('securiser_action', 'inc');
$arg = $securiser_action();
}
$status_file = $arg;
define('_DUMP_STATUS_FILE', $status_file);
$status_file = _DIR_TMP . basename($status_file) . ".txt";
if (!lire_fichier($status_file, $status) or !($status = unserialize($status))) {
include_spip('inc/headers');
echo redirige_formulaire(generer_url_ecrire("restaurer", 'status=' . _DUMP_STATUS_FILE, '', true, true));
} else {
utiliser_langue_visiteur();
$archive = "<br />" . joli_repertoire($status['archive']);
$action = _T('dump:info_restauration_sauvegarde', array('archive' => $archive));
$admin = charger_fonction('admin', 'inc');
echo $admin('restaurer', $action, "", true);
}
// forcer l'envoi du buffer par tous les moyens !
echo str_repeat("<br />\r\n", 256);
while (@ob_get_level()) {
@ob_flush();
@flush();
@ob_end_flush();
}
}
示例6: formulaires_login_charger_dist
function formulaires_login_charger_dist($cible = "", $login = "", $prive = null)
{
$erreur = _request('var_erreur');
if (!$login) {
$login = strval(_request('var_login'));
}
// si on est deja identifie
if (!$login and isset($GLOBALS['visiteur_session']['login'])) {
$login = $GLOBALS['visiteur_session']['login'];
}
// ou si on a un cookie admin
if (!$login) {
if (isset($_COOKIE['spip_admin']) and preg_match(",^@(.*)\$,", $_COOKIE['spip_admin'], $regs)) {
$login = $regs[1];
}
}
include_spip('inc/auth');
$row = auth_informer_login($login);
// Construire l'environnement du squelette
// Ne pas proposer de "rester connecte quelques jours"
// si la duree de l'alea est inferieure a 12 h (valeur par defaut)
$valeurs = array('var_login' => $login, 'editable' => !$row, 'cnx' => isset($row['cnx']) ? $row['cnx'] : '', 'auth_http' => login_auth_http(), 'rester_connecte' => _RENOUVELLE_ALEA < 12 * 3600 ? '' : ' ', '_logo' => isset($row['logo']) ? $row['logo'] : '', '_alea_actuel' => isset($row['alea_actuel']) ? $row['alea_actuel'] : '', '_alea_futur' => isset($row['alea_futur']) ? $row['alea_futur'] : '', '_pipeline' => 'affiche_formulaire_login');
if ($erreur or !isset($GLOBALS['visiteur_session']['id_auteur']) or !$GLOBALS['visiteur_session']['id_auteur']) {
$valeurs['editable'] = true;
}
if (is_null($prive) ? is_url_prive($cible) : $prive) {
include_spip('inc/autoriser');
$loge = autoriser('ecrire');
} else {
$loge = (isset($GLOBALS['visiteur_session']['auth']) and $GLOBALS['visiteur_session']['auth'] != '');
}
// Si on est connecte, appeler traiter()
// et lancer la redirection si besoin
if (!$valeurs['editable'] and $loge) {
$traiter = charger_fonction('traiter', 'formulaires/login');
$res = $traiter($cible, $login, $prive);
$valeurs = array_merge($valeurs, $res);
if (isset($res['redirect']) and $res['redirect']) {
include_spip('inc/headers');
# preparer un lien pour quand redirige_formulaire ne fonctionne pas
$valeurs['_deja_loge'] = inserer_attribut("<a>" . _T('login_par_ici') . "</a>{$m}", 'href', $res['redirect']);
$m = redirige_formulaire($res['redirect']);
}
}
// en cas d'echec de cookie, inc_auth a renvoye vers le script de
// pose de cookie ; s'il n'est pas la, c'est echec cookie
// s'il est la, c'est probablement un bookmark sur bonjour=oui,
// et pas un echec cookie.
if ($erreur == 'cookie') {
$valeurs['echec_cookie'] = ' ';
} elseif ($erreur) {
// une erreur d'un SSO indique dans la redirection vers ici
// mais il faut se proteger de toute tentative d'injection malveilante
include_spip('inc/texte');
$valeurs['message_erreur'] = safehtml($erreur);
}
return $valeurs;
}
示例7: base_restaurer_dist
function base_restaurer_dist($titre = '', $reprise = false)
{
$status_file = _DUMP_STATUS_FILE;
$status_file = _DIR_TMP . basename($status_file) . ".txt";
if (!lire_fichier($status_file, $status) or !($status = unserialize($status))) {
} else {
$redirect = parametre_url(generer_action_auteur('restaurer', _DUMP_STATUS_FILE), "step", intval(_request('step') + 1), '&');
$timeout = ini_get('max_execution_time');
// valeur conservatrice si on a pas reussi a lire le max_execution_time
if (!$timeout) {
$timeout = 30;
}
// parions sur une valeur tellement courante ...
$max_time = time() + $timeout / 2;
include_spip('inc/minipres');
@ini_set("zlib.output_compression", "0");
// pour permettre l'affichage au fur et a mesure
$titre = _T('dump:restauration_en_cours') . " (" . count($status['tables']) . ") ";
$balise_img = chercher_filtre('balise_img');
$titre .= $balise_img(chemin_image('searching.gif'));
echo install_debut_html($titre);
// script de rechargement auto sur timeout
echo http_script("window.setTimeout('location.href=\"" . $redirect . "\";'," . $timeout * 1000 . ")");
echo "<div style='text-align: left'>\n";
dump_serveur($status['connect']);
spip_connect('dump');
// au premier coup on ne fait rien sauf afficher l'ecran de sauvegarde
if (_request('step')) {
$options = array('callback_progression' => 'dump_afficher_progres', 'max_time' => $max_time, 'no_erase_dest' => lister_tables_noerase(), 'where' => $status['where'] ? $status['where'] : array(), 'desc_tables_dest' => array());
if ($desc = sql_getfetsel('valeur', 'spip_meta', "nom='dump_structure_temp'", '', '', '', '', 'dump') and $desc = unserialize($desc)) {
$options['desc_tables_dest'] = $desc;
}
#var_dump(sql_allfetsel('nom,valeur','spip_meta',"",'','','','','dump'));
#die();
$res = base_copier_tables($status_file, $status['tables'], 'dump', '', $options);
} else {
// mais on en profite pour reparer les version base pour etre sur de ne pas les perdre
sql_updateq("spip_meta", array('impt' => 'oui'), "nom='version_installee'", '', 'dump');
sql_updateq("spip_meta", array('impt' => 'oui'), "nom LIKE '%_base_version'", '', 'dump');
}
echo "</div>\n";
if (!$res) {
echo dump_relance($redirect);
}
echo install_fin_html();
ob_end_flush();
flush();
if (!$res) {
exit;
}
// quand on sort de $export avec true c'est qu'on a fini
dump_end(_DUMP_STATUS_FILE, 'restaurer');
include_spip('inc/headers');
echo redirige_formulaire(generer_url_ecrire("restaurer", 'status=' . _DUMP_STATUS_FILE, '', true, true));
}
}
示例8: action_tester_taille_dist
function action_tester_taille_dist()
{
if (!autoriser('configurer')) {
return;
}
$taille = _request('arg');
$taille = explode('-', $taille);
$GLOBALS['taille_max'] = end($taille);
$GLOBALS['taille_min'] = 0;
if (count($taille) > 1) {
$GLOBALS['taille_min'] = reset($taille);
}
// si l'intervalle est assez petit, on garde la valeur min
if ($GLOBALS['taille_max'] * $GLOBALS['taille_max'] - $GLOBALS['taille_min'] * $GLOBALS['taille_min'] < 50000) {
ecrire_meta('max_taille_vignettes', $t = $GLOBALS['taille_min'] * $GLOBALS['taille_min'] * 0.9, 'non');
echo round($t / 1000000, 3) . ' Mpx';
die;
}
$taille = $GLOBALS['taille_test'] = round(($GLOBALS['taille_max'] + $GLOBALS['taille_min']) / 2);
include_spip('inc/filtres');
// des inclusions representatives d'un hit prive et/ou public pour la conso memoire
include_spip('public/assembler');
include_spip('public/balises');
include_spip('public/boucles');
include_spip('public/cacher');
include_spip('public/compiler');
include_spip('public/composer');
include_spip('public/criteres');
include_spip('public/interfaces');
include_spip('public/parametrer');
include_spip('public/phraser_html');
include_spip('public/references');
include_spip('inc/presentation');
include_spip('inc/charsets');
include_spip('inc/documents');
include_spip('inc/header');
propre("<doc1>");
// charger propre avec le trairement d'un modele
$i = _request('i') + 1;
$image_source = chemin_image("test.png");
$GLOBALS['redirect'] = generer_url_action("tester_taille", "i={$i}&arg=" . $GLOBALS['taille_min'] . "-" . $GLOBALS['taille_test']);
ob_start('action_tester_taille_error_handler');
filtrer('image_recadre', $image_source, $taille, $taille);
$GLOBALS['redirect'] = generer_url_action("tester_taille", "i={$i}&arg={$taille}-" . $GLOBALS['taille_max']);
// si la valeur intermediaire a reussi, on teste la valeur maxi qui est peut etre sous estimee
$taille = $GLOBALS['taille_max'];
filtrer('image_recadre', $image_source, $taille, $taille);
$GLOBALS['redirect'] = generer_url_action("tester_taille", "i={$i}&arg={$taille}-" . $GLOBALS['taille_max']);
ob_end_clean();
// on est ici, donc pas de plantage
echo redirige_formulaire($GLOBALS['redirect']);
}
示例9: exec_upgrade_dist
function exec_upgrade_dist()
{
global $spip_version_base;
if (!_FILE_CONNECT) {
redirige_url_ecrire("install");
}
// Si reinstallation necessaire, message ad hoc
if (_request('reinstall') == 'oui') {
include_spip('inc/minipres');
$r = minipres(_T('titre_page_upgrade'), "<p><b>" . _T('texte_nouvelle_version_spip_1') . "</b><p> " . _T('texte_nouvelle_version_spip_2', array('connect' => '<tt>' . _FILE_CONNECT . '</tt>')) . generer_form_ecrire('upgrade', "<input type='hidden' name='reinstall' value='non' />", '', _T('bouton_relancer_installation')));
echo $r;
} elseif (_request('fin')) {
include_spip('inc/plugin');
actualise_plugins_actifs();
include_spip('inc/headers');
$res = generer_url_ecrire('admin_plugin', 'var_mode=recalcul');
echo redirige_formulaire($res);
} else {
if (!isset($GLOBALS['meta']['version_installee'])) {
$GLOBALS['meta']['version_installee'] = 0.0;
} else {
$GLOBALS['meta']['version_installee'] = (double) str_replace(',', '.', $GLOBALS['meta']['version_installee']);
}
# NB: str_replace car, sur club-internet, il semble que version_installe soit
# enregistree au format '1,812' et non '1.812'
// Erreur downgrade
// (cas de double installation de fichiers SPIP sur une meme base)
if ($spip_version_base < $GLOBALS['meta']['version_installee']) {
$commentaire = _T('info_mise_a_niveau_base_2');
} else {
$commentaire = _T('texte_mise_a_niveau_base_1');
}
$commentaire .= "<br />[" . $GLOBALS['meta']['version_installee'] . "/" . $spip_version_base . "]";
$_POST['reinstall'] = 'non';
// pour copy_request dans admin
include_spip('inc/headers');
$admin = charger_fonction('admin', 'inc');
$res = $admin('upgrade', _T('info_mise_a_niveau_base'), $commentaire);
if ($res) {
echo $res;
} else {
// effacer les alea pour forcer leur relecture
// si jamais ils ont change pendant l'upgrade
unset($GLOBALS['meta']['alea_ephemere']);
unset($GLOBALS['meta']['alea_ephemere_ancien']);
$res = redirige_action_auteur('purger', 'cache', 'upgrade', 'fin=oui', true);
echo redirige_formulaire($res);
}
}
}
示例10: formulaires_editer_adhsaison_traiter_dist
function formulaires_editer_adhsaison_traiter_dist($id_saison = 'new', $retour = '', $config_fonc = 'saisons_edit_config', $row = array(), $hidden = '')
{
$message = "";
$action_editer = charger_fonction("editer_adhsaison", 'action');
list($id, $err) = $action_editer();
if ($err) {
$message .= $err;
} elseif ($retour) {
include_spip('inc/headers');
$retour = parametre_url($retour, 'id_saison', $id);
$message .= redirige_formulaire($retour);
}
return $message;
}
示例11: formulaires_editer_related_article_traiter_dist
function formulaires_editer_related_article_traiter_dist($id_article = 'new', $retour = '')
{
$message = array('editable' => true, 'message_ok' => '');
$related = _request('related');
$related_num = intval($related);
$delete_related = _request('delete_related');
$delete_related_num = explode(' ', $delete_related);
if ($related_num > 0) {
// insertamos as coordenadas do artigo
$result = sql_select('*', 'spip_vhplab_related', 'id_objet_related=' . intval($related_num) . ' AND objet_related=' . sql_quote("article"));
if ($row = sql_fetch($result)) {
$already = sql_select('*', 'spip_vhplab_related_liens', 'id_objet=' . intval($id_article) . ' AND objet=' . sql_quote("article") . ' AND id_vhplab_related=' . intval($row['id_vhplab_related']));
if ($r = sql_fetch($already)) {
$message['message_ok'] = _T('vhplab:related_already_ok');
} else {
sql_insertq('spip_vhplab_related_liens', array('id_vhplab_related' => intval($row['id_vhplab_related']), 'id_objet' => intval($id_article), 'objet' => 'article'));
$message['message_ok'] = _T('vhplab:related_insert_ok');
}
} else {
$id_vhplab = sql_insertq("spip_vhplab_related", array('id_objet_related' => $related_num, 'objet_related' => 'article'));
sql_insertq('spip_vhplab_related_liens', array('id_vhplab_related' => intval($id_vhplab), 'id_objet' => intval($id_article), 'objet' => 'article'));
$message['message_ok'] = _T('vhplab:related_insert_ok');
}
}
if (count($delete_related_num) > 0) {
for ($i = 0; $i < count($delete_related_num); $i++) {
$result = sql_select('*', 'spip_vhplab_related', 'id_objet_related=' . intval($delete_related_num[$i]) . ' AND objet_related=' . sql_quote("article"));
if ($row = sql_fetch($result)) {
$already = sql_select('*', 'spip_vhplab_related_liens', 'id_objet=' . intval($id_article) . ' AND objet=' . sql_quote("article") . ' AND id_vhplab_related=' . intval($row['id_vhplab_related']));
if ($r = sql_fetch($already)) {
sql_delete('spip_vhplab_related_liens', 'id_objet=' . intval($id_article) . ' AND objet=' . sql_quote("article") . ' AND id_vhplab_related=' . intval($row['id_vhplab_related']));
$message['message_ok'] .= _T('vhplab:related_deleted_ok');
}
}
}
}
if ($retour) {
include_spip('inc/headers');
$message['message_ok'] .= redirige_formulaire($retour);
}
return $message;
}
示例12: formulaires_editer_tags_article_traiter_dist
function formulaires_editer_tags_article_traiter_dist($id_article = 'new', $retour = '')
{
$message = array('editable' => true, 'message_ok' => '');
$tags = _request('tags');
$array_tags = split(',', $tags);
// 4 insertamos as tags do artigo
$txt = '4';
for ($i = 0; $i < count($array_tags); $i++) {
$tag = trim($array_tags[$i]);
$type = 'tags';
if (strlen($tag) > 3) {
$result = sql_select("*", "spip_mots", "titre=" . sql_quote($tag));
if ($row = sql_fetch($result)) {
$result = sql_insertq("spip_mots_liens", array('id_mot' => $row['id_mot'], 'id_objet' => $id_article, 'objet' => 'article'));
$message .= _T('vhplab:tags_insert_ok_1');
} else {
$result = sql_select("*", "spip_groupes_mots", "titre=" . sql_quote($type));
if ($row = sql_fetch($result)) {
$c = array('titre' => $tag, 'id_groupe' => $row['id_groupe'], 'type' => $type, 'maj' => $date);
$id_nova_mot = sql_insertq("spip_mots", $c);
if ($id_nova_mot) {
$result = sql_insertq("spip_mots_liens", array('id_mot' => $id_nova_mot, 'id_objet' => $id_article, 'objet' => 'article'));
$message .= _T('vhplab:tags_insert_ok_2');
}
}
}
}
}
// borra la cache pero no se como va:
// http://programmer.spip.net/The-processes
/*
include_spip('inc/invalideur');
suivre_invalideur("id='id_article/$id_article'");
*/
if ($retour) {
include_spip('inc/headers');
$message .= redirige_formulaire($retour);
}
return $message;
}
示例13: auth_echec
/**
* fonction appliquee par ecrire/index sur le resultat de la precedente
* en cas de refus de connexion.
* Retourne un message a afficher ou redirige illico.
*
* @param $raison
* @return array|string
*/
function auth_echec($raison)
{
include_spip('inc/minipres');
include_spip('inc/headers');
// pas authentifie. Pourquoi ?
if (is_string($raison)) {
// redirection vers une page d'authentification
// on ne revient pas de cette fonction
// sauf si pb de header
$raison = redirige_formulaire($raison);
} elseif (is_int($raison)) {
// erreur SQL a afficher
$raison = minipres(_T('info_travaux_titre'), _T('titre_probleme_technique') . "<p><tt>" . sql_errno() . " " . sql_error() . "</tt></p>");
} elseif (@$raison['statut']) {
// un simple visiteur n'a pas acces a l'espace prive
spip_log("connexion refusee a " . @$raison['id_auteur']);
$raison = minipres(_T('avis_erreur_connexion'), _T('avis_erreur_visiteur'));
} else {
// auteur en fin de droits ...
$h = $raison['site'];
$raison = minipres(_T('avis_erreur_connexion'), "<br /><br /><p>" . _T('texte_inc_auth_1', array('auth_login' => $raison['login'])) . " <a href='{$h}'>" . _T('texte_inc_auth_2') . "</a>" . _T('texte_inc_auth_3'));
}
return $raison;
}
示例14: action_tester_taille_dist
function action_tester_taille_dist() {
if (!autoriser('configurer'))
return;
$max_size = isset($GLOBALS['meta']['max_taille_vignettes'])?$GLOBALS['meta']['max_taille_vignettes']:0;
$max_size_echec = isset($GLOBALS['meta']['max_taille_vignettes_echec'])?$GLOBALS['meta']['max_taille_vignettes_echec']:0;
$max_size_test = isset($GLOBALS['meta']['max_taille_vignettes_test'])?$GLOBALS['meta']['max_taille_vignettes_test']:0;
$taille = _request('arg');
$taille = explode('-',$taille);
$GLOBALS['taille_max'] = end($taille);
$GLOBALS['taille_min'] = 0;
if (count($taille)>1)
$GLOBALS['taille_min'] = reset($taille);
// si l'intervalle est assez petit, on garde la valeur min
if ($GLOBALS['taille_max']*$GLOBALS['taille_max']-$GLOBALS['taille_min']*$GLOBALS['taille_min']<50000){
ecrire_meta('max_taille_vignettes',$t=$GLOBALS['taille_min']*$GLOBALS['taille_min'],'non');
echo "<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'><html><head><title>test</title></head><body><div>";
echo round($t/1024/1024,3).' Mpx';
echo "</div></body></html>";
die();
}
$taille = $GLOBALS['taille_test'] = round(($GLOBALS['taille_max']+$GLOBALS['taille_min'])/2);
include_spip('inc/filtres');
// des inclusions representatives d'un hit prive et/ou public pour la conso memoire
include_spip('public/assembler');
include_spip('public/balises');
include_spip('public/boucles');
include_spip('public/cacher');
include_spip('public/compiler');
include_spip('public/composer');
include_spip('public/criteres');
include_spip('public/interfaces');
include_spip('public/parametrer');
include_spip('public/phraser_html');
include_spip('public/references');
include_spip('inc/presentation');
include_spip('inc/charsets');
include_spip('inc/documents');
include_spip('inc/header');
$dummy = propre("<doc1>");
$i = _request('i')+1;
$image_source = chemin_image("test.png");
$GLOBALS['redirect'] = generer_url_action("tester_taille", "i=$i&arg=".$GLOBALS['taille_min']."-".$GLOBALS['taille_test']);
ob_start('action_tester_taille_error_handler');
$result = filtrer('image_recadre',$image_source,$taille,$taille);
$GLOBALS['redirect'] = generer_url_action("tester_taille", "i=$i&arg=$taille-".$GLOBALS['taille_max']);
// si la valeur intermediaire a reussi, on teste la valeur maxi qui est peut etre sous estimee
$taille = $GLOBALS['taille_max'];
$result = filtrer('image_recadre',$image_source,$taille,$taille);
$GLOBALS['redirect'] = generer_url_action("tester_taille", "i=$i&arg=$taille-".$GLOBALS['taille_max']);
ob_end_clean();
// on est ici, donc pas de plantage
echo redirige_formulaire($GLOBALS['redirect']);
}
示例15: traiter_formulaires_dynamiques
function traiter_formulaires_dynamiques($get=false){
static $post = array();
static $done = false;
if ($get) return $post;
if ($done) return false;
$done = true;
if (!($form = _request('formulaire_action')
AND $args = _request('formulaire_action_args')))
return false; // le hit peut continuer normalement
include_spip('inc/filtres');
if (($args = decoder_contexte_ajax($args,$form))===false) {
spip_log("signature ajax form incorrecte : $form");
return false; // continuons le hit comme si de rien etait
} else {
include_spip('inc/lang');
// sauvegarder la lang en cours
$old_lang = $GLOBALS['spip_lang'];
// changer la langue avec celle qui a cours dans le formulaire
// on la depile de $args car c'est un argument implicite masque
changer_langue(array_shift($args));
$verifier = charger_fonction("verifier","formulaires/$form/",true);
$post["erreurs_$form"] = pipeline(
'formulaire_verifier',
array(
'args'=>array('form'=>$form,'args'=>$args),
'data'=>$verifier?call_user_func_array($verifier,$args):array())
);
if ((count($post["erreurs_$form"])==0)){
$rev = "";
$retour = "";
if ($traiter = charger_fonction("traiter","formulaires/$form/",true))
$rev = call_user_func_array($traiter,$args);
$rev = pipeline(
'formulaire_traiter',
array(
'args'=>array('form'=>$form,'args'=>$args),
'data'=>$rev)
);
// le retour de traiter peut avoir 3 formats
// - simple message texte
// - tableau a deux entrees ($editable,$message)
// - tableau explicite ('editable'=>$editable,'message_ok'=>$message,'redirect'=>$redirect,'id_xx'=>$id_xx)
// le dernier format est celui conseille car il permet le pipelinage, en particulier
// en y passant l'id de l'objet cree/modifie
// si message_erreur est present, on considere que le traitement a echoue
// cas du message texte simple
if (!is_array($rev)){
$post["message_ok_$form"] = $rev;
}
// cas du tableau deux valeurs simple (ancien format, deconseille)
elseif (count($rev)==2
AND !array_key_exists('message_ok',$rev)
AND !array_key_exists('message_erreur',$rev)
AND !array_key_exists('redirect',$rev)) {
$post["editable_$form"] = reset($rev);
$post["message_ok_$form"] = end($rev);
}
// cas du tableau explicite (conseille)
else {
// verifier si traiter n'a pas echoue avec une erreur :
if (isset($rev['message_erreur'])) {
$post["erreurs_$form"]["message_erreur"] = $rev['message_erreur'];
}
else {
// sinon faire ce qu'il faut :
if (isset($rev['message_ok']))
$post["message_ok_$form"] = $rev['message_ok'];
if (isset($rev['editable']))
$post["editable_$form"] = $rev['editable'];
// si une redirection est demandee, appeler redirigae_formulaire qui choisira
// le bon mode de redirection (302 et on ne revient pas ici, ou javascript et on continue)
if (isset($rev['redirect']) AND $rev['redirect']){
include_spip('inc/headers');
list($masque,$message) = redirige_formulaire($rev['redirect'], '','ajaxform');
$post["message_ok_$form"] .= $message;
$retour .= $masque;
}
}
}
}
// si le formulaire a ete soumis en ajax, on le renvoie direct !
if (_request('var_ajax')){
if (find_in_path('formulaire_.php','balise/',true)) {
include_spip('inc/actions');
include_spip('public/assembler');
array_unshift($args,$form);
$retour .= inclure_balise_dynamique(call_user_func_array('balise_formulaire__dyn',$args),false);
// on ajoute un br en display none en tete du retour ajax pour regler un bug dans IE6/7
// sans cela le formulaire n'est pas actif apres le hit ajax
$retour = "<br class='bugajaxie' style='display:none;'/>".$retour;
ajax_retour($retour,false);
return true; // on a fini le hit
}
//.........这里部分代码省略.........