00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010 require_once('./libraries/common.lib.php');
00011
00012 PMA_checkParameters(array('db','encoded_key'));
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 $check_stop = false;
00029
00030
00031 ${'me_fields_upload_' . $encoded_key} = (isset($enc_primary_key) && isset(${'fields_upload_' . $encoded_key}['multi_edit']) ? ${'fields_upload_' . $encoded_key}['multi_edit'][$enc_primary_key] : (isset(${'fields_upload_' . $encoded_key}) ? ${'fields_upload_' . $encoded_key} : null));
00032 ${'me_fields_uploadlocal_' . $encoded_key} = (isset($enc_primary_key) && isset(${'fields_uploadlocal_' . $encoded_key}['multi_edit']) ? ${'fields_uploadlocal_' . $encoded_key}['multi_edit'][$enc_primary_key] : (isset(${'fields_uploadlocal_' . $encoded_key}) ? ${'fields_uploadlocal_' . $encoded_key} : null));
00033
00034 if (isset(${'me_fields_upload_' . $encoded_key}) && ${'me_fields_upload_' . $encoded_key} != 'none'){
00035
00036
00037 if (!empty(${'me_fields_upload_' . $encoded_key})) {
00038
00039
00040 $data_file = ${'me_fields_upload_' . $encoded_key};
00041
00042 if (is_uploaded_file($data_file)) {
00043
00044
00045 $val = fread(fopen($data_file, 'rb'), filesize($data_file));
00046
00047
00048
00049
00050 if (!empty($val)) {
00051
00052 $val = '0x' . bin2hex($val);
00053 $seen_binary = TRUE;
00054 $check_stop = TRUE;
00055 }
00056
00057
00058
00059 } else {
00060
00061
00062 }
00063
00064 } elseif (!empty(${'me_fields_uploadlocal_' . $encoded_key})) {
00065 if (substr($cfg['UploadDir'], -1) != '/') {
00066 $cfg['UploadDir'] .= '/';
00067 }
00068 $file_to_upload = $cfg['UploadDir'] . preg_replace('@\.\.*@', '.', ${'me_fields_uploadlocal_' . $encoded_key});
00069
00070
00071 $open_basedir = @ini_get('open_basedir');
00072
00073
00074
00075
00076
00077 $unlink = false;
00078 if (!empty($open_basedir)) {
00079
00080 $tmp_subdir = (PMA_IS_WINDOWS ? '.\\tmp\\' : './tmp/');
00081
00082
00083 if (!is_writeable($tmp_subdir)) {
00084
00085 $file_to_upload = '';
00086 } else {
00087 $new_file_to_upload = $tmp_subdir . basename($file_to_upload);
00088 move_uploaded_file($file_to_upload, $new_file_to_upload);
00089
00090 $file_to_upload = $new_file_to_upload;
00091 $unlink = true;
00092 }
00093 }
00094
00095 if ($file_to_upload != '') {
00096
00097 $val = fread(fopen($file_to_upload, 'rb'), filesize($file_to_upload));
00098 if (!empty($val)) {
00099 $val = '0x' . bin2hex($val);
00100 $seen_binary = TRUE;
00101 $check_stop = TRUE;
00102 }
00103
00104 if ($unlink == TRUE) {
00105 unlink($file_to_upload);
00106 }
00107 }
00108
00109 }
00110
00111
00112 }
00113
00114 if (!$check_stop) {
00115
00116
00117
00118 if (isset($me_fields_type[$encoded_key])) $type = $me_fields_type[$encoded_key];
00119 else $type = '';
00120
00121 $f = 'field_' . md5($key);
00122 $t_fval = (isset($$f) ? $$f : null);
00123
00124 if (isset($t_fval['multi_edit']) && isset($t_fval['multi_edit'][$enc_primary_key])) {
00125 $fval = &$t_fval['multi_edit'][$enc_primary_key];
00126 } else {
00127 $fval = &$t_fval;
00128 }
00129
00130 switch (strtolower($val)) {
00131
00132
00133
00134 case '':
00135 switch ($type) {
00136 case 'enum':
00137
00138 if (!empty($fval)) {
00139 $val = implode(',', $fval);
00140 if ($val == 'null') {
00141
00142 } else {
00143
00144
00145 $val = "'" . PMA_sqlAddslashes($val) . "'";
00146 }
00147 } else {
00148 $val = "''";
00149 }
00150 break;
00151 case 'set':
00152
00153 if (!empty($fval)) {
00154 $val = implode(',', $fval);
00155
00156
00157 $val = "'" . PMA_sqlAddslashes($val) . "'";
00158 } else {
00159 $val = "''";
00160 }
00161 break;
00162 case 'foreign':
00163
00164 if (!empty($fval)) {
00165 $val = implode(',', $fval);
00166 if ($val == 'null') {
00167
00168 } else {
00169
00170
00171 $val = "'" . PMA_sqlAddslashes($val) . "'";
00172 }
00173 } else {
00174 $val = "''";
00175 }
00176 break;
00177 case 'protected':
00178
00179
00180
00181
00182
00183
00184
00185
00186 if (isset($fieldlist)) {
00187 if (isset($prot_row) && isset($prot_row[$key]) && !empty($prot_row[$key])) {
00188 $val = '0x' . bin2hex($prot_row[$key]);
00189 $seen_binary = TRUE;
00190 } else {
00191 $val = "''";
00192 }
00193 } else {
00194 unset($val);
00195 }
00196
00197 break;
00198 default:
00199 $val = "'" . PMA_sqlAddslashes($val) . "'";
00200 break;
00201 }
00202 break;
00203 default:
00204 $val = "'" . PMA_sqlAddslashes($val) . "'";
00205 break;
00206 }
00207
00208
00209
00210
00211 if (isset($me_fields_null) && isset($me_fields_null[$encoded_key])
00212 && $val=="''") {
00213 $val = 'NULL';
00214 }
00215 }
00216 ?>