file_exists с зарезервированными именами файлов

Хорошо, вот мой код

        $ref = $_GET['ref'];
        if (file_exists('views/'.$ref.'.php')) {
            $this->prepare($ref);
        } 
        elseif (!file_exists('views/'.$ref.'.php')) {
        echo 'Page you are requesting doesn´t exist';
        }

В настоящее время у меня возникают проблемы, если пользователи пытаются сделать? Ref=con или? Ref=com1 и т. Д. File_exists всегда будет возвращать true. Есть ли обходной путь для этого?

2 ответа

Решение

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

Так же elseif не нужно else было бы достаточно просто отлично.

Пожалуйста, попробуйте использовать: is_file http://php.net/manual/en/function.is-file.php

Другие вопросы по тегам