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; }
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; }