//mysql_query("UPDATE `account` SET `money` = '$account[money]'+'$viz', `exp`='$account[exp]'+'$itogo' WHERE `id`='$account[id]'") or die (mysql_error());
mysql_query("UPDATE `account` SET `baks` =`baks`+2, `exp`=`exp`+".$new_exp." WHERE `id`='$account[id]'") or die(mysql_error());
$usr="$account[login] x";
mysql_query("UPDATE `userduel` SET `usr` = '$usr' WHERE `usr`='$account[login]' LIMIT 1") or die(mysql_error());
$du=mysql_num_rows(mysql_query("SELECT `duid` FROM `userduel` WHERE `storona` = '$duel[storona]' and `status`='active' and `duid`='$duel[duid]'"));
if($du<=0)
{
mysql_query("DELETE FROM `duel` WHERE `id` = '$duel[duid]'");
echo"<a href=\"fiting.php?mod=udar&oponent=$_GET[oponent]&umen=sudar\"> <img src='pic/game/sudar.png' alt='*'/>$cvet Сильный удар $vre </a></font>";
////Рандом игроков///
$account1=mysql_num_rows(mysql_query("SELECT `duid` FROM `userduel` WHERE `storona`='$pr' and `duid`='$dued[id]' and `status`='active'"));
if($account1>=2){
$account1=mysql_fetch_array(mysql_query("SELECT `usr` FROM `userduel` WHERE `usr`!='$_GET[oponent]' and `storona`='$pr' and `duid`='$dued[id]' ORDER BY RAND() LIMIT 1"));
echo"<li><a href=\"fiting.php?mod=udar&oponent=$account1[login]\"> <img src='pic/red.png' alt='*'/> Бить любого </a></li>";
}
}//die
$kom=mysql_num_rows(mysql_query("SELECT `duid` FROM `userduel` WHERE `storona`='$duel[storona]' and `duid`='$dued[id]' "));
echo"<li><a href=\"fiting.php?mod=kom\"> <img src='pic/game/kom.png' alt='*'/> Моя команда ($kom) </a></li>";
Покинул форум
Сообщений всего: 6
Дата рег-ции: Июль 2015
Помог: 0 раз(а)
Viper пишет:
У вас там сотня ошибок. Исправляйте. Доступ к ключам массива в одинарных кавычках. Куча необозначенных переменных.
Так начинаю исправлять начинает все пропадать, вся игра.
Причем у некоторых пользователей работает без ошибок, а у некоторых с ошибками. Бред просто. Сижу два дня голову ломаю.
DelphinPRO
Отправлено: 06 Июля, 2015 - 19:47:36
Активный участник
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
include'inc/shapka.php';if(isset($_SESSION['auth'])){$query=mysql_query(sprintf('SELECT * FROM `account` WHERE (`id`="%d") AND (`password`="%s")',$_SESSION['id'],$_SESSION['password']));if(mysql_num_rows($query)!=0){$account=mysql_fetch_assoc($query);}}if(!$account){header(sprintf('location:%s','/'));exit;}$dueli=mysql_num_rows(mysql_query("SELECT * FROM `userduel` WHERE `usr` = '".$account['login']."' LIMIT 1"));$time=time();$timer=time()+300;$req=mysql_query("SELECT * FROM `userduel` WHERE `usr` = '".$account['login']."' LIMIT 1");$duel=mysql_fetch_array($req);$redu=mysql_query("SELECT * FROM `duel` WHERE `id` = '".$duel['duid']."' LIMIT 1");$dued=mysql_fetch_array($redu);switch($_GET['mod']){default:if($dueli==0){echo'<div class="a"><font color="#AAAAAA">Вы не участвуете в бою</font></div><a href="duel.php?">Продолжить »</a>';break;}if($duel['storona']=="white"){$pr="black";}else{$pr="white";}$rand=rand(1000000,10000000);echo"<div class='a'><b>Битва</b></div>$div";$win=mysql_num_rows(mysql_query("SELECT `duid` FROM `userduel` WHERE `storona` = '$pr' and `duid`='".$duel['duid']."'"));if($win<=0){echo'<div class="a"><font color="#AAAAAA">Дуэль не началась, так как нет противников</font></div>';mysql_query("DELETE FROM `duel` WHERE `id` = '".$duel['duid']."'");echo"<ul class='nav'>";echo"<li><a href=\"fiting.php?rand=$rand\"> <img src='pic/game/reload.png' alt='*'/> Обновить </a></li>";echo"<li><a href=\"fiting.php?mod=exit\"> <img src='pic/game/ext.png' alt='*'/> Покинуть бой </a></li>";break;}if($win>=1){if(empty($duel['usr'])){echo"<img src='pic/game/ext.png' alt='*'/><a href=\"duel.php?\"> Продолжить »</a> ";break;}$wins=mysql_num_rows(mysql_query("SELECT `duid` FROM `userduel` WHERE `storona` = '$pr' and `status`='die' and `duid`='".$duel['duid']."'"));if($win=$wins){if($account['lvl']>=1 and $account['lvl']<=10){$bon=30;}if($account['lvl']>10 and $account['lvl']<=20){$bon=50;}if($account['lvl']>20 and $account['lvl']<=30){$bon=100;}if($account['lvl']>30 and $account['lvl']<=40){$bon=200;}if($account['lvl']>40 and $account['lvl']<=50){$bon=300;}if($account['lvl']>50 and $account['lvl']<=60){$bon=400;}if($account['lvl']>60 and $account['lvl']<=71){$bon=500;}if($duel['status']="active"){$viz=round($account['lvl']*1.5+$bon);}else{$viz=0;}$wins=$account['lvl']+$bon;$die=$duel['dies']*$bon;$itogo=$wins+$die;echo"<div class='a'><img src='pic/game/losed.jpg' alt='*'/> <br/><img src='pic/game/wins.png' alt='*'/> Бой завершен. Ты выиграл.<br/></div>";echo"<font color='#ffc22b'><b>Твоя награда:</font></b>";$new_exp=(int)$account['lvl']*30;echo"<div class='log'>2 золота<br/>$new_exp опыта</div><!--Выживание: <img src='pic/bazar.gif' alt='*'/> <b>$viz</b><br/>Победа: <img src='pic/main/auction.png' alt='*'/> <b>$wins</b><br/>Убийство: <img src='pic/main/auction.png' alt='*'/> <b>$die</b><br/>Итого: <b><img src='pic/bazar.gif' alt='*'/> $viz <img src='pic/main/auction.png' alt='*'/> $itogo</b><br/></div>-->";mysql_query("UPDATE `account` SET `baks` =`baks`+2, `exp`=`exp`+".$new_exp." WHERE `id`='".$account['id']."'") or die(mysql_error());$usr=$account['login']." x";mysql_query("UPDATE `userduel` SET `usr` = '$usr' WHERE `usr`='".$account['login']."' LIMIT 1") or die(mysql_error());$du=mysql_num_rows(mysql_query("SELECT `duid` FROM `userduel` WHERE `storona` = '".$duel['storona']."' and `status`='active' and `duid`='".$duel['duid']."'"));if($du<=0){mysql_query("DELETE FROM `duel` WHERE `id` = '".$duel['duid']."'");}echo"<img src='pic/game/ext.png' alt='*'/><a href=\"duel.php?\"> Продолжить »</a> ";break;}}if($account[hp]<=0){echo'<div class="a"><font color="red">Ты мертв. Эта битва завершена для тебя -2 золота</font></div>';echo"<ul class='nav'>";echo"<li><a href=\"fiting.php?rand=$rand\"> <img src='pic/game/reload.png' alt='*'/> Обновить </a></li>";echo"<li><a href=\"fiting.php?mod=exit\"> <img src='pic/game/ext.png' alt='*'/> Покинуть бой </a></li>";mysql_query("UPDATE `account` SET `baks` =`baks`-2 WHERE `id`='".$account['id']"'") or die(mysql_error());}else{echo"<img src='pic/game/5.jpg' alt='*'/><br/>";if(empty($_GET['oponent'])){$boy=mysql_query("SELECT * FROM `userduel` WHERE `storona`='$pr' and `duid`='".$dued['id']."' and `status`='active' ORDER BY RAND() LIMIT 1");$oponent=mysql_fetch_array($boy);$_GET[oponent]=$oponent['usr'];}echo"<ul class='nav'>";echo"<a href=\"fiting.php?mod=udar&oponent={$oponent['usr']}\"> <img src='pic/red.png' alt='*'/> Атаковать {$oponent['usr']} </a><br />";$req=mysql_query("SELECT umen,timer FROM duellog WHERE usr = '{$account['login']}' and timer>='".time()."' and umen='1' ORDER BY id DESC LIMIT 1");$su=mysql_fetch_array($req);if($su['timer']+8>$timer){$vr=8-($timer-$su['timer']);$vre="0:0$vr";$cvet="<font color='#AAAAAA'>";}echo"<a href=\"fiting.php?mod=udar&oponent={$_GET['oponent']}&umen=sudar\"> <img src='pic/game/sudar.png' alt='*'/>$cvet Сильный удар $vre </a></font>";$account1=mysql_num_rows(mysql_query("SELECT `duid` FROM `userduel` WHERE `storona`='$pr' and `duid`='{$dued['id']}' and `status`='active'"));if($account1>=2){$account1=mysql_fetch_array(mysql_query("SELECT `usr` FROM `userduel` WHERE `usr`!='{$_GET['oponent']}' and `storona`='$pr' and `duid`='{$dued['id']}' ORDER BY RAND() LIMIT 1"));echo"<li><a href=\"fiting.php?mod=udar&oponent={$account1['login']}\"> <img src='pic/red.png' alt='*'/> Бить любого </a></li>";}}$kom=mysql_num_rows(mysql_query("SELECT `duid` FROM `userduel` WHERE `storona`='{$duel['storona']}' and `duid`='{$dued['id']}' "));echo"<li><a href=\"fiting.php?mod=kom\"> <img src='pic/game/kom.png' alt='*'/> Моя команда ($kom) </a></li>";echo"</ul>";echo"$div <font color='chocolate'>Твои противники:</font> $div";$boy=mysql_query("SELECT * FROM `userduel` WHERE `storona`='$pr' and `duid`='{$dued['id']}' ");While($vrag=mysql_fetch_array($boy)){if($vrag['status']=="active"){echo"<img src='pic/main/{$vrag[storona]}.png' alt='*'/> <a href='fiting.php?mod=udar&oponent={$vrag[usr]}'>{$vrag[usr]}</a><img src='pic/up.png' alt='*'/> {$vrag[lvl]} [<img src='pic/game/mob/hp.gif' alt='*'/>";$hp=mysql_fetch_array(mysql_query("SELECT hp FROM `account` WHERE `login`='{$vrag[usr]}' LIMIT 1"));echo"{$hp[hp]}],";if($vrag[status]=="die"){echo"<img src='pic/main/{$vrag[storona]}.png' alt='*'/> <font color='gray'>{$vrag[usr]}</font><img src='pic/game/die.png' alt='*'/> {$vrag[lvl]}, ";}}echo"$div <font color='chocolate'>Боевой журнал</font> $div <br />";$protiv=mysql_query("SELECT * FROM `userduel` WHERE `duid` = '{$duel[duid]}' and `storona`='$pr' ");$souz=mysql_query("SELECT * FROM `userduel` WHERE `duid` = '{$duel[duid]}' and `storona`='{$account1[storona]}' ");$req=mysql_query("SELECT * FROM duellog WHERE opon = '{$account[login]}' or usr = '{$account[login]}' and timer>='".time()."' ORDER BY id DESC LIMIT 6");$avto=mysql_num_rows($req);if($avto>=1){While($ilok=mysql_fetch_assoc($req)){if($ilok[usr]=="system"){$color='#AAAAAA';}if($ilok[usr]!=="$log"){$color='#FF6633';}if($ilok[usr]=="$log"){$color='#CCCCCC';}if($ilok[umen]==1 and $ilok[usr]=="$log"){$color='#71CC71';}if($ilok[umen]==1 and $ilok[usr]!=="$log"){$color='#FF6633';}if($ilok[uron]>0){echo'<font color="#7f9fae">'.$ilok[usr].' </font><font color="'.$color.'">'.$ilok[text].'</font> <font color="#7f9fae">'.$ilok[opon].'</font> -'.$ilok[uron].'<br/>';}else{echo'<font color="#AAAAAA">'.$ilok[text].'</font><br/>';}}}break;case'udar':$req=mysql_query("SELECT umen,timer FROM `duellog` WHERE `usr` = '$account[login]' and timer>='".time()."' and umen='1' ORDER BY id DESC LIMIT 1");$su=mysql_fetch_array($req);if($su[timer]+8>$timer and $_GET[umen]=="sudar"){header("Location: fiting.php?");exit;}if(empty($_GET[oponent])){header("Location: fiting.php?");exit;}if($account[hp]<=0){header("Location: fiting.php?");exit;}$oponent=htmlspecialchars(addslashes(stripslashes($_GET['oponent'])));$user=mysql_query("SELECT * FROM `account` WHERE `login`='$oponent' ");$rest=substr("$oponent",0,-2);if($rest==" x"){header("Location: fiting.php?");exit;}$vrag=mysql_fetch_array($user);$udar=$account[ataka]-$vrag[zahita];if($udar>=0 and $udar<=10){$bon=2;}if($udar>10 and $udar<=30){$bon=4;}if($udar>30 and $udar<=50){$bon=8;}if($udar>50 and $udar<=70){$bon=12;}if($udar>70 and $udar<=100){$bon=16;}if($udar>100){$bon=20;}if($udar<=0){$shans=rand(0,100);if($shans>=0 and $shans<=10){$udar=rand(3,5);}if($shans>=10 and $shans<=30){$udar=rand(2,4);}if($shans>=30 and $shans<=60){$udar=rand(1,3);}if($shans>=60 and $shans<=100){$udar=rand(1,2);}}else{$shans=rand(0,100);if($shans>=0 and $shans<=10){$udar=rand(7,10);}if($shans>=10 and $shans<=30){$udar=rand(6,8);}if($shans>=30 and $shans<=60){$udar=rand(5,6);}if($shans>=60 and $shans<=100){$udar=rand(4,4);}}if($account[zahita]-$vrag[zahita]<0){$uvorot=25;}else{$uvorot=10;}$umen=mysql_query("SELECT `sfera` FROM `userduel` WHERE `usr`='$oponent' ");$sfera=mysql_fetch_array($user);if($_GET[umen]=="sudar" and $sfera[sfera]==0){$udar=$udar*1.5;}$req=mysql_query("SELECT * FROM `duellog` WHERE `usr` = '$account[login]' and timer>='".time()."' ORDER BY id DESC LIMIT 1");$ilog=mysql_fetch_array($req);$razn=$timer-$ilog[timer];if($razn<=2){$uvorot=$uvorot+15;}if($razn>=2 and $razn<=5){$uvorot=$uvorot;}if($razn>=5 and $razn<=10){$uvorot=$uvorot-15;}$sravn=rand(0,100);if($sravn<$uvorot){$udar=0;}if($udar==0){$sms="Промах";$pr=1;}if($pr!==1){$uron=round($vrag[hp]-(($vrag[hp]/100*2)*$udar)-$bon);$udar=round(($vrag[hp]/100*2)*$udar+$bon);$msg=rand(0,2);if($msg=="0"){$sms="ударил";}if($msg=="1"){$sms="поразил";}if($msg=="2"){$sms="сразил";}if($_GET[umen]=="sudar"){$sms=html_entity_decode("использовал</font> сильный удар");$um=1;}if($uron<=0){$sms="убил";$die=$duel[dies]+1;mysql_query("UPDATE `userduel` SET `status` = 'die' WHERE `usr`='$oponent'")or die(mysql_error());mysql_query("UPDATE `userduel` SET `dies` = '$die' WHERE `usr`='$account[login]'")or die(mysql_error());}mysql_query("UPDATE `account` SET `hp` = '$uron' WHERE `login`='$oponent'") or die(mysql_error());mysql_query("UPDATE `userduel` SET `hp` = '$uron' WHERE `usr`='$oponent'") or die(mysql_error());mysql_query("INSERT INTO duellog SET usr='$account[login]',text='$sms',opon='$oponent',uron='$udar',timer='$timer', umen='$um'");}else{mysql_query("INSERT INTO `duellog` SET `usr`='$account[login]',text='$sms',timer='$timer', umen='$um'");}$b=html_entity_decode($_POST[name]);if($uron<=0){$oponent="";}header("Location: fiting.php?oponent=$oponent");exit;break;case'exit':$usr="$account[login] x";mysql_query("UPDATE `userduel` SET `usr` = '$usr' WHERE `usr`='$account[login]' LIMIT 1")or die(mysql_error());echo"<div class='a'><b>Битва</b></div>$div";echo"<font color='red'>Вы покинули бой. </font><br/><a href=\"/duel.php?\">Продолжить »</a>";break;case'kom':echo"<div class='a'><b>Битва</b></div>$div";echo"<img src='pic/game/kom.png' alt='*'/> Моя команда:$div";if($duel[storona]=="white"){$pr="black";}else{$pr="white";}$boy=mysql_query("SELECT * FROM `userduel` WHERE `storona`='$duel[storona]' and `duid`='$dued[id]' ");While($vrag=mysql_fetch_array($boy)){if($vrag[status]=="active"){echo"<img src='pic/main/$vrag[storona].png' alt='*'/> <a href='fiting.php?mod=udar&oponent=$vrag[usr]'>$vrag[usr]</a><img src='pic/up.png' alt='*'/> $vrag[lvl] [<img src='pic/game/mob/hp.gif' alt='*'/>";$hp=mysql_fetch_array(mysql_query("SELECT hp FROM `account` WHERE `login`='$vrag[usr]' LIMIT 1"));echo"$hp[hp]],";}if($vrag[status]=="die"){echo"<img src='pic/main/$vrag[storona].png' alt='*'/> <font color='gray'>$vrag[usr]</font><img src='pic/game/die.png' alt='*'/> $vrag[lvl], ";}}echo"$div <img src='pic/game/vrag.png' alt='*'/> Противники:$div";$boy=mysql_query("SELECT * FROM `userduel` WHERE `storona`='$pr' and `duid`='$dued[id]' ");While($vrag=mysql_fetch_array($boy)){if($vrag[status]=="active"){echo"<img src='pic/main/$vrag[storona].png' alt='*'/> <a href='fiting.php?mod=udar&oponent=$vrag[usr]'>$vrag[usr]</a><img src='pic/up.png' alt='*'/> $vrag[lvl] [<img src='pic/game/mob/hp.gif' alt='*'/>";$hp=mysql_fetch_array(mysql_query("SELECT hp FROM `account` WHERE `login`='$vrag[usr]' LIMIT 1"));echo"$hp[hp]],";}if($vrag[status]=="die"){echo"<img src='pic/main/$vrag[storona].png' alt='*'/> <font color='gray'>$vrag[usr]</font><img src='pic/game/die.png' alt='*'/> $vrag[lvl], ";}}break;}include'inc/nogi.php';
----- Чем больше узнаю, тем больше я не знаю.
delika
Отправлено: 06 Июля, 2015 - 19:53:01
Новичок
Покинул форум
Сообщений всего: 6
Дата рег-ции: Июль 2015
Помог: 0 раз(а)
DelphinPRO так понимаю что-то исправили?! Но все равно такая же ошибка
DelphinPRO
Отправлено: 06 Июля, 2015 - 20:08:10
Активный участник
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
1. вы так и не сказали, какая у вас ошибка (текст ошибки).
2. код не отформатирован, его невозможно читать.
3. примеры, как исправить ошибки вам показали, действуйте по аналогии.
----- Чем больше узнаю, тем больше я не знаю.
delika
Отправлено: 06 Июля, 2015 - 20:57:05
Новичок
Покинул форум
Сообщений всего: 6
Дата рег-ции: Июль 2015
Помог: 0 раз(а)
DelphinPRO 1. текст ошибки тот, который я указала в файле errors.php, из этого файла ссылается на него.
2. Как у Вас в спойлере (сообщении), то да невозможно. У меня, который разместила, все читабельно.
3. Если бы я хорошо разбиралась в php, то не обратилась бы сюда.
Я новичок еще и не все знаю и понимаю. Поэтому и попросила помощи.
DelphinPRO
Отправлено: 06 Июля, 2015 - 21:10:55
Активный участник
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
delika пишет:
текст ошибки тот, который я указала в файле errors.php
Ну я это понял Дал советы, как получить ответ побыстрее.
----- Чем больше узнаю, тем больше я не знаю.
delika
Отправлено: 06 Июля, 2015 - 21:40:01
Новичок
Покинул форум
Сообщений всего: 6
Дата рег-ции: Июль 2015
Помог: 0 раз(а)
DelphinPRO видимо мы недопонимаем друг друга))
1. По ошибке. Чтоб было понятнее вот ссылка на ошибку http://play[dot]workon[dot]tk/errors.php
2. По читабельности кода. Скажите, чем отличается мой код от того, что Вы мне ссылку дали?Может чего я не понимаю?!
Попробую еще раз, возможно я не верно приподношу информацию о проблеме.
Есть файл fiting.php (с тем кодом), на страничке у пользователя отображается Атаковать, вот когда жму на Атаковать, то кидает на файл errors.php (та ссылка на ошибку выше).
andrewkard
Отправлено: 06 Июля, 2015 - 22:31:12
Участник
Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014
Помог: 30 раз(а)
С кодом действительно сложно разобраться... Все намешано в кучу, и php, html, css и к базе запросы. Правильно их разделять - так будет намного нагляднее.
Кнопка Атаковать передает get параметры в файл fiting.php?mod=udar&oponent=, смотрите где они отлавливаются $_GET[mod] и проверяйте строчку за строчкой, что с ними происходит и что приводит к ошибке.
Но перед этим все массивы вида $duel[duid] перепишите с одинарными кавычками: $duel['duid'], как уже говорили выше, плюс еще switch, сначала идут идут кейсы и только в конце default:, у Вас наоборот.
Наверное результат mysql_query лучше записывать в переменную, и потом выводить.
Там где идет разветвление, желательно писать комментарии, что бы было понятнее что к чему.
Вместо sprintf в запросах к БД лучше использовать PDO.
dcc0
Отправлено: 08 Июля, 2015 - 00:06:11
Участник
Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014
Помог: 10 раз(а)
http://phpbeautifier[dot]com/
С некоторой долей вероятности можно сказать, что ссылка выше может приблизить Вас к решению проблемы. Я гарантирую =)
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.