PHP/MySQL | Циклическая Переадресация
Вот код.Помогите
<?php
$title['page'] = 'Разборки';
require ('../core/sys.php');
require ('../core/head.php');
if(!isset($user['id'])){
header('Location: /');
exit;
}
switch(htmlspecialchars($_GET['case'])){
default;
$search = $db->prepare("SELECT * FROM `users` WHERE `level` = ? and `id` != ?");
$search -> execute([$user['level'],$user['id']]);
$search = $search -> rowCount();
if($search == 0){
?><div class="block"><center><b>Нет подходящих противников</b></center></div><?
require ('../core/foot.php');
exit;
}
$us = $db->prepare("SELECT * FROM `users` WHERE `level` = ? and `id` != ? ORDER BY RAND() DESC LIMIT 1");
$us -> execute([$user['level'],$user['id']]);
$us = $us -> fetchAll();
if(is_array($us)){
foreach($us as $row){
header('Location: /fight/'.$row['id'].'/');
exit;
}
}
break;
case 'op':
$id = abs(intval($_GET['id']));
$op = $db->prepare("SELECT * FROM `users` WHERE `id` = ?");
$op -> execute([$id]);
$op = $op -> fetch(PDO :: FETCH_ASSOC);
if($user['id'] == $op['id'] || !isset($op['id'])){
header('Location: /game/');
exit;
}
?><div class="toptitle"><center><?=$user['login'];?> VS <?=$op['login'];?></br></center></div>
<div class="box2"><center><img src="/design/img/ava/<?=$user['avatar'];?>.png" width="50" height="50"> <img src="/design/img/vs.png" width="30" height="30"> <img src="/design/img/ava/<?=$op['avatar'];?>.png" width="50" height="50"></center></br>
<center>Сила: <?=$user['sila']+$user['sh_sila'];?> | Сила: <?=$op['sila']+$op['sh_sila'];?></center>
<center>Ловкость: <?=$user['lovk']+$user['sh_lovk'];?> | Ловкость: <?=$op['lovk']+$sh['sh_lovk'];?></center>
<center>Защита: <?=$user['def']+$user['sh_def'];?> | Защита: <?=$op['def']+$op['sh_def'];?></center></br>
<center><a class="ue" href="/fight/<?=$op['id'];?>/attack/"> Атаковать </a> <a href="/fight/<?=$op['id'];?>/rush/"><img src="/design/img/resh.png"></a></center></br></div><?
break;
case 'attack':
$id = abs(intval($_GET['id']));
$ank = $db->prepare("SELECT * FROM `users` WHERE `id` = ?");
$ank -> execute([$id]);
$ank = $ank -> fetch(PDO :: FETCH_ASSOC);
if($user['id'] == $ank['id'] || !isset($ank['id'])){
header('Location: /game/');
exit;
}
if($user['id'] == $ank['id']){
header('Location: /game/');
exit;
}
if($user['level'] != $ank['level']) $err = 'Нельзя напасть, уровень игрока не равен твоему!';
if($user['fight'] < 1) $err = 'Для того, что бы наехать, нужен 1 бой!';
if($user['hp'] < 20) $err = 'Нужно 20 здоровья';
if($ank['hp'] < 50) $err = ''.$ank['login'].' еще отдыхает после махача, подожди или найди другого противника';
if($ank['dol'] > 100) $dol = rand(1,100);
if($ank['dol'] <= 100) $dol = rand(1,$ank['dol']);
if($ank['dol'] == 0) $dol = 0;
$user_uron = rand(1,$user['sila']+$user['lovk']+$user['sh_sila']+$user['sh_lovk']) - $ank['def'];
if($user_uron < 1) $user_uron = rand(1,10);
$ank_uron = rand(1,$ank['sila']+$ank['lovk']+$ank['sh_sila']+$ank['sh_lovk']) - $ank['def'];
if($ank_uron < 1) $ank_uron = rand(1,10);
if(!isset($err)){
if($user_uron > $ank_uron){
$text = '<font color="red">На тебя наехал игрок <a href="/p/'.$ank['id'].'/"> '.$user['login'].'</a></font> '.$ank['login'].': '.$ank_uron.' урона, '.$user['login'].': '.$user_uron.' урона';
$wUS = $db->prepare("UPDATE `users` SET `dol` = ?, `hp` = ?, `fight` = ?, `win` = ?, `exp` = ? WHERE `id` = ?");
$wUS -> execute([$user['dol']+$dol,$user['hp']-$ank_uron,$user['fight']-1,$user['win']+1,$user['exp']+1,$user['id']]);
$lan = $db->prepare("UPDATE `users` SET `dol` = ?, `hp` = ?, `lose` = ? WHERE `id` = ?");
$lan -> execute([$ank['dol']-$dol,$ank['hp']-$user_uron,$ank['lose']+1,$ank['id']]);
$nor = $db->prepare("UPDATE `users` SET `hp` = ? WHERE `hp` < ?");
$nor -> execute([0,0]);
$ilog = $db->prepare("INSERT INTO (`user`,`text`,`time`) VALUES (?,?,?)");
$ilog -> execute([$ank['id'],$text,time()]);
if($ank['hp'] == 0) $win = 'Победа нокаутом';
if($ank['hp'] > 0) $win = 'Нанесено больше суммарного урона';
?><div class="toptitle">Результаты боя</div><div class="box2"><center><img src="/design/img/win.png" width="130" height="90"></center></div><div class="toptitle">Итог</div><div class="block"><?=$user['login'];?>: <?=$user_uron;?> урона</br>
<?=$ank['login'];?>: <?=$ank_uron;?> урона</br>
Награда: <?=$dol;?> <img src="/design/img/dollar.png"></br>
Причина победы: <?=$win;?></div> <div class="box2"> <a href="/fight/<?=$ank['id'];?>/rush/">Следующий противник </div> <?
require ('../core/foot.php');
exit;
}
if($user_uron < $ank_uron){
$text = '<font color="green">На тебя наехал игрок <a href="/p/'.$ank['id'].'/"> '.$user['login'].'</a></font> '.$ank['login'].': '.$ank_uron.' урона, '.$user['login'].': '.$user_uron.' урона';
$ulose = $db->prepare("UPDATE `users` SET `hp` = ?, `fight` = ?, `exp` = ?, `lose` = ? WHERE `id` = ?");
$ulose -> execute([$user['hp']-$ank_uron,$user['fight']-1,$user['exp']+1,$user['lose']
<?php
$title['page'] = 'Разборки';
require ('../core/sys.php');
require ('../core/head.php');
if(!isset($user['id'])){
header('Location: /');
exit;
}
switch(htmlspecialchars($_GET['case'])){
default;
$search = $db->prepare("SELECT * FROM `users` WHERE `level` = ? and `id` != ?");
$search -> execute([$user['level'],$user['id']]);
$search = $search -> rowCount();
if($search == 0){
?><div class="block"><center><b>Нет подходящих противников</b></center></div><?
require ('../core/foot.php');
exit;
}
$us = $db->prepare("SELECT * FROM `users` WHERE `level` = ? and `id` != ? ORDER BY RAND() DESC LIMIT 1");
$us -> execute([$user['level'],$user['id']]);
$us = $us -> fetchAll();
if(is_array($us)){
foreach($us as $row){
header('Location: /fight/'.$row['id'].'/');
exit;
}
}
break;
case 'op':
$id = abs(intval($_GET['id']));
$op = $db->prepare("SELECT * FROM `users` WHERE `id` = ?");
$op -> execute([$id]);
$op = $op -> fetch(PDO :: FETCH_ASSOC);
if($user['id'] == $op['id'] || !isset($op['id'])){
header('Location: /game/');
exit;
}
?><div class="toptitle"><center><?=$user['login'];?> VS <?=$op['login'];?></br></center></div>
<div class="box2"><center><img src="/design/img/ava/<?=$user['avatar'];?>.png" width="50" height="50"> <img src="/design/img/vs.png" width="30" height="30"> <img src="/design/img/ava/<?=$op['avatar'];?>.png" width="50" height="50"></center></br>
<center>Сила: <?=$user['sila']+$user['sh_sila'];?> | Сила: <?=$op['sila']+$op['sh_sila'];?></center>
<center>Ловкость: <?=$user['lovk']+$user['sh_lovk'];?> | Ловкость: <?=$op['lovk']+$sh['sh_lovk'];?></center>
<center>Защита: <?=$user['def']+$user['sh_def'];?> | Защита: <?=$op['def']+$op['sh_def'];?></center></br>
<center><a class="ue" href="/fight/<?=$op['id'];?>/attack/"> Атаковать </a> <a href="/fight/<?=$op['id'];?>/rush/"><img src="/design/img/resh.png"></a></center></br></div><?
break;
case 'attack':
$id = abs(intval($_GET['id']));
$ank = $db->prepare("SELECT * FROM `users` WHERE `id` = ?");
$ank -> execute([$id]);
$ank = $ank -> fetch(PDO :: FETCH_ASSOC);
if($user['id'] == $ank['id'] || !isset($ank['id'])){
header('Location: /game/');
exit;
}
if($user['id'] == $ank['id']){
header('Location: /game/');
exit;
}
if($user['level'] != $ank['level']) $err = 'Нельзя напасть, уровень игрока не равен твоему!';
if($user['fight'] < 1) $err = 'Для того, что бы наехать, нужен 1 бой!';
if($user['hp'] < 20) $err = 'Нужно 20 здоровья';
if($ank['hp'] < 50) $err = ''.$ank['login'].' еще отдыхает после махача, подожди или найди другого противника';
if($ank['dol'] > 100) $dol = rand(1,100);
if($ank['dol'] <= 100) $dol = rand(1,$ank['dol']);
if($ank['dol'] == 0) $dol = 0;
$user_uron = rand(1,$user['sila']+$user['lovk']+$user['sh_sila']+$user['sh_lovk']) - $ank['def'];
if($user_uron < 1) $user_uron = rand(1,10);
$ank_uron = rand(1,$ank['sila']+$ank['lovk']+$ank['sh_sila']+$ank['sh_lovk']) - $ank['def'];
if($ank_uron < 1) $ank_uron = rand(1,10);
if(!isset($err)){
if($user_uron > $ank_uron){
$text = '<font color="red">На тебя наехал игрок <a href="/p/'.$ank['id'].'/"> '.$user['login'].'</a></font> '.$ank['login'].': '.$ank_uron.' урона, '.$user['login'].': '.$user_uron.' урона';
$wUS = $db->prepare("UPDATE `users` SET `dol` = ?, `hp` = ?, `fight` = ?, `win` = ?, `exp` = ? WHERE `id` = ?");
$wUS -> execute([$user['dol']+$dol,$user['hp']-$ank_uron,$user['fight']-1,$user['win']+1,$user['exp']+1,$user['id']]);
$lan = $db->prepare("UPDATE `users` SET `dol` = ?, `hp` = ?, `lose` = ? WHERE `id` = ?");
$lan -> execute([$ank['dol']-$dol,$ank['hp']-$user_uron,$ank['lose']+1,$ank['id']]);
$nor = $db->prepare("UPDATE `users` SET `hp` = ? WHERE `hp` < ?");
$nor -> execute([0,0]);
$ilog = $db->prepare("INSERT INTO (`user`,`text`,`time`) VALUES (?,?,?)");
$ilog -> execute([$ank['id'],$text,time()]);
if($ank['hp'] == 0) $win = 'Победа нокаутом';
if($ank['hp'] > 0) $win = 'Нанесено больше суммарного урона';
?><div class="toptitle">Результаты боя</div><div class="box2"><center><img src="/design/img/win.png" width="130" height="90"></center></div><div class="toptitle">Итог</div><div class="block"><?=$user['login'];?>: <?=$user_uron;?> урона</br>
<?=$ank['login'];?>: <?=$ank_uron;?> урона</br>
Награда: <?=$dol;?> <img src="/design/img/dollar.png"></br>
Причина победы: <?=$win;?></div> <div class="box2"> <a href="/fight/<?=$ank['id'];?>/rush/">Следующий противник </div> <?
require ('../core/foot.php');
exit;
}
if($user_uron < $ank_uron){
$text = '<font color="green">На тебя наехал игрок <a href="/p/'.$ank['id'].'/"> '.$user['login'].'</a></font> '.$ank['login'].': '.$ank_uron.' урона, '.$user['login'].': '.$user_uron.' урона';
$ulose = $db->prepare("UPDATE `users` SET `hp` = ?, `fight` = ?, `exp` = ?, `lose` = ? WHERE `id` = ?");
$ulose -> execute([$user['hp']-$ank_uron,$user['fight']-1,$user['exp']+1,$user['lose']
Steam, И чё делать с этим кодом?
Что за скрипт игры? Братва чтоли?
Неужели так трудно просто подумать??? На какой странице переодресация.. ищи в коде условие при выполнении или не выполнении которого стоит header на эту страницу и правь это условие.. все..
Тут явно нету переадресации
DELETED
20 октября 2015, в 13:05
Delete
RotManS (20.10.2015 в 13:04)
Тут явно нету переадресации
Тут явно нету переадресации
if(is_array($us)){
foreach($us as $row){
header('Location: /fight/'.$row['id'].'/');
exit;
}
}
Вилы_Выкидные (20.10.2015 в 13:05)
RotManS (20.10.2015 в 13:04)
Тут явно нету переадресации
if(is_array($us)){
foreach($us as $row){
header('Location: /fight/'.$row['id'].'/');
exit;
}
}
RotManS (20.10.2015 в 13:04)
Тут явно нету переадресации
if(is_array($us)){
foreach($us as $row){
header('Location: /fight/'.$row['id'].'/');
exit;
}
}
header там переадресация стоит?
Вилы_Выкидные (20.10.2015 в 13:05)
RotManS (20.10.2015 в 13:04)
Тут явно нету переадресации
if(is_array($us)){
foreach($us as $row){
header('Location: /fight/'.$row['id'].'/');
exit;
}
}
RotManS (20.10.2015 в 13:04)
Тут явно нету переадресации
if(is_array($us)){
foreach($us as $row){
header('Location: /fight/'.$row['id'].'/');
exit;
}
}
Там 4 локэйшна, на каком тебе ругается на циклическую?
DELETED
20 октября 2015, в 13:17
Delete
VarrkaN (20.10.2015 в 13:13)
Вилы_Выкидные (20.10.2015 в 13:05)
RotManS (20.10.2015 в 13:04)
Тут явно нету переадресации
if(is_array($us)){
foreach($us as $row){
header('Location: /fight/'.$row['id'].'/');
exit;
}
}
Там 4 локэйшна, на каком тебе ругается на циклическую?
Вилы_Выкидные (20.10.2015 в 13:05)
RotManS (20.10.2015 в 13:04)
Тут явно нету переадресации
if(is_array($us)){
foreach($us as $row){
header('Location: /fight/'.$row['id'].'/');
exit;
}
}
Там 4 локэйшна, на каком тебе ругается на циклическую?
мне ни на каком, это я автору темы указал, где у него циклическая переадресация :D
Стр.: 1, 2