[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Собственный функции.
mihai
Господа программисты.

Как правильно написать код,
чтобы файл удалялся
и правильно выводилось сообщения о работе функции.

Что бы не применять @@@



function bug_removal()

{

$file = "../books/".$_POST['hidden_lolo'];

if (@!unlink($file))

{
$error_unlink = "Ошибка в удалении рнр файла: $file<br/>";
}
else
{
$error_unlink = "Файл рнр: $file удалён<br/>";

}
return $error_unlink;
}



echo bug_removal ($_POST ['hidden_lolo']);




Спустя 5 минут, 50 секунд (21.10.2010 - 20:01) sergeiss написал(а):
А что, у тебя предубеждение против @? Это как раз тот случай, когда сия штуковина очень полезна будет.

Спустя 1 час, 2 минуты, 55 секунд (21.10.2010 - 21:04) linker написал(а):
Для этого случая и прочих подобных случаях
if (is_writeable($filename) && unlink($filename))
echo "Файл удален";
else
echo "Файл не может быть удален";

Спустя 16 часов, 51 минута, 47 секунд (22.10.2010 - 13:56) mihai написал(а):
sergeiss
да ну не нравится она мне тут
она закрывает что "такого файла нет"
а это не хоршо
нужно что бы говорила что "файла нет"


================================

linker
я не понимаю таки выражения
для меня это какой то бред


is_writeable()

Возвращает TRUE, если файл filename существует и доступен для записи.

unlink()

Возвращает TRUE в случае успешного удаления

Получается


если файл filename существует и доступен

и в то же время

обязательное условия что функция unlink() сработала и файла уже нет

то условие верно ?????????????????????



if (is_writeable($filename) && unlink($filename))
echo "Файл удален";
else
echo "Файл не может быть удален";


Спустя 10 минут, 17 секунд (22.10.2010 - 14:06) Michael написал(а):
(is_writeable($filename) && unlink($filename))

параметры в условии тут проверяются слева направо, а не все сразу.
Сначала проверит что читаемый файл, и если читаемый, то пойдет дальше проверять(так как связано лигическим И (&&)) и второй командой удалит файл.

Спустя 19 минут, 53 секунды (22.10.2010 - 14:26) mihai написал(а):
Michael
аааа...
вот так.

и всё равно не понятно
я думал что:

если (это верно & И & это верно)

Спустя 21 минута, 31 секунда (22.10.2010 - 14:48) Michael написал(а):
нет.
Например если OR
if (x OR y) {
// тело
}
проверит x, если x == истина, то дальше проверять и не станет, перейдет к выполнению "тела".
А если x==false, будет проверять дальше y.

Спустя 6 минут, 38 секунд (22.10.2010 - 14:54) linker написал(а):
mihai
Сначала, проверяется можно ли писать в файл. Редактировать, удалять - это одно и тоже. Таким образом отбрасывается файл, который либо не существует, либо к нему не хватает прав на запись. Если условие выполняется, то идет собственно сама попытка удаления. Если файл удалился, то общее условие верное и печатается "Файл удален". Если какое-либо из условий не выполняется, то пишется "Файл не может быть удален".

Спустя 6 часов, 6 минут, 2 секунды (22.10.2010 - 21:00) mihai написал(а):
Господа.

помогите написать нормальный код удаления
запапрился уже то удаляет, то не удаляет, то опять удаляет

принцип

нужно удалить соответвующий .txt файл $_POST['hidden_lolo']
нужно удалить фото и мини фото $_POST['hidden_fotoshop']

выкладываю весь код не хрена не выходит
unlink.php

<?php

////////переменные прилетают это факт///////////

echo $_POST['hidden_lolo'];
echo $_POST['hidden_fotoshop'];


//удаляем .txt файл каталога
function bug_removal()
{
$file = "../books/".$_POST['hidden_lolo'];
if (is_writeable($file) && unlink($file))
{
echo "Файл $file удален";
}
else
{
echo "Ошибка в удалении .txt файла: $file<br/>";
}

return $error_unlink;
}



//удаляем большую картинку
function unlink_fotoshop()
{
$filefotoshop = "../books/fotoshop/".$_POST['hidden_fotoshop'];
if (is_writeable($filefotoshop) && unlink($filefotoshop))
{
echo "Фото $filefotoshop удалено";
}
else
{
echo "Ошибка в удалении рнр файла: $filefotoshop<br/>";
}
return $error_fotoshop;
}



//удаляем миникопию картинки
function unlink_minifotoshop()
{
$fileminifotoshop = "../books/minifotoshop/".$_POST['hidden_fotoshop'];
if (is_writeable($fileminifotoshop) && unlink($fileminifotoshop))
{

//возврашение и презагрузка страницы
echo "<html><head>
<meta http-equiv='Refresh' content='0; URL=delet.php'>
</head></html>"
;

//////////////////или может лучше так////////////////////
//exit("Всё удалёно");

}
else
{
echo "Ошибка в удалении рнр файла: $fileminifotoshop<br/>";
}

return $error_minifotoshop;
}


?>

Спустя 10 часов, 54 минуты, 9 секунд (23.10.2010 - 07:55) Michael написал(а):
Вот эти:
return  $error_unlink;
return $error_fotoshop;
return $error_minifotoshop;

поубирай.
Эти переменные не определены в их функциях;
Цитата (mihai)
выкладываю весь код

Не вижу вызова самих функций удаления. Где вызов bug_removal(); , ... ?

Спустя 3 часа, 42 минуты, 3 секунды (23.10.2010 - 11:37) mihai написал(а):
return ()

я вывожу текст который фунция возвращает


bug_removal()

а это что


.............................................

я тут литературку полистал
может вот так. да и всё


$file = "../books/".$_POST['hidden_lolo'];

if (file_exists('$file')

{
//удаляем txt файл

$file = "../books/".$_POST['hidden_lolo'];

unlink($file);

//удаляем фото к нему

$filefotoshop = "../books/fotoshop/".$_POST['hidden_fotoshop'];

unlink($filefotoshop);

//и всем будет счастье

}

Спустя 9 минут, 18 секунд (23.10.2010 - 11:46) Michael написал(а):
Делай уже лишь бы работало ...
Только так не верно:
file_exists('$file')

надо:
file_exists($file)


вместо file_exists is_writable можно было бы использовать.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.