Добрый день, перенесли сайт к на другой хостинг, и не поймём в чём проблема. На локальном сервере и на трёх других хостингах всё работает, а на новом хосте не пашет. Конструкция присвоения сессий и редиректа через header(); выдает белый экран, если редирект через <meta></meta> то так работает, но сессии всё равно не передают, в чём проблема не поймём. Пример конструкции: compiled.php Код (Text): if (empty($text)){ session_start(); $_SESSION['msg']='1'; header("Request-URI: ./index.php"); header("Content-Location: ./index.php"); header("Location: ./index.php");} index.php Код (Text): <?php session_start(); if ($_SESSION["msg"]=='1') {echo("<div class='alert alert-success'>Нет текста!</div>");} unset($_SESSION['msg']); ?> После выполнения остаётся на странице compiled.php и белый экран
Если не пашет header, первое что надо проверить - не вклинился ли какой-то вывод текста ДО header! Перенос на другой сервер может быть вообще непричем. Самые популярные причины: пустая строка перед <?php пустая строка после последнего ?> в подключаемом файле пресловутый BOM. Временно включи полный вывод предупреждений, тогда, если я прав, увидишь Warning про header.
так проблема в BOM, а не в кодировке BOM идет первым байтом в файле, т.е. до любого текста, в .т.ч. до "<?php", то есть это уже вывод. а вывода до header быть не должно!
епт так кодируют же всетаки "кодировать в UTF-8 (без BOM)". нее конечно можно два символа удалить в HEX коде геморойно О.о
При чем тут hexeditor? Это твое личное дело каким образом отредактировать файл. Просто не засоряй никому мозг этим PHP наплевать на кодировку. Да и нигде в файле не ставится отметка в какой кодировке ты его редактировал. Для PHP твои исходники это поток данных + поток кода. Всё, что за "скобками" <?php ?> считается выходными данными. BOM стоит за "скобками".
У вас запускаются сессии на каждой странице? У вас каждая новая страница является индексированной? Сессии не могут работать после потока кода: Кодировка у php плохо воспринимает юни-код (придется писать другой подход, чтобы правильно работали русские буквы-это касается конкретно работы с юни-кодом). В случае BOM возникает предупреждение, что до начала потока данных (в теге контейнере BOM<?php ?> где используется запуск сессий и отправка заголовков) уже есть вывод, а так не получится. Кодировку для себя ты сам выбираешь и принимаешь данные. Главное, чтобы не безопасные символы не приходили.