Нужно, чтобы часть скрипта html выполнялась только при определённом значении переменной

Внутри файла header.php лежит следующий код. Хочу, чтобы когда пользователь авторизован - ссылка была на профиль, а когда нет - на регистрацию/ авторизацию.

    <?php if($success == false) { ?>
      <a href="../pages/log.php" class="a_head"> Login </a>
    <?php }if($success == true){ ?>
      <a href="../pages/lk.php" class="a_head"> Profile </a>
    <?php } ?>

Однако, я не могу понять, как мне передать переменную в этот файл из main.php, в котором и расписан процесс регистрации. И если он успешен, то переменная $success - true

$phone=$_POST['phone'];
$pass=$_POST['pass'];
$repass=$_POST['repass'];
if(strlen($phone) <> 10){
  header( 'Location: fail1.php');
}
else if(strlen($pass) < 8){
  header( 'Location: fail2.php');
}
else if($pass != $repass){
  header( 'Location: fail3.php');
}
else{


  $hash = password_hash($pass, PASSWORD_BCRYPT);
  $mysql = new mysqli("localhost", "root", "", "trmob");
  $mysql->query("SET NAMES 'utf8'");
  if($mysql->connect_error){
        echo 'Error Number: '.$mysql->connect_errno.'<br>';
        echo 'Error: '.$mysql->connect_error; }
  $mysql->query("INSERT INTO `users` (`phone`, `pass`)VALUES('$phone','$hash')");
  $mysql->close();
  $success = true;
  header( 'Location: success.php');

Когда использую require вверху header.php - начинается какой то бред, бесконечная переадресация. Видимо ибо в main.php тоже есть редирект, вот они и путаются. Хотелось бы другого решения


Ответы (1 шт):

Автор решения: Константин Бронштейн

Если $success определена до подключения файла header.php, то в header.php она уже у тебя будет. Соответственно тебе надо просмотреть свою программу и убедить что при всех сценариях выполнения, на момент подключения файла header.php, переменная $success определена и имеет значение.

→ Ссылка