|
|
|
| Ошибка при загрузки файла на сервер!
Пишет:
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
На локальнов сервере всё работает, а вот у хостера нет.
Как избежать этой проблемы? | |
|
|
|
|
|
|
|
для: smalik
(05.09.2005 в 10:51)
| | Включается ли обработчик загрузки инструкцией include и если включается, где расположен сам включаемый код, а где файл, который его включает? | |
|
|
|
|
|
|
|
для: 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
(05.09.2005 в 12:16)
| | Вот этот большой файл при помощи инструкции include никуда не включается? | |
|
|
|
|
|
|
|
для: 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>
|
| |
|
|
|
|
|
|
|
для: SMAlik
(06.09.2005 в 13:04)
| | В предупреждении сообщается о 215 строке файла tovar.phtml, что в ней? | |
|
|
|
|
|
|
|
для: cheops
(06.09.2005 в 13:28)
| | У самого такая же проблема. Ошибка выдаётся, поотму что у тебя нет доступа в /var/tmp. Это FreeBSD, судя по всему, и Apache пишет в ту папку tmp-файлы. | |
|
|
|
|
|
|
|
для: Red_Dragon
(06.09.2005 в 15:47)
| | А как можно писать в свою временную папку? Или сделать загрузку напрямую, т.е. минуя вр папку? | |
|
|
|
|
|
|
|
для: cheops
(06.09.2005 в 13:28)
| | В этой строку вот это. Он в верхнем коде есть:
if(copy($HTTP_POST_FILES["filename"]["tmp_name"],
"./prise/img/".$HTTP_POST_FILES["filename"]["name"])) | |
|
|
|
|
|
|
|
для: SMAlik
(07.09.2005 в 04:01)
| | Обидно, забыли про меня | |
|
|
|