[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: file_exists не работает
saddam123
это пример


$file_id = $_GET['uid'];
$data = mysql_query("SELECT name, size, hits, UNIX_TIMESTAMP(dtime) as dtime FROM files WHERE uid = '$file_id'") or die(mysql_error());
$file_info = mysql_fetch_array($data);
$my = $file_info['name'];


$filename = $_SERVER['DOCUMENT_ROOT']."/uploading/$my";
if (file_exists(trim($filename))){

echo "file here.";
} else {
echo "file does not here.";
}


когда есть файл в папка
результаты верно (file here.)
и когда удалу файл от папка
все равно результаты (file here.)
а что делать
sergeiss
Чудес на свете не бывает, ты уже не маленький, чтобы верить в Деда Мороза :) Поэтому проверяй, что именно ты удаляешь и что проверяешь. Где-то у тебя неверно, но не в работе функции.
Например, выведи переменную
echo $filename.'<br>';

и скажи, что там будет. Не так, что "правильно/неправильно", а скопируй и покажи тут, что именно.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
stump
Это у тебя php бракованный! Скачивал наверное не с официального сайта :D .
Конечно шутки в сторону! Предполагаем что компьютер всегда прав, и если появляется ошибка то это ошибка в коде, а не у компьютера и разыскиваем ошибку в коде.
Чтобы выявить ошибку времени выполнения надо расставить брэйкпоинты и просмотреть значение переменных в определенных местах (об этом рассказал sergeiss). Если у вас IDE phpStorm то подойдет xDebug если другая то надо проставлять брейкпоинты вручную к примеру функцией var_dump. Потом надо запустить, посмотреть так ли планировался код и в случае выялвения ошибки провести рефакторинг кода с целью избавления от ошибок времени выполнения, затем убрать расставленные вручную брэйкпоинты в виде var_dump.

К примеру ваш код с брэйкпоинтами из var_dump:

$file_id = $_GET['uid'];
var_dump($file_id);
$data = mysql_query("SELECT name, size, hits, UNIX_TIMESTAMP(dtime) as dtime FROM files WHERE uid = '$file_id'") or die(mysql_error());
$file_info = mysql_fetch_array($data);
$my = $file_info['name'];
var_dump($my);

$filename = $_SERVER['DOCUMENT_ROOT']."/uploading/$my";
var_dump($filename);
$path_exists = file_exists( trim( $filename ) );
var_dump( $path_exists ) ;
if ( $path )
{
echo "file here.";
}
else
{
echo "file does not here.";
}


Также можно исследовать функцию с помощью тестов PHPUnit :) !

_____________
Трус не играет в хокей
Быстрый ответ:

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