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 = null;
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 $val = "'" . PMA_sqlAddslashes(urldecode($val)) . "'";
00145 }
00146 } else {
00147 $val = "''";
00148 }
00149 break;
00150 case 'set':
00151
00152 if (!empty($fval)) {
00153 $val = implode(',', $fval);
00154
00155 $val = "'" . PMA_sqlAddslashes(urldecode($val)) . "'";
00156 } else {
00157 $val = "''";
00158 }
00159 break;
00160 case 'foreign':
00161
00162 if (!empty($fval)) {
00163 $val = implode(',', $fval);
00164 if ($val == 'null') {
00165
00166 } else {
00167
00168
00169 $val = "'" . PMA_sqlAddslashes($val) . "'";
00170 }
00171 } else {
00172 $val = "''";
00173 }
00174 break;
00175 case 'protected':
00176
00177
00178
00179
00180
00181
00182
00183
00184 if (isset($fieldlist)) {
00185 if (isset($prot_row) && isset($prot_row[$key]) && !empty($prot_row[$key])) {
00186 $val = '0x' . bin2hex($prot_row[$key]);
00187 $seen_binary = TRUE;
00188 } else {
00189 $val = "''";
00190 }
00191 } else {
00192 unset($val);
00193 }
00194
00195 break;
00196 default:
00197 $val = "'" . PMA_sqlAddslashes($val) . "'";
00198 break;
00199 }
00200 break;
00201 default:
00202 $val = "'" . PMA_sqlAddslashes($val) . "'";
00203 break;
00204 }
00205
00206
00207
00208
00209 if (isset($me_fields_null) && isset($me_fields_null[$encoded_key])
00210 && $val=="''") {
00211 $val = 'NULL';
00212 }
00213 }
00214 ?>