Loading...
Извиняюсь, подобная тема была, но там много неясностей, не могу разобраться вообще что происходит... Не знаю где искать ответ, буквально часа 4 ищу информацию.

Проблема в следующем, как правило header не срабатывает если стоит в коде после любого вывода информации пользователю, то есть echo в том числе конечно.

Но вот в чем собственно вопрос:

Вот этот код РАБОТАЕТ и перенаправление аналогично работает:

<?php
echo '<div class="block">Тренировка</div>';

echo '<img src="images/shop.png" width="100%" height="200px" />';

echo '<div class="block"><a href="?sila=plus1">Повысить силу на 1 | '.$user['sila'].';

if ($_GET['sila'] == "plus1") {
header('Location: trening.php');
exit;
}
?>


То есть тут присутствует echo со словом тренировка, изображение и ссылка, после чего в условии header.

А вот в этом скрипте
имеется 1 echo с выводом текста, но перенаправлять пользователя при условии true отказывается и пишет что "невозможно изменить заголовки так как они уже отправлены и вывод запущен".


<?php
session_start();
echo "Текст";
if(isset($_GET['zahvat'])){
$_SESSION['emenyhp'] = 20;
$_SESSION['url'] = "?zahvat=two";
$adress = $_SESSION['url'];
}

if ($_GET['zahvat'] == "two") {
$_SESSION['emenyhp'] = 30;
$_SESSION['url'] = "?zahvat=three";
$adress = $_SESSION['url'];
}

if ($_GET['zahvat'] == "three") {
$_SESSION['emenyhp'] = 40;
$_SESSION['url'] = "?zahvat=four";
$adress = $_SESSION['url'];
}

$emenyhp = $_SESSION['emenyhp'];
if(isset($_GET['attack'])){
$emenyhp-=10;
$_SESSION['emenyhp'] = $emenyhp;
$emenyhp = $_SESSION['emenyhp'];
}

if($emenyhp<=0) {
unset($_SESSION['emenyhp']);
$adress = $_SESSION['url'];
if($emenyhp<=0) {
header('location:'.$address.'');
exit();
}
}
$a = $_SESSION['emenyhp'];
echo $a;
echo '<a href="?attack">Атаковать</a>';
echo '<a href="?zahvat
">Начать захват</a>';
?>


В чем разница?
как быстрое решение, прописать после session_start();

ob_start();
PhpStorm , это я понял. Но чем отличается по смыслу первый и второй вариант кода? Ведь один работает, а другой нет.
$emenyhp-=10;

.упорот.
________
посл. ред. 24.02.2018 в 23:15; всего 1 раз(а); by OZZY
OZZY , это ответ на мой вопрос?
Holter (24.02.2018 в 23:16)
OZZY , это ответ на мой вопрос?

Не знаю, не кодер .ололо.

Но что это? Мне кажется, там лишний знак .45.
OZZY (24.02.2018 в 23:17)
Holter (24.02.2018 в 23:16)
OZZY , это ответ на мой вопрос?

Не знаю, не кодер .ололо.

Но что это? Мне кажется, там лишний знак .45.


Если не знаешь, не писал бы

Это эквивалент:
$hp = $hp - 10;
Онлайн: 2
Время:
Gen. 0.1175
(c) Bym.Guru 2010-2026