Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Ошибка при загрузки файла на сервер
 
 автор: smalik   (05.09.2005 в 10:51)   письмо автору
 
 

Ошибка при загрузки файла на сервер!
Пишет:
Warning: copy(): open_basedir restriction in effect. File(/var/tmp/phpwDooqb) is not within the allowed path(s): (/www/users/alik) in /disk/disk1/httpd/users/alik/admin/tovar.phtml on line 215
На локальнов сервере всё работает, а вот у хостера нет.
Как избежать этой проблемы?

   
 
 автор: cheops   (05.09.2005 в 12:16)   письмо автору
 
   для: smalik   (05.09.2005 в 10:51)
 

Включается ли обработчик загрузки инструкцией include и если включается, где расположен сам включаемый код, а где файл, который его включает?

   
 
 автор: SMAlik   (06.09.2005 в 04:05)   письмо автору
 
   для: cheops   (05.09.2005 в 12:16)
 


elseif ($id==2)
{

        include ("connect.inc");  // здесь данные для подключения к базе

        if( isset( $_POST['update'] ) ) //если была нажата кнопка update, то обработать
         {

                 if (!$sel_gr || !$sel_kodgr || !$kodtv || !$name || !$sel_ed || !$sel_ye || !$prise )
        {
         echo "<tr><TH class=cataloglistheader colspan=4>Вы не ввели необходимые данные</th></tr>";
        }
        else
        {

    if ($pic=="") // проверка - существует ли картинка
    {
         if($HTTP_POST_FILES["filename"]["size"] > 1024*1*1024)
         {
          echo ("Размер файла превышает один мегабайта");
          exit;
          }
          if(copy($HTTP_POST_FILES["filename"]["tmp_name"],
          "./prise/img/".$HTTP_POST_FILES["filename"]["name"]))
          {
           echo("<tr><td>Файл успешно загружен </td></tr>");

           }
           else
           {
            echo("<tr><td>Ошибка загрузки файла</td></tr>");
            }
            $pic=$HTTP_POST_FILES["filename"]["name"];
// увеличинное изображение
            if ( $HTTP_POST_FILES["filename"]["name"]==$HTTP_POST_FILES["bfilename"]["name"])
            {

    if($HTTP_POST_FILES["bfilename"]["size"] > 1024*1*1024)
         {
          echo ("Размер файла превышает один мегабайт");
          exit;
          }
          if(copy($HTTP_POST_FILES["bfilename"]["tmp_name"],
          "../prise/img/"."b".$HTTP_POST_FILES["bfilename"]["name"]))
          {
           echo("<tr><td>Файл успешно загружен </td></tr>");

           }
           else
           {
            echo("<tr><td>Ошибка загрузки файла</td></tr>");
            }
            }
            else
            {
                  echo "<tr><td colspan=5><h3>Ошибка загрузки файла: неправильное имя второго файла!</h3></td></tr>";
      }
      }
    else
    {
            $pic=addslashes ($pic);
    }
                $sel_gr=addslashes ($sel_gr);
                $sel_kodgr=addslashes ($sel_kodgr);
                $srt= addslashes ($srt);
                $kodtv=addslashes ($kodtv);
                $name=addslashes ($name);
                $sel_ed=addslashes ($sel_ed);
                $sel_ye=addslashes ($sel_ye);
                $prise=addslashes ($prise);

                $opis=addslashes ($opis);


// обновление сужествующих данных
          $query="UPDATE tovar SET gr='$sel_gr', kodgr='$sel_kodgr', srt='$srt',
          kodtv='$kodtv', name='$name', ed='$sel_ed',  ye='$sel_ye',  prise='$prise',
          pic='$pic', new='' WHERE kodtv like '%$n%'";

          $result=mysql_query($query);
          echo "<tr><TH class=cataloglistheader colspan=4>Данные обновлены!</th></tr>";
         }
         }
         else
         {
                 if (!isset($f)) // поиск товара для редактирования
                 {

         ?><form action=tovar.phtml?id=2 method=post>
        <tr><TH class=cataloglistheader colspan=4>Введите критерий поиска товара:</th></tr>
              <tr><td>Код</td><td><input type=text class=tx name=kod size=20></td></tr>

              <tr><td></td><td><input type=submit name=search value=Найти><br></td></tr>

        <?
        
if( isset( $_POST['search'] ) )
        {
        if (isset( 
$_POST['kod']))
        {

                
$query="SELECT * FROM 'tovar' WHERE kodtv like '%$kod%'";
                
$result=mysql_query($query);
                
$num=mysql_num_rows($result);


               if (
$num==0)
               {
                   echo 
"<tr><TH class=cataloglistheader colspan=4>Данного товара нет. Попробуйте другой код.</th></tr>";
               }
               else
               {

                       echo 
"<tr>
                      <TH class=cataloglistheader>Код</th>
                      <TH class=cataloglistheader colspan=2>Наименование</th>
                      <TH class=cataloglistheader>Что делать</th>
                      </tr>"
;

                      for(
$i=0$i<$num$i++)
                      {
                      
$row=mysql_fetch_array($result);

                      
$kodtv=stripslashes($row[kodtv]);
                      
$name=stripslashes($row[name]);


                      echo 
"<tr>
                      <td class=cataloglist>
$row[kodtv]</td>
                      <td class=cataloglist colspan=2>
$row[name]</td>
                      <td class=cataloglist><a href=tovar.phtml?id=2&n=
$row[kodtv]&f=0>Редактировать<a/></td>
                      </tr>"
;
                      }
                 }
                 }
                 }
                 }


         if (isset(
$n))
               {
             
$query="SELECT * FROM 'tovar' WHERE kodtv like '%$n%'";
             
$result=mysql_query($query);

             
$row=mysql_fetch_array($result);


               
$gr=stripslashes($row[gr]);
               
$kodgr=stripslashes($row[kodgr]);
               
$srt=stripslashes($row[srt]);
               
$kodtv=stripslashes($row[kodtv]);
               
$name=stripslashes($row[name]);
               
$ed=stripslashes($row[ed]);
               
$ye=stripslashes($row[ye]);
               
$pic=stripslashes($row[pic]);
               
$prise=stripslashes($row[prise]);
               
$opis=stripslashes($row[opis]);
              
?>

        <form action=tovar.phtml?id=2&n=<? echo $n?> method=post enctype="multipart/form-data">
        <tr><td>Группа</td><td colspan=3><input type=text name=sel_gr class=tx value="<? echo htmlspecialchars($gr)?>"></td></tr>
        <tr><td>Код группы</td><td colspan=3><input type=text name=sel_kodgr class=tx value="<? echo htmlspecialchars($kodgr)?>"></td></tr>
        <tr><td>Группа сортировки</td><td colspan=3><input type=text name=srt class=tx size=20 value="<? echo htmlspecialchars($srt)?>"></td></tr>
        <tr><td>Код товара</td><td colspan=3><input type=text name=kodtv class=tx size=20 value="<? echo htmlspecialchars($kodtv)?>"></td></tr>
        <tr><td>Наименование</td><td colspan=3><textarea type=text class=tx name=name rows=10 cols=80 ><? echo htmlspecialchars($name)?></textarea></td></tr>
        <tr><td>Единица товара</td><td colspan=3><input type=text name=sel_ed class=tx value="<? echo htmlspecialchars($ed)?>"></td></tr>
        <tr><td>Валюта</td><td colspan=3><input type=text name=sel_ye class=tx value="<? echo htmlspecialchars($ye)?>"></td></tr>
        <tr><td>Цена</td><td colspan=3><input type=text class=tx name=prise size=20 value="<? echo htmlspecialchars($prise)?>"></td></tr>
        <tr><td>Картинка</td><td colspan=3><input type=text class=tx name=pic size=20 value="<? echo htmlspecialchars($pic)?>"></td></tr>
        <tr><td>Выбор файла</td><td><input type="file" name="filename"></td><td>Большой файл</td><td><input type="file" name="bfilename"></td></tr>
        <tr><td>Описание</td><td colspan=3><textarea type=text class=tx name=opis rows=10 cols=80><? echo htmlspecialchars($opis)?></textarea></td></tr>
        <tr><td></td><td><input type=submit name=update value=Обновить><br></td></tr>
               </form>
               <?
               
}


         }



}

   
 
 автор: cheops   (06.09.2005 в 12:54)   письмо автору
 
   для: cheops   (05.09.2005 в 12:16)
 

Вот этот большой файл при помощи инструкции include никуда не включается?

   
 
 автор: SMAlik   (06.09.2005 в 13:04)   письмо автору
 
   для: cheops   (06.09.2005 в 12:54)
 

Я вызываю его и из админки. Только там он включается, но это в одном каталоге (папке).


<tr><TH class=cataloglistheader colspan=5><h3>ПАНЕЛЬ УПРАВЛЕНИЯ</h3></th></tr>
<tr>
<TH class=header width=20%><a href="admin.phtml?m=1">ТОВАР</a></th>
<TH class=header width=20%><a href="admin.phtml?m=5">ВАЛЮТА</a></th>
<TH class=header width=20%><a href="admin.phtml?m=2">ГЛАВНАЯ СТРАНИЦА</a></th>
<TH class=header width=20%><a href="admin.phtml?m=3">НОВОСТИ</a></th>
<TH class=header width=20%><a href="admin.phtml?m=4">НА САЙТ</a></th>
</tr>
     </div>

     <div id=right1>
     </div>
</div>

<div id=page1>

     <div id=menu>
          <? if ($m==1)
             {
                 include(
"tovar.phtml");
             }
             elseif (
$m==2)
             {
                 include(
"main.phtml");
             }
             elseif (
$m==3)
             {
                 include(
"news.phtml");
             }
             elseif (
$m==4)
             {
                 echo 
"<HTML><HEAD>
          <META HTTP-EQUIV='Refresh' CONTENT='2; URL=../index.phtml'>
          </HEAD></HTML>"
;
             }
             elseif (
$m==5)
             {
                 include(
"ye.phtml");
             }
             
?>
     </div>
</div>

<body>

</body>
</html>

   
 
 автор: cheops   (06.09.2005 в 13:28)   письмо автору
 
   для: SMAlik   (06.09.2005 в 13:04)
 

В предупреждении сообщается о 215 строке файла tovar.phtml, что в ней?

   
 
 автор: Red_Dragon   (06.09.2005 в 15:47)   письмо автору
 
   для: cheops   (06.09.2005 в 13:28)
 

У самого такая же проблема. Ошибка выдаётся, поотму что у тебя нет доступа в /var/tmp. Это FreeBSD, судя по всему, и Apache пишет в ту папку tmp-файлы.

   
 
 автор: smalik   (07.09.2005 в 04:11)   письмо автору
 
   для: Red_Dragon   (06.09.2005 в 15:47)
 

А как можно писать в свою временную папку? Или сделать загрузку напрямую, т.е. минуя вр папку?

   
 
 автор: SMAlik   (07.09.2005 в 04:01)   письмо автору
 
   для: cheops   (06.09.2005 в 13:28)
 

В этой строку вот это. Он в верхнем коде есть:

if(copy($HTTP_POST_FILES["filename"]["tmp_name"],
"./prise/img/".$HTTP_POST_FILES["filename"]["name"]))

   
 
 автор: SMAlik   (09.09.2005 в 06:50)   письмо автору
 
   для: SMAlik   (07.09.2005 в 04:01)
 

Обидно, забыли про меня

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования