Добавление записи в бд.

Статус
В этой теме нельзя размещать новые ответы.

Badyavka

Новичок
Добавление записи в бд.

Говорю сразу дома у меня все правильно работает, а вот на http://547-present.jino-net.ru/star/ неправильно...
Описание:
пользователь загружает свой файл (исключительно фотографию) на сайт. Загрузка происходит в 3 этапа...
1 шаг. Копирование $_FILES["filename"]["tmp_name"] во временную папку на самом сайте "./temp/".$_FILES["filename"]["name"].
2 шаг. Масштабирование (640*480) фотки и сохранение ее в папку.
3 шаг. Масштабирование (120*100) фотки и сохранение ее в другую папку. Здесь же происходит запись этой фотки в бд и удаление временного файла.
Проблема: при добавлении записи в бд вместо одной записи происходит 3!!! Одна правильная, другие 2 (одинаковые, отличающиеся от первой тем, что не все поля заполняются) нет.
Таблица в бд:
PHP:
CREATE TABLE `star_Foto` (
  `id` bigint(20) NOT NULL auto_increment,
  `active` int(2) NOT NULL default '2',
  `authlevel` int(2) default '0',
  `file` varchar(100) NOT NULL,
  `cid` bigint(20) default NULL,
  `author` varchar(100) NOT NULL,
  `data` varchar(50) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
Функция добавления записи в бд:
PHP:
        function NewFoto($file,$cid,$active,$author)
		{       		
                        $Date = date("Y.m.d");
                        $sSQL = "INSERT INTO $this->sTable";
                        $sSQL .= "(active,file,cid,author,data)";
                        $sSQL .= "VALUES ('$active','$file','$cid','$author','$Date')";
			$uResult=$this->objDB->Query($sSQL);
			$err=$this->objDB->GetErrors();
			if(!empty($err))
			{
				print($err);
				return false;
			}
			return true;
		}
Загрузка фотографий:
PHP:
// Загрузка фотографий
        function uploadfoto($cid)
        {
                if(Auth() > 0)
                {
                        preg_match("'([a-z]+)\/[х\-]*([a-z]+)'", $_FILES["filename"]["type"], $ext); 
                        switch($ext[2]) // проверка на фотографию
                        {
                                case "jpg":
                                case "jpeg":
                                case "pjpeg":
                                case "gif":
                                case "png":
                                break;
                                default:
                                Msg(22);
                        }
                        $im_prop = getimagesize($_FILES["filename"]["tmp_name"]);
                        if(($im_prop[0] > 0) and ($im_prop[0] < 1024*3*1024) ) // допустимый размер изображения
                        {
                              if(copy($_FILES["filename"]["tmp_name"],"./temp/".$_FILES["filename"]["name"])) // копирование во временную папку
                              {
                                      $objFotoGalProc=new TFotoGallery('./includes/mysql_php4.class.php');
                                      $galpath=$objFotoGalProc->fn_bGetGalPath($cid);
                                      $f2 = FotoName($cid,$galpath);
                                      // step 2
                                      GoPage('foto&type=ftpfoto&step=2&f1='.$_FILES["filename"]["name"].'&f2='.$f2.'&cid='.$cid);
                              }
                              else
                              {
                                      echo("Ошибка загрузки файла");
                              }
                        }
                        else
                        {
                                echo("Недопустимый размер изображения!");
                        }
                }
                else Msg(20);
        }
        // шаг 2
        function uploadfoto_step_2($f1,$f2,$cid)
        {
                $objFotoGalProc=new TFotoGallery('./includes/mysql_php4.class.php');
                $galpath=$objFotoGalProc->fn_bGetGalPath($cid);
                $filename = "./temp/".$f1;
                resizeimg($filename, $f2, "big", $galpath); // масштабирование
                // step 3
                GoPage('foto&type=ftpfoto&step=3&f1='.$f1.'&f2='.$f2.'&cid='.$cid);
        }
        // шаг 3
        function uploadfoto_step_3($f1,$filenamenew,$cid)
        {
                $objFotoGalProc=new TFotoGallery('./includes/mysql_php4.class.php');
                $galpath=$objFotoGalProc->fn_bGetGalPath($cid);
                $filename = "./temp/".$f1;
                $filenamenew = resizeimg($filename, $filenamenew, "small", $galpath); // масштабирование
                $objFotoProc=new TFoto('./includes/mysql_php4.class.php');
                $active = 1;
                $author = $_SESSION['login'];
                $objFotoProc->NewFoto($filenamenew,$cid,$active,$author); // !!!!!!!!! ПРОБЛЕМА !!!!!!!!!!!!!!!
                unlink($filename) or Msg(22);
                GoPage('foto&type=foto&cid='.$cid);
        }
//--------------------------------------------------------------------------------------------------
// Масштабирование фотографии
        function resizeimg($filename, $filenamenew, $size, $gal)
        {
                if ($size=="big")
                {
                        $w=640;
                        $h=640;
                }
                if ($size=="small")
                {
                        $w=100;
                        $h=100;
                }
                // определим коэффициент сжатия изображения, которое будем генерить
                $ratio = $w/$h;
                // получим размеры исходного изображения
                $size_img = getimagesize($filename);
                // Если размеры меньше, то масштабирования не нужно
                if (($size_img[0]<$w) && ($size_img[1]<$h))
                {
                        if ($size_img[2]==1) $type_img = ".gif";
                        elseif ($size_img[2]==2) $type_img = ".jpg";
                        elseif ($size_img[2]==3) $type_img = ".png";
                        copy($filename, sFotoDir.$gal."/".$size."/".$filenamenew.$type_img);
                        return true;
                }
                // получим коэффициент сжатия исходного изображения
                $src_ratio=$size_img[0]/$size_img[1];

                // Здесь вычисляем размеры уменьшенной копии, чтобы при масштабировании сохранились
                // пропорции исходного изображения
                if ($ratio<$src_ratio)
                {
                        $h = $w/$src_ratio;
                }
                else
                {
                        $w = $h*$src_ratio;
                }
                // создадим пустое изображение по заданным размерам
                $dest_img = imagecreatetruecolor($w, $h);
                $white = imagecolorallocate($dest_img, 255, 255, 255);
                if ($size_img[2]==2) $src_img = imagecreatefromjpeg($filename);
                elseif ($size_img[2]==1) $src_img = imagecreatefromgif($filename);
                elseif ($size_img[2]==3) $src_img = imagecreatefrompng($filename);

                // масштабируем изображение функцией imagecopyresampled()
                // $dest_img - уменьшенная копия
                // $src_img - исходной изображение
                // $w - ширина уменьшенной копии
                // $h - высота уменьшенной копии
                // $size_img[0] - ширина исходного изображения
                // $size_img[1] - высота исходного изображения
                imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $w, $h, $size_img[0], $size_img[1]);
                // сохраняем уменьшенную копию в файл
                if ($size_img[2]==2)
                {
                        $smallimage = sFotoDir.$gal."/".$size."/".$filenamenew.".jpg";
                        imagejpeg($dest_img, $smallimage);
                        $newfile = $filenamenew.".jpg";
                }
                elseif ($size_img[2]==1)
                {
                        $smallimage = sFotoDir.$gal."/".$size."/".$filenamenew.".gif";
                        imagegif($dest_img, $smallimage);
                        $newfile = $filenamenew.".gif";
                }
                elseif ($size_img[2]==3)
                {
                        $smallimage = sFotoDir.$gal."/".$size."/".$filenamenew.".png";
                        imagepng($dest_img, $smallimage);
                        $newfile = $filenamenew.".png";
                }
                // чистим память от созданных изображений
                imagedestroy($dest_img);
                imagedestroy($src_img);
                return $newfile;
        }
//--------------------------------------------------------------------------------------------------
// Имя масштабируемой фотографии
        function FotoName($cid,$galpath)
        {
       	        $objFotoProc=new TFoto('./includes/mysql_php4.class.php');
                $iFoto = $objFotoProc->CountAllFoto();
                $iFoto++;
                $name = 'star_'.$cid.'_'.$iFoto;
                $dirpath = sFotoDir.$galpath."/small";
                $hndl = opendir($dirpath);
                while(false !== ($sName = readdir($hndl)))
		{
                        if(($sName == $name.".jpg") or ($sName == $name.".JPG") or
                           ($sName == $name.".gif") or ($sName == $name.".GIF") or
                           ($sName == $name.".png") or ($sName == $name.".PNG"))
			{
                                $iFoto++;
                                $name = 'star_'.$cid.'_'.$iFoto;
			}
		}
                return $name;
        }
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху