щас напишу, вообщем вот оно
my $query = new CGI;
my $CGI = new CGI;
my $forward = $CGI->param (\'forward\');
print $CGI->redirect("$forward");
#print $CGI->header();
#Если надо обновить базу внесенными изменениями
if ($CGI->param(\'ac\')=~\'savechange\')
{
#опишем переменные
my (@parametr, $param, $dbh,$counter);
my (@id, $tmp, $counter, $name, $fieldname, $table, $type, $value, $sql, $idfield,$in_file,$bytesread,$buffer,$tmp_file,$updir);
#получим все переданные параметры
@parametr=$CGI->param();
#найдем ключевое поле и его значение
foreach $param (@parametr){
($tmp, $counter, $name, $fieldname)=split (/\\&/,$param,4);
if ($tmp=~/field/ and $name=~/CodeField/){
$value=$CGI->param($param);
($tmp, $idfield, $type)=split (/\\&/,$fieldname);
if ($type=~/s/){$value=~s/\\\'/\\"/g;$value="\'".$value."\'"};
if ($id[$counter]){
$id[$counter]=$id[$counter]." and $idfield = $value"
}
else{
$id[$counter]="$idfield = $value";
};
}
}
#распарсим все поля
foreach $param (@parametr){
my $file=$param;
($tmp, $counter, $name, $fieldname)=split (/\\&/,$param,4);
if ($tmp=~/field/ and $name!~/CodeField/){
$value=$CGI->param($param);
($table, $fieldname, $type)=split (/\\&/,$fieldname);
$value =~ s/ {2,}/ /g;
print qq($value);
# Передаем два параметра.
# 1 Путь к файлу на машине клиента принимаем из формы имя type
# 2 Путь к файлайм на сервере, заносим в базу.
# Примечание надо определять что это Описание или картинка. И от этого ставиьт путь на сервер.
# Сохранение файлов на сервере
if ($fieldname=~/FileInfo/) {
if ($value) {
print (\'*\');
print $value;
print (\'*
\');
my $DATA_DIR = \'\';
my $DEFAULT_UPLOAD_DIR = \'\';
my $MAX_SIZE_UPLOAD = 25; # Ko
my $FORM_URL = \'../upload.html\';
my $WEBMASTER_EMAIL = \'Egiki@olviko.ru\';
my $DISPLAY_LANG = \'En\'; # Fr -> french
if ($MAX_SIZE_UPLOAD) { $CGI::POST_MAX=12000 * $MAX_SIZE_UPLOAD; } # Ko
my $query = new CGI;
# Выделяем директорию куда сохранять
my $typedir = $query->param(\'forward\');
my ($hlam);
$_=$typedir;
s/\\w://;
s/([^\\/\\\\]+)$//;
$_ = $1;
s/\\.\\.+//g;
s/\\s+//g;
$typedir = $_;
($hlam , $typedir)=split (/\\?/,$typedir);
($typedir , $hlam)=split (/\\&/,$typedir);
($hlam , $typedir)=split (/\\=/,$typedir);
print $typedir;
my $dir = \'/home/uvd/html/upfile/\'.$typedir;
print &Upload($query, $dir, $file);
}
}
#КОНЕЦ МОЕЕЕЕЕее
if (!($value eq "")) {
if ($type=~/s/){$value=~s/\\\'/\\"/g;$value="\'".$value."\'"};# Если пришли символы
if ($value=~/\'\'/ and $type=~/s/){$value=\'NULL\'}; #Если пришло пусто.
#сформируем sql запрос
my $sql=qq(
UPDATE $table SET $fieldname = $value
WHERE $id[$counter]
);
#выполним запрос
# print "$sql
";
&SQLDo($sql);
}
}
}
};
########### Функция UPLOADв #################
sub Upload {
my($query, $upload_dir, $file) = @_;
my($file_query, $file_name, $size, $buff, $time, $bytes_count);
$size = $bytes_count =0;
$_ = $file_query = $query->param($file);
s/\\w://;
s/([^\\/\\\\]+)$//;
$_ = $1;
s/\\.\\.+//g;
s/\\s+//g;
$file_name = $_;
if (!(-e "$upload_dir/$file_name")) {
open(FILE,">$upload_dir/$file_name") || &Error("Error opening file $file_name for writing, error $!", 1);
binmode FILE;
$time=time();
while ($bytes_count = read($file_query,$buff,12000)) {
$size += $bytes_count;
print FILE $buff;
}
close(FILE);
}
}
########### КОНЕЦ Функции UPLOADв #################
sub win2koi{
my($result);
$result=$_[0];
$result =~ tr[ЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪюабцдефгхийклмнопярстужвьызшэщчъ][абвгдежзийклмнопрстуфхцчшщъыьэюяАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ];
return $result;
}
Типа вот оно скрипт универсальный кто разбереться приник тому ))) но вот трабл при встрече значка № он данный конвертит в вин1251, причем проверял данный конверченный пришли уже скрипту тоесть кто то их уже конвертнуллл?
??