@SaiGe

Создаю сессию (для регистрации). В файле авторизации массив с сессиями есть и работает, а в основном файле массив $_SESSION пустой. Что не так?

Вот код файла с авторизацией:
<?php session_start(); require "phpStart.php" ?>
<?php 

if(isset($_POST['doLogin'])){
	$data=$_POST;
	$errors=array();
	$user=R::findOne('users','login=?',array($data['login']));
	if($user){
		if(password_verify($data['password'],$user->password)){
			$_SESSION['logged_user']=$user;
			echo '<div style="color:green">'.'Здравствуйте '.$_SESSION['logged_user']->login.', вы авторизованны.</div><form action="/"><button>Назад</button></form>';
			print_r($_SESSION['logged_user']);
		}else{
			echo '<div class="errors er2" style="color:red">Вы ввели не правильный пароль!</div>';
		}
	}else{
		echo '<div class="errors er2" style="color:red">Пользователь не найден!</div>';
	}
}
 ?>

<form action="/log.php" method="POST">
	<input type="text" placeholder="Логин" name="login" value="<?php echo $_POST['login']; ?>">
	<input type="password" placeholder="Пароль" name="password" value="<?php echo $_POST['password']; ?>">
	<button name="doLogin">Войти</button>
</form>

Тут всё работает и логин пользователя выводиться.

Вот код основного файла:
<?php
session_start();
require "phpStart.php";
?>
<?php print_r($_SESSION); if(isset($_SESSION['logged_user'])){ ?>

test
<?php }else{ ?>
<a href="reg.php">Регистрация</a>
<a href="log.php">Войти</a>

<?php } ?>
Что не так? Где проблема?
  • Вопрос задан
  • 456 просмотров
Пригласить эксперта
Ответы на вопрос 2
Konstantin18ko
@Konstantin18ko
Стоматолог
session_start();

В основном блоке перетащите во второй блок.
Ответ написан
@myphpscript
вы стартуете 2 разные сессии.
из доков:
Функция session_start() создает сессию, либо возобновляет существующую, основываясь на идентификаторе сессии, переданном через GET или POST запрос, либо переданный через cookie.


session_id — Получает и/или устанавливает идентификатор текущей сессии.


лучше сделать, что бы все действия выполнялись через один входной файл index.php, в котором стартует сессия.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы