dazle
@dazle
Хороший электрик, но в душе программист

Перенес сайт с локального сервера endels на платный хост уже сделанный сайт выдает постоянные проблемы с сессией. почему?

Выдает постоянную ошибку в файлах где открыта сессия: 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");
 }

В чем причина что сессия отсутствует не пойму=(
  • Вопрос задан
  • 102 просмотра
Решения вопроса 1
dazle
@dazle Автор вопроса
Хороший электрик, но в душе программист
Поставил session start() перед
<!DOCTYPE html>в самом начале. Заработало. По другому не как.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@maksim_fix
Junior PHP developer
Судя по всему до команды session_start() в вашем коде устнавливаются header(), поищите
Ответ написан
Ваш ответ на вопрос

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

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