function add_sl(&$var) { if (is_array($var)) { reset($var); while (list($k, $v) = each($var)) { add_sl($var[$k]); } } else { $var = addslashes($var); } }
$signature = $sign->gen_signature(); if ($forcage == 1) { $tab = unserialize(stripslashes($ret_url)); foreach ($tab->GET as $key => $val) { if (get_magic_quotes_gpc()) { $GLOBALS[$key] = $val; } else { add_sl($val); $GLOBALS[$key] = $val; } } foreach ($tab->POST as $key => $val) { if (get_magic_quotes_gpc()) { $GLOBALS[$key] = $val; } else { add_sl($val); $GLOBALS[$key] = $val; } } $signature = $sign->gen_signature(); } else { if ($pmb_notice_controle_doublons != 0) { //Si controle de dedoublonnage active $signature = $sign->gen_signature(); // En modification de notice, on ne dedoublonne pas if (!$id) { $requete = "select signature, niveau_biblio ,notice_id from notices where signature='{$signature}' and niveau_biblio='{$b_level}' "; if ($id) { $requete .= " and notice_id != '{$id}' "; } //$requete.= " limit 1 ";
function record() { global $pmb_notice_controle_doublons; global $recept_cat_error_form; global $integre, $serialized_post, $existant_notice_id, $existant_b_level, $existant_h_level, $signature, $id_lig, $serialized_search; $recorded = false; switch ($integre) { case 'new': $unserialized_post = unserialize(rawurldecode(stripslashes($serialized_post))); foreach ($unserialized_post as $key => $val) { if (get_magic_quotes_gpc()) { $GLOBALS[$key] = $val; } else { add_sl($val); $GLOBALS[$key] = $val; } global ${$key}; } $z = new z3950_notice("form"); $z->signature = $signature; $ret = $z->insert_in_database(); $notice_id = $ret[1]; $recorded = true; break; case 'existant': $notice_id = $existant_notice_id; $b_level = $existant_b_level; $h_level = $existant_h_level; $recorded = true; break; default: $duplicate = array(); $signature = ''; $r = object; if ($pmb_notice_controle_doublons != 0) { $sign = new notice_doublon(true); $signature = $sign->gen_signature(); $r = $sign->getDuplicate(); } if ($r->notice_id) { if ($r->niveau_biblio == 'a' && $r->niveau_hierar == 2) { //article $serial = new serial_display($r->notice_id, 6, '', '', '', '', '', 0, 2, 1, 0, 1, 0, 0, '', 0); $notice_display = $serial->result; } elseif ($r->niveau_biblio == 'm' && $r->niveau_hierar == 0) { //monographie $display = new mono_display($r->notice_id, 6, '', 1, '', '', '', 0, 2, 1, 1, '', 0, 0, 1, 0); $notice_display = $display->result; } $form = $recept_cat_error_form; $form = str_replace('!!serialized_post!!', rawurlencode(serialize($_POST)), $form); $form = str_replace('!!existant_notice_id!!', $r->notice_id, $form); $form = str_replace('!!existant_b_level!!', $r->niveau_biblio, $form); $form = str_replace('!!existant_h_level!!', $r->niveau_hierar, $form); $form = str_replace('!!signature!!', $signature, $form); $form = str_replace('!!id_lig!!', $id_lig, $form); $form = str_replace('!!serialized_search!!', stripslashes($serialized_search), $form); $form = str_replace('<!-- notice_display -->', $notice_display, $form); print $form; return false; } else { $z = new z3950_notice("form"); $z->signature = $signature; $ret = $z->insert_in_database(); $notice_id = $ret[1]; $recorded = true; } break; } if ($recorded) { global $id_bibli, $id_exer, $f_fou_code, $f_dem_code, $t_dem, $f_rub_code, $cde_query, $all_query, $chk_dev, $lgstat_filter; $unserialized_search = unserialize(rawurldecode(stripslashes($serialized_search))); $id_bibli = $unserialized_search['id_bibli']; $id_exer = $unserialized_search['id_exer']; $f_fou_code = $unserialized_search['f_fou_code']; $f_dem_code = $unserialized_search['f_dem_code']; $t_dem = $unserialized_search['t_dem']; $f_rub_code = $unserialized_search['f_rub_code']; $cde_query = $unserialized_search['cde_query']; $all_query = $unserialized_search['all_query']; $chk_dev = $unserialized_search['chk_dev']; $lgstat_filter = $unserialized_search['lgstat_filter']; if ($notice_id) { $typ_lig = 1; if ($b_level == 'a' && $h_level == 2) { $typ_lig = 5; } lignes_actes::updateFields(array(0 => $id_lig), array('num_produit' => $notice_id, 'type_ligne' => $typ_lig)); } } return $recorded; }