예제 #1
0
function post_crayons() {
    $results = array();
    if (isset($_POST['crayons']) AND is_array($_POST['crayons']))
    foreach ($_POST['crayons'] as $crayon) {

        $name = $_POST['name_'.$crayon];
        $content = array();
        if ($_POST['fields_'.$crayon]) {
          foreach (explode(',', $_POST['fields_'.$crayon]) as $field) {
            // cas particulier d'un envoi de fichier
            if (isset($_FILES['content_'.$crayon.'_'.$field])) {
            	if ($_FILES['content_'.$crayon.'_'.$field]['size']>0)
            		$content[$field] = $_FILES['content_'.$crayon.'_'.$field];
            	else
            		$content[$field] = false;
            		# cf. valeur passee dans crayon->md5() : false ou filemtime() du logo
            } else {
            	$content[$field] = is_array($_POST['content_'.$crayon.'_'.$field])?implode(',',$_POST['content_'.$crayon.'_'.$field]):$_POST['content_'.$crayon.'_'.$field];
            	// Compatibilite charset autre que utf8 ; en effet on recoit
            	// obligatoirement les donnees en utf-8, par la magie d'ajax
            	// ... sauf dans le cas d'un envoi de fichier !
            	if ($GLOBALS['meta']['charset']!='utf-8' AND !count($_FILES)) {
            	    include_spip('inc/charsets');
            	    $content[$field] = importer_charset($content[$field], 'utf-8');
            	}
            }
          }
        }

        // Si les donnees POSTees ne correspondent pas a leur md5,
        // il faut les traiter
        if (isset($name)
        AND md5(serialize($content)) != $_POST['md5_'.$crayon]) {
            if (!isset($_POST['secu_'.$crayon])
            OR verif_secu($name, $_POST['secu_'.$crayon])) {
                $results[] = array($name, $content, $_POST['md5_'.$crayon], $crayon);
            }
            else {
                return false; // erreur secu
            }
        }
        // cas inchange
        else
            $results[] = array($name, $content, false, $crayon);
    }

    return $results;
}
예제 #2
0
function post_crayons()
{
    $results = array();
    if (isset($_POST['crayons']) and is_array($_POST['crayons'])) {
        foreach ($_POST['crayons'] as $crayon) {
            $name = $_POST['name_' . $crayon];
            $content = array();
            if ($_POST['fields_' . $crayon]) {
                foreach (explode(',', $_POST['fields_' . $crayon]) as $field) {
                    // cas particulier d'un envoi de fichier
                    if (isset($_FILES['content_' . $crayon . '_' . $field])) {
                        if ($_FILES['content_' . $crayon . '_' . $field]['size'] > 0) {
                            $content[$field] = $_FILES['content_' . $crayon . '_' . $field];
                        } else {
                            $content[$field] = false;
                        }
                        // cf. valeur passee dans crayon->md5() : false ou filemtime() du logo
                    } else {
                        /**
                         * le changement de charset n'est plus necessaire
                         * depuis jquery 1.5 (feature non documentee de jquery!)
                         */
                        if (isset($_POST['content_' . $crayon . '_' . $field])) {
                            $content[$field] = is_array($_POST['content_' . $crayon . '_' . $field]) ? implode(',', $_POST['content_' . $crayon . '_' . $field]) : $_POST['content_' . $crayon . '_' . $field];
                        } else {
                            $content[$field] = null;
                        }
                    }
                }
            }
            // Si les donnees POSTees ne correspondent pas a leur md5,
            // il faut les traiter
            if (isset($name) and md5(serialize($content)) != $_POST['md5_' . $crayon]) {
                if (!isset($_POST['secu_' . $crayon]) or verif_secu($name, $_POST['secu_' . $crayon])) {
                    $results[] = array($name, $content, $_POST['md5_' . $crayon], $crayon);
                } else {
                    return false;
                }
                // erreur secu
            } else {
                $results[] = array($name, $content, false, $crayon);
            }
        }
    }
    return $results;
}