Проверка файла на существование и редирект при ошибке 404

Статус
В этой теме нельзя размещать новые ответы.

Эдди

Новичок
Пользователь регистрируется на сайте. При этом для него создается новая директория.
При регистрации производится проверка, не регистрировался ли он раньше.
Проверяется, существует ли его папка.

fopen, file дают ОК даже если директории не существует.

Оказалось, что при "ненахождении" файла срабатывает ErrorDocument 404 в .htaccess, который перенаправляет к главной странице сайта. Так что в любом случае получаю ОК.

Как же в таком случае проверить файл на существование?
 

Andreika

"PHP for nubies" reader
fopen, file дают ОК даже если директории не существует.
дай ссылку на мануал, в котором написано, что функции file и fopen могут возвращать ОК
когда будешь искать - заодно список других функций в этой категории увидишь - мож что более полезное там найдешь
 

Эдди

Новичок
дай ссылку на мануал, в котором написано, что функции file и fopen могут возвращать ОК
когда будешь искать - заодно список других функций в этой категории увидишь - мож что более полезное там найдешь
Образно выразился.
КОнкретнее, к примеру, file дает массив строк главной страницы сайта.

Кажется, вопрос не в том, что возвращают функции...
 

Andreika

"PHP for nubies" reader
тут вроде не сайт образных выражателей и абстрактных мыслителей
простой вопрос - зачем тебе главная страница сайта? вообще зачем тебе страницы? ты с файловой системой самого сервера работать принципиально не хочешь?
 
  • Like
Реакции: A1x

Эдди

Новичок
тут вроде не сайт образных выражателей и абстрактных мыслителей
простой вопрос - зачем тебе главная страница сайта? вообще зачем тебе страницы? ты с файловой системой самого сервера работать принципиально не хочешь?
А если с другой стороны подойти?
Как проверить существование файла?
 

Эдди

Новичок
Ну вот первай же ссылка:
PHP:
<?
// файл, который мы проверяем
$url = "http://url.to/favicon.ico";

// пробуем открыть файл для чтения
if (@fopen($url, "r")) {
echo "Файл существует";
} else {
echo "Файл не найден";
}
?>
Именно так и делаю.
И находит ЛЮБОЙ ФАЙЛ, ПОТОМУ ЧТО ПЕРЕНАПРАВЛЯЕТСЯ НА ГЛАВНУЮ СТРАНИЦУ.

Ладно. Понял. Проверяю
 

Эдди

Новичок
file_exists нельзя использовать на удаленном сервере.
А у меня как раз такой случай.

Наличие файла проверяется на поддомене.

Как быть в таком случае, не знаю.
 

Andreika

"PHP for nubies" reader
если юзер регистрируется в одном месте, то папку на поддомене кто создавать будет?

открываешь "не существующую" страницу в браузере, открываешь существующую страницу в браузере.. а лучше 5 сразу.. сравниваешь их HTML код, находишь различие, однозначно указывающее на то, что страница якобы не существует, пишешь скрипт, находящий это различие в скачанном с поддомена "файле"
 

Эдди

Новичок
если юзер регистрируется в одном месте, то папку на поддомене кто создавать будет?

открываешь "не существующую" страницу в браузере, открываешь существующую страницу в браузере.. а лучше 5 сразу.. сравниваешь их HTML код, находишь различие, однозначно указывающее на то, что страница якобы не существует, пишешь скрипт, находящий это различие в скачанном с поддомена "файле"
Хм. Хотелось простого решения. Но, видимо, его нет.
get_headers() напрашивается. Но тоже не универсально.
Если есть host, 200 не подучишь, а получишь 301.

Юзер регистрируется на основном домене. При этом папка автоматом создается на поддомене.

А перехватить 404 нельзя?-( (это так, в качестве образного мышления:))
 

Andreika

"PHP for nubies" reader
get_headers() напрашивается. Но тоже не универсально.
о какой универсальности идет речь? %)

Если есть host, 200 не подучишь, а получишь 301.
и что? проблема в том, что ничего отличного от 200 /301 и иже с ними ты вероятно не получишь в силу криво настроенных ЧПУ

При этом папка автоматом создается на поддомене.
"автоматом" нигде ничего не создается.. откуда вообще поддомен знает, что происходит на главном?
 

Эдди

Новичок
Мы друг друга не понимаем.
Ладно. Покопаюсь.
Как решу проблему, отпишусь.

Офтоп: Что значит, автоматом ничего не создается. На человеческом языке это значит, что после проверки папки на существование, если она не существует, скрипт создает эту папку на поддомене. Я говорю на человеческом языке.
 

Andreika

"PHP for nubies" reader
Офтоп: Что значит, автоматом ничего не создается. На человеческом языке это значит, что после проверки папки на существование, если она не существует, скрипт создает эту папку на поддомене. Я говорю на человеческом языке.
какой скрипт то? тот, о котором тут речь? который и проверяет на наличие этой папки на поддомене?
 

Эдди

Новичок
Через какое-то время. Сначала отлажу все.
Не забуду, сделаю. Зайди чуть позднее...
 

Andreika

"PHP for nubies" reader
фигзнает че ты там отлаживать будешь, когда тебя просят скопировать 1 строчку с функцией, создающей папку..
впрочем я никуда не тороплюсь, отлаживай,отлаживай.. можешь его еще красиво оформить, записать на двд, перевязать бантиком и продавать по 10евро/диск
 

Эдди

Новичок
фигзнает че ты там отлаживать будешь, когда тебя просят скопировать 1 строчку с функцией, создающей папку..
впрочем я никуда не тороплюсь, отлаживай,отлаживай.. можешь его еще красиво оформить, записать на двд, перевязать бантиком и продавать по 10евро/диск
Тебе что, эта строка интересна?
PHP:
mkdir($path,0777)
Да, да. Эта фукнция выполняется уже на поддомене, если в этом хотел меня уличить.

Блн. Хороший разговор.
Вопрос был СОВЕРШЕННО не в этом. И он был прост.

Ну давайте, ткните еще раз меня в ФАК.

И не копируйте вы все Фаната:) Он такой один:) Реально суперкрутой.
 

Andreika

"PHP for nubies" reader
-какой скрипт то? тот, о котором тут речь? который и проверяет на наличие этой папки на поддомене?
-Да. А почему нет?
-Эта фукнция выполняется уже на поддомене

вот чудеса..
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху