Вы теряете способность внести возрастающие изменения (рефакторинги кода) и все еще чувствовать себя теплыми и нечеткими, что код делает то, что это, как предполагается. Вы теряете практически свободную и безболезненную мотивацию для структурирования кода с минимальными явными зависимостями. IOW, Вы будете в состоянии встроить много зависимостей без того, чтобы замечать. Необходимо было использовать TDD, который зависимости разоблачат как боль/запах при записи тестов.
Я нашел виновника.
Так или иначе, кладж, который у меня есть в функции для скрытия ошибки MySQL, вызывает проблемы только в одной из моих веток, даже если функция и где она вызывается from не изменился между двумя ветвями.
Для заинтересованных, рассматриваемый код:
function isexistinguser($uname,$pwd)
{
global $location;
$uname = mysql_real_escape_string($uname);
$result = mysql_query("SELECT * FROM users WHERE user_username = '$uname'");
$hit = 0;
$rowcounted = false;
$salt = '';
echo '<!--'; // cheap fix for mysql error - FIND A BETTER WAY!
while($row = mysql_fetch_array($result))
{
// Do stuff to figure out what to return
}
echo '-->'; // cheap fix for mysql error - FIND A BETTER WAY!
return array($hit,$salt);
}
Я просмотрел репозиторий git, который вы опубликовали, и его нет. Вы можете попробовать провести разницу между копией на github и текущей копией, так как изменение касается внесенных вами изменений.
Если вы используете IDE, выполните глобальный поиск файла по строке символов. Подобные «ошибки» могут быть неприятными.
Я бы поискал «злую» строку:
grep -R '\ - \ ->' / your / folder
Похоже на ситуацию, когда grep будет удобен, если вы можете использовать его через cygwin или непосредственно в Linux. Быстрый пример простого поиска файлов с этим комментарием HTML
grep -R "<\!---->" ./*
Это должно сузить поиск.
Об обработке ошибок. Первый способ справиться с этим - определить и использовать ваши собственные обработчики вместо стандартных php с помощью set_error_handler .
В качестве простого исправления измените эту строку: $ result = mysql_query (" ВЫБРАТЬ * ИЗ пользователей ГДЕ user_username = '$ uname' ");
примерно так:
$result = mysql_query("SELECT * FROM users WHERE user_username = '$uname'");
if(!$result || !is_resource($result){
return array(0, '');
}
Чтобы покончить с этим, я рекомендую вам проверить PDO , чтобы использовать базы данных.