После нескольких лет разработки веб-сайтов и в этом случае на том же веб-сайте, с которым я столкнулся, у меня полная потеря с тем, что происходит. У меня есть стандартный вход PHP, который состоит из трех страниц:Сессии PHP не переносятся на другие страницы
login.php для ввода регистрационной информации, checklogin.php проверить входные учетные данные затем home.php в качестве целевой страницы
Все, которые работали прекрасно в течение многих лет, поскольку в течение этого времени они практически не изменились. Теперь, недавно я переместил хостинговую компанию, и это явно означало сложную задачу переустановки всего моего предпочтительного программного обеспечения для веб-хостинга и настройки его на нужды моих веб-сайтов. Так или иначе, поскольку кодировка веб-сайта не изменилась, я понял, что это проблема сервера, либо конфигурация сервера, либо настройка, которую я, должно быть, пропустил.
Конфигурация настроена. Я работал в течение всех трех дней, тогда «poof» просто не хочет устанавливать сеансы больше. Я могу установить его и отобразить, но если я попытаюсь перенести его на другую страницу, это не сработает.
Может ли кто-нибудь объяснить, что могло произойти только волшебным образом в течение трех дней, которые решили просто погубить все?
Несколько замечаний:
- Да, я использую
session_start();
на своей целевой странице, и любой я намерен принять сеансы. - Я использовал теги, чтобы дать вам представление о том, что программное обеспечение мой сервер для веб-страниц (Так как я все еще не уверены, что причиной его)
- Путь PHP сеанса
/var/lib/php/sessions/
, который имеет необходимые разрешения для Apache/nginx - MySQL собирает данные, а php устанавливает сеансы на стр. 2, но затем страница 3, похоже, потеряла сеансы.
Вот пример быстрого броска вместе, я сделал, чтобы проверить это:
Страница 1: Установка сессий:
<?php
session_start();
require_once'../connect.php'; // Database connection
$user_info = mysql_fetch_array(mysql_query("SELECT * FROM users WHERE id = '1'"));
$_SESSION['myid'] = $user_info['id'];
$_SESSION['myuser'] = $user_info['username'];
// Echo the set sessions just to make sure they set
echo 'ID: ' . $_SESSION['myid'] . ' - Username: ' . $_SESSION['myuser'] . '';
echo '<br /><a href="/page2.php">Click here to take your sessions to the next page</a>';
?>
Page 2: Переходим с сессиями:
<?php
session_start();
echo 'ID: ' . $_SESSION['myid'] . ' - Username: ' . $_SESSION['myuser'] . '';
?>
Как вы можете видеть из основного примера выше, страница 2 должна отображать мои сеансы, но это просто не будет. Любая помощь с этим очень ценится, это сводит меня с ума, главным образом, из-за того, что я не знаю, что ее вызывает. Сообщите мне, если вам нужна дополнительная информация, и я постараюсь быть максимально конкретным.
Получаете ли вы какие-либо ошибки или просто ничего, когда пытаетесь отобразить переменные сеанса на стр. 2? (Убедитесь, что сообщения об ошибках включены) Также убедитесь, что в папке tmp осталось место, и у вас есть разрешение на запись! – Rizier123
Добавьте сообщение об ошибках в начало вашего файла (ов) сразу после открытия тега ' Php' ' error_reporting (E_ALL); ini_set ('display_errors', 1); 'посмотрите, не даст ли что-либо. Мой тест прошел успешно. –
Хорошо, теперь я получаю сообщение об ошибке, которое я не делал ранее на двух тестовых страницах, которые я создал: 'Предупреждение: Неизвестно: запись не удалась: на устройстве не осталось места (28) в Unknown on line 0' – SmurfTheSmurf