Возможно, вы захотите перечитать документацию по include
и его братьям. Они ведут себя не так, как вы ожидаете; вместо разрешения пути включения относительно текущего файла (того, который вы просматриваете) они используют текущий рабочий каталог и путь включения, который может быть любым, в зависимости от ОС, веб-сервера, файлов конфигурации PHP и все, что было выполнено до включения. Использование require
вместо include
, как предлагали другие, не решит вашу проблему, но сообщит вам, не удалось ли включить заражение.
Вы можете решить проблему включения двумя способами: либо управлять текущим рабочим каталогом и путем включения, либо применять дисциплину кода, чтобы убедиться, что они не изменились; или используйте абсолютные включения - константу __FILE__
в сочетании с dirname
можно использовать для эмуляции поведения, которое должно было быть по умолчанию.
Кстати, способ объединения строк в запросы - это атака SQL-инъекцией, ожидающая своего исполнения. Вам лучше отойти от mysql_XXXX () API сейчас и использовать что-то, что поддерживает параметризованные запросы (PDO отлично, mysqli также работает).