С кодом действительно сложно разобраться... Все намешано в кучу, и php, html, css и к базе запросы. Правильно их разделять - так будет намного нагляднее.
Кнопка Атаковать передает get параметры в файл fiting.php?mod=udar&oponent=, смотрите где они отлавливаются $_GET[mod] и проверяйте строчку за строчкой, что с ними происходит и что приводит к ошибке.
Но перед этим все массивы вида $duel[duid] перепишите с одинарными кавычками: $duel['duid'], как уже говорили выше, плюс еще switch, сначала идут идут кейсы и только в конце default:, у Вас наоборот.
Наверное результат mysql_query лучше записывать в переменную, и потом выводить.
Там где идет разветвление, желательно писать комментарии, что бы было понятнее что к чему.
Вместо sprintf в запросах к БД лучше использовать PDO.
Берете контент всей страницы, и дальше либо с помощью DOM библиотек, либо просто функциями, например:
$pos=strrpos($html,'<tr>');
$str_tr=substr($html, $pos);
и т.п.
trysikov
По идее есть два скрипта, первый записывает кодированный в md5 пароль при регистрации, и второй проверяет его при каждом заходе. И они должны совпадать.
$str='Эта функция может возвращать как логическое значение FALSE, так и не относящееся к логическому типу значение, которое приводится к FALSE, например, 0';
$str_100=substr($str,0,100);//Эта функция может возвращать как логическое значение F