причем на хостинг сервере все отлично работает, этот сайт заказывали , а сейчас появилась необходимость его изменить, установила на свой комп apache+php+mysql+smarty+phpmyadmin, правлю php и tpl скрипты для отображения все отлично работает, тестится и 1 скрипт на добавление в базу "Отправить заявку" срабатывает, а вот 3 скрипта на добавление нового пользователя, обновления прайс-листа и обновления каталога - нет, премиленько удаляют все записи из базы, а добавлять отказываются... если добавлять записи непосредственно из phpmyadmin - все работает....... не могу найти причину... всю голову уже сломала... может где в настройках .... скрипты с заявкой и пользователем сравнила, идентичные по добавлению... и если на хостинг сервере работает значит причина не в скрипте....
Код (Text): <? class PriceTable extends ModuleTable { var $classname = 'Price'; function DelDir($directory) { $dir = opendir($directory); while(($file = readdir($dir))) { if (is_file($directory."/".$file)) { unlink ($directory."/".$file); } elseif (is_dir($directory."/".$file) && ($file!=".") && ($file != "..")) { full_del_dir ($directory."/".$file); } } closedir ($dir); #rmdir ($directory); } function init () { $sPath = '../files/db_price/'; $dDir = opendir($sPath); $aFileList=array(); while ($sFileName=readdir($dDir)) { if ($sFileName!='.' && $sFileName!='..') { $aFileList[]=$sFileName; } sort($aFileList); } closedir ($dDir); $iNumFiles=count($aFileList); if ($iNumFiles!=0) { $del_price = &new Price(); $del_price->query ('TRUNCATE '.$del_price->__table); $this->DelDir('../files/price/'); foreach ($aFileList as $k=>$file) { if (strtolower(substr($file,strlen($file)-4))=='html') { $bufer = substr($file,0,strlen($file)-5); $date = substr($bufer,strlen($bufer)-9,strlen($bufer)); $name = substr($bufer,0,strlen($bufer)-9); $add = &new Price(); $add->pr_name = $name; $add->pr_date = $date; $add->update(); if (file_exists($sPath.$file)) { copy($sPath.$file,'../files/price/price_'.$add->pr_name.'.html'); } $update_file = &new Price(); $update_file->pr_id = $add->pr_id; $update_file->pr_file = '/files/price/price_'.$add->pr_name.'.html'; $update_file->update(); } else { $name = substr($file,0,strlen($file)-5); $add = &new Price(); $add->pr_name = $name; $add->pr_date = date('d.m.Y'); $add->update(); if (file_exists($sPath.$file)) {print_r($name); copy($sPath.$file,'../files/price/'.$file); } $update_file = &new Price(); $update_file->pr_id = $add->pr_id; $update_file->pr_file = '/files/price/'.$file; $update_file->update(); } unlink($sPath.$file); } } } } ?>
это обновление прайс-листа, все записи из таблицы старые удаляются, из каталога в каталог копируются, а в БД не добавляются..
Код (Text): <? class Price extends Access { var $pr_id; var $pr_name; var $pr_file; var $pr_date; var $pr_isactive; var $pr_pos; var $prefix = 'pr_'; function setFrom ($array) { parent::setFrom ($array); } } ?>
ОШИБКИ: Warning: Call-time pass-by-reference has been deprecated in D:\server\aist76.ru\admin\modules\moduletable.php on line 431 Warning: Call-time pass-by-reference has been deprecated in D:\server\aist76.ru\admin\modules\moduletable.php on line 446 Notice: Undefined index: 0 in D:\server\aist76.ru\admin\tpl\c\back\%%47^470^470AABD1%%tree.tpl.php on line 5
Код (Text): $item = &new $this->classname; $item->{$fildparent} = isset ($_GET[$fildparent]) ? $_GET[$fildparent] : null; ModuleFront::getBranch ($item, &$tree , array('title'=>$setting->TableTitle (), 'sub_title'=>$setting->TableSubTitle())); //строка 431 $this->buildCreateTable (&$rows[$i]);// строка 446
при добавлении нового пользователя выходит ошибка Notice: Undefined index: font in D:\server\aist76.ru\security.php on line 103 это строка Код (Text): if ($a = $AllowableHTML[$tag])//строка 103 if ($reg[1][0] == "/") $tag = "</$tag>"; elseif (($a == 1) || ($reg[2] == "")) $tag = "<$tag>"; else { $attrb_list=delQuotes($reg[2]); $tag = "<$tag" . $attrb_list . ">"; } else $tag = "";
поправила на Код (Text): if ($a == $AllowableHTML[$tag])//строка 103 предупреждение перестало выходить но запись в таблицу так и не добавилась
Код (Text): function update () { $ret = false; if ($this->isEdit ()) { $idfield = $this->_id; $classname = get_class ($this); $this->old = new $classname; $this->old->get ($this->$idfield); if ((($result = parent::update ()) > 0) || $this->isPresentUploadedFiles ()) { $this->updatePos ('update'); $ret = $this->updateFiles (); $this->backups (); } } else { if (($result = parent::insert ()) > 0) { $this->updatePos ('insert'); $ret = $this->updateFiles (); } } return $result || $ret; }
mysql_error() не знаю куда здесь вставлять... в загрузке прайс-листов после update(); он ничего не показал..
а загрузка каталога, как начинается так и продолжается до бесконечности, хотя на хостинг-сервере ей хватает 30 мин для обработки всей базы (~5500 записей), удаляются все наименования, добавления не происходит...
обратила внимание на классы, что привело к папке pear в директории сайта, я его установила (раньше это была только копия с сервера), перетащила туда все папки, которых не хватало и все заработало....