|
|
|
| Здравствуйте !
Пытаюсь удалить файы.
В таблице ссылки на файлы хранятся через символ # допустим - блаблабла#блаблабла#блаблабла (есть такая нужда),
вот кусок кода :
<?php
$id = $_GET['id'];
$query = "SELECT * FROM table WHERE id_table = '$id'";
$file = mysql_query($query);
if($file)
{
$f = mysql_fetch_array($file);
if($symbol = stristr($f['file'], "#"))
{
//разберем строку на подстроки
$exp = explode("#", $f['file']);
//узнаем количество полученных подстрок
$kol = count($exp);
//удалим их в цикле
for($i = 0; $i < $kol; $i++)
{
//если файл существует - удаляем
if(file_exists("../".$exp[i]))
//Здесь проблема
unlink("../".$exp[i]);
//выдает - Warning: unlink(../) [function.unlink]: Permission denied in C:\Apache 2.3\htdocs\admin\path\delete_file.php on line 23
//и файлы не удаляет
}
}
else
{
//Здесь все в порядке и файл удаляется прекрасно
if(file_exists("../".$f['file']))
unlink("../".$f['file']);
}
}
else exit("ошибка - ".mysql_error());
?>
|
Будьте любезны, подскажите, в чем ошибка, где ? О чем меня предупреждают ?
Спасибо ! | |
|
|
|
|
|
|
|
для: mehelson
(17.08.2007 в 11:44)
| | У скрипта нет прав доступа... Хотя проверьте нет ли среди элементов массива $exp пустых строк - возможно вы пытаетесь уничтожить при помощи unlink() директорию. | |
|
|
|
|
|
|
|
для: cheops
(17.08.2007 в 11:48)
| | пустых строк скорее нет, чем есть... ;)
echo $exp[$i]; в цикле, выдает точное количество ссылок на файлы, никаких лишних символов не обнаружено...
или как это можно проверить ? | |
|
|
|
|
|
|
|
для: mehelson
(17.08.2007 в 11:58)
| | А с правами доступа всё нормально? Скрипт имеет право удалять из директории файлы? | |
|
|
|
|
|
|
|
для: cheops
(17.08.2007 в 12:26)
| | права есть, скрипт на localhost.
к тому же файлы "с нормальными ссылками, без символов #" удаляются на ура...
<?php
else
{
//Здесь все в порядке и файл удаляется прекрасно
if(file_exists("../".$f['file']))
unlink("../".$f['file']);
?>
|
| |
|
|
|
|
|
|
|
для: mehelson
(17.08.2007 в 12:30)
| | Warning: unlink(../)...
В скобках показывается, что собираешься удалить. Соответственно, все-таки есть пустые строки в массиве. Проверь, что у тебя получется после $exp = explode("#", $f['file']); | |
|
|
|
|
|
|
|
для: ec_stasis
(17.08.2007 в 13:32)
| | Надо же, невнимательность.
Счетчик в цикле...
Всем спасибо! | |
|
|
|
|
|
|
|
для: mehelson
(17.08.2007 в 14:43)
| | Не видно, ведь пустая строка не видна в выводе :) | |
|
|
|