В верхней части login.php
вы
include 'register.php';
Следствием является то, что register.php выполняется, он видит отсутствующий empty($name) || empty($phone)...
и перенаправляет на header("Location: ../register.php?signup=empty");
Простое решение: уберите это include 'register.php';
Хотите ли вы обфускатор, который работает под Mono, или тот, который выводит сборки, которые будут работать под Mono?
Если вы хотите тот, который работает под Mono, я не знаю ни одного, чей GUI работает под Mono, но я знаю, что мы протестировали интерфейс командной строки Dotfuscator внутри Mono, и он работает. Это (пока) официально не поддерживаемое или всесторонне протестированное решение, поэтому ваш пробег может отличаться.
Dotfuscator принимает любую стандартную сборку MSIL, и мы испускаем только 100% PEverifiable сборки, если ваша исходная сборка Mono-совместима с выходом Dotfuscator также должен быть Mono-совместимым. Это можно проверить с помощью Mono Migration Analyzer как на исходной сборке, так и на выходе Dotfuscator.
Отказ от ответственности: я работаю для PreEmptive Solutions,
Вы можете попробовать Spices.Obfuscator . Он сообщает, что поддерживает Mono, но, возможно, он генерирует сборки , которые совместимы с Mono (при условии, что они были в первую очередь), а не работают на Mono. Поскольку они указывают, что они запутывают себя, можно предположить, что их приложение командной строки имеет хорошие шансы на работу (я предлагаю вам попробовать загрузить их оценочный пакет).
Я согласен с комментарием Марка Гравелла об их полезности, особенно после того, как вы начнете использовать c # 3.0. функции, которые делают результирующий декомпилированный код без всяких сомнений в любом случае довольно уродливым. Если код является локальным, он может быть поврежден, в лучшем случае вы удаляете значимые имена (за счет постоянных хлопот для отражающих сценариев).
Попробуйте этот бесплатный инструмент: http://www.foss.kharkov.ua/g1/projects/eazfuscator/ dotnet / Default.aspx # downloads и делает то же, что и коммерческие продукты.