$lang = $lang_sel; // if there is a user session we also change the language in PMB database for this user if ($_SESSION["user_code"]) { $query = "UPDATE empr SET empr_lang='{$lang}' WHERE empr_login='******'user_code'] . "' limit 1"; $req = pmb_mysql_query($query, $dbh); $_SESSION["lang"] = $lang; } } else { // there is a user session so we use his params if (isset($_SESSION["lang"])) { $lang = $_SESSION["lang"]; } else { // no changement,no session, we use the cookie to set the lang // cookies must be enabled to remember the lang...this must be changed ? if ($_COOKIE['PhpMyBibli-LANG']) { $rqtveriflang = "select 1 from parametres where type_param='opac' and sstype_param='show_languages' and valeur_param like '%" . pmb_mysql_real_escape_string(stripslashes($_COOKIE['PhpMyBibli-LANG'])) . "%'"; $reqveriflang = pmb_mysql_query($rqtveriflang, $dbh); if (!pmb_mysql_num_rows($reqveriflang)) { $lang = $opac_default_lang; } else { $lang = $_COOKIE['PhpMyBibli-LANG']; } } if (!$lang) { if ($opac_default_lang) { $lang = $opac_default_lang; } else { $lang = "fr_FR"; } } }
function table_dump($table_name, $fp) { global $dbh; fwrite($fp, "#" . $table_name . "\r\n"); fwrite($fp, "drop table if exists " . $table_name . ";\r\n"); //Get strucutre fwrite($fp, create_statement($table_name) . "\n"); //enumerate tables $update_a_faire = 0; /* permet de gérer les id auto_increment qui auraient pour valeur 0 */ //parse the field info first $res2 = pmb_mysql_query("select * from {$table_name} order by 1 ", $dbh); if ($res2) { $nf = pmb_mysql_num_fields($res2); $nr = pmb_mysql_num_rows($res2); } $fields = ''; $values = ''; if ($nf) { for ($b = 0; $b < $nf; $b++) { $fn = pmb_mysql_field_name($res2, $b); $ft = pmb_mysql_field_type($res2, $b); $fs = pmb_mysql_field_len($res2, $b); $ff = pmb_mysql_field_flags($res2, $b); $is_numeric = false; switch (strtolower($ft)) { case "int": $is_numeric = true; break; case "blob": $is_numeric = false; break; case "real": $is_numeric = true; break; case "string": $is_numeric = false; break; case "unknown": switch (intval($fs)) { case 4: // little weakness here... // there is no way (thru the PHP/MySQL interface) // to tell the difference between a tinyint and a year field type $is_numeric = true; break; default: $is_numeric = true; break; } break; case "timestamp": // Afin de résoudre le pb des timestamp pas corrects en restauration $is_numeric=true; $is_numeric = false; break; case "date": $is_numeric = false; break; case "datetime": $is_numeric = false; break; case "time": $is_numeric = false; break; case "geometry": $is_numeric = false; break; default: //future support for field types that are not recognized //(hopefully this will work without need for future modification) $is_numeric = true; //I'm assuming new field types will follow SQL numeric syntax.. // this is where this support will breakdown break; } (string) $fields != "" ? $fields .= ', ' . $fn : ($fields .= $fn); $fna[$b] = $fn; $ina[$b] = $is_numeric; } } //parse out the table's data and generate the SQL INSERT statements in order to replicate the data itself... if ($nr) { for ($c = 0; $c < $nr; $c++) { $row = pmb_mysql_fetch_row($res2); $values = ''; for ($d = 0; $d < $nf; $d++) { $data = strval($row[$d]); if ($ina[$d] == true) { (string) $values != "" ? $values .= ', ' . floatval($data) : ($values .= floatval($data)); } else { (string) $values != "" ? $values .= ", \"" . pmb_mysql_real_escape_string($data) . "\"" : ($values .= "\"" . pmb_mysql_real_escape_string($data) . "\""); } } fwrite($fp, "insert into {$table_name} ({$fields}) values ({$values});\r\n"); if ($update_a_faire == 1) { $update_a_faire = 0; fwrite($fp, "update {$table_name} set " . $cle_update . "='0' where " . $cle_update . "='1';\r\n"); } } } if ($res2) { pmb_mysql_free_result($res2); } }