Выдает постоянную ошибку в файлах где открыта сессия: Warning: session_start(): Cannot start session when headers already sent in ... . Просмотрел сайты с решением этой ошибки, менял кодировку с bom, без bom, менял кодировку в самом ispmanager на utf8, удалял пробелы вначале файла - не помогло.
Когда я регистрирую нового пользователя его login и id попадает в сессию. Это нужно чтобы постоянно не лезть в бд когда нужно всего лишь знать его id что бы взять какую то инфу из бд.
Я к чему виду когда пользователь зарегался и прошел авторизацию на вопрос:
session_start();
if (empty($_SESSION['login']) or empty($_SESSION['id']))
{
...
он соглашается что сессии нет, хотя пользователь при успешной регистрации должен был получить сессию login и id.
Я пришел к тому что сессия ваще не сохраняется у зарегистрированных пользователей.
Я сохранял в сесcию так:
$stm=$bd -> prepare("SELECT * FROM users WHERE login=? ");
$stm -> bind_param('s', $login);
$stm -> execute();
$res3=$stm -> get_result();
$myrow=$res3 -> fetch_assoc();
if (empty($myrow['password']))
{
//если пользователя с введенным логином не существует
exit ("Извините, введённый вами логин или пароль неверный.");
}
else {
//если существует, то сверяем пароли
if ($myrow['password']==$password) {
//если пароли совпадают, то запускаем пользователю сессию! Можете его поздравить, он вошел!
$_SESSION['login']=$myrow['login'];
$_SESSION['id']=$myrow['id'];
//эти данные очень часто используются, вот их и будет "носить с собой" вошедши
header("Location:../index.php");
}
В чем причина что сессия отсутствует не пойму=(