Нужно, чтобы часть скрипта 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 определена и имеет значение.