= 40000) { $open_basedir = @ini_get('open_basedir'); } if (empty($open_basedir)) { $open_basedir = @get_cfg_var('open_basedir'); } // If we are on a server with open_basedir, we must move the file // before opening it. The doc explains how to create the "./tmp" // directory $unlink = false; if (!empty($open_basedir)) { $tmp_subdir = (PMA_IS_WINDOWS ? '.\\tmp\\' : './tmp/'); // function is_writeable() is valid on PHP3 and 4 if (!is_writeable($tmp_subdir)) { // if we cannot move the file don't change blob fields $file_to_upload = ''; } else { $new_file_to_upload = $tmp_subdir . basename($file_to_upload); if (PMA_PHP_INT_VERSION < 40003) { copy($file_to_upload, $new_file_to_upload); } else { move_uploaded_file($file_to_upload, $new_file_to_upload); } $file_to_upload = $new_file_to_upload; $unlink = true; } } if ($file_to_upload != '') { $val = fread(fopen($file_to_upload, "rb"), filesize($file_to_upload)); if (!empty($val)) { $val = '0x' . bin2hex($val); $seen_binary = TRUE; $check_stop = TRUE; } if ($unlink == TRUE) { unlink($file_to_upload); } } } // garvin: else: Post-field contains no data. Blob-fields are preserved, see below. ($protected$) } if (!$check_stop) { // f i e l d v a l u e i n t h e f o r m if (isset($fields_type[$encoded_key])) $type = $fields_type[$encoded_key]; else $type = ''; switch (strtolower($val)) { case 'null': break; case '': switch ($type) { case 'enum': // if we have an enum, then construct the value $f = 'field_' . md5($key); if (!empty($$f)) { $val = implode(',', $$f); if ($val == 'null') { // void } else { // the data here is not urlencoded! //$val = "'" . PMA_sqlAddslashes(urldecode($val)) . "'"; $val = "'" . PMA_sqlAddslashes($val) . "'"; } } else { $val = "''"; } break; case 'set': // if we have a set, then construct the value $f = 'field_' . md5($key); if (!empty($$f)) { $val = implode(',', $$f); // the data here is not urlencoded! //$val = "'" . PMA_sqlAddslashes(urldecode($val)) . "'"; $val = "'" . PMA_sqlAddslashes($val) . "'"; } else { $val = "''"; } break; case 'foreign': // if we have a foreign key, then construct the value $f = 'field_' . md5($key); if (!empty($$f)) { $val = implode(',', $$f); if ($val == 'null') { // void } else { // the data here is not urlencoded! //$val = "'" . PMA_sqlAddslashes(urldecode($val)) . "'"; $val = "'" . PMA_sqlAddslashes($val) . "'"; } } else { $val = "''"; } break; case 'protected': // here we are in protected mode (asked in the config) // so tbl_change has put this special value in the // fields array, so we do not change the field value // but we can still handle field upload // garvin: when in UPDATE mode, do not alter field's contents. When in INSERT // mode, insert empty field because no values were submitted. If protected // blobs where set, insert original fields content. if (isset($fieldlist)) { if (isset($prot_row) && isset($prot_row[$key]) && !empty($prot_row[$key])) { $val = '0x' . bin2hex($prot_row[$key]); $seen_binary = TRUE; } else { $val = "''"; } } else { unset($val); } break; default: $val = "'" . PMA_sqlAddslashes($val) . "'"; break; } break; default: $val = "'" . PMA_sqlAddslashes($val) . "'"; break; } // end switch // Was the Null checkbox checked for this field? // (if there is a value, we ignore the Null checkbox: this could // be possible if Javascript is disabled in the browser) if (isset($fields_null) && isset($fields_null[$encoded_key]) && $val=="''") { $val = 'NULL'; } } // end else (field value in the form) ?>