2013-06-19 3 views
0

Я пытаюсь перенести веб-магазин на новый веб-сервер. Он работает отлично на старом веб-сервере, однако, когда я пытаюсь войти в веб-магазин (index.html), он возвращается на главную страницу, а не входит в систему, поскольку переменная сеанса пуста. Тогда я заметил, что когда я открыл другой сайт с именем request.php) была установлена ​​переменная Session Variable и я вошел в систему. Итак, я пробовал несколько вещей, я переименовал index.html в index.php, и сессия была там.Отсутствует PHP-сессия в .html файле

Мой вопрос: могу ли я получить сессию в .html-файлах (как и на предыдущем веб-сервере) или мне нужно переименовать все мои .html-файлы?

Примечание. Файл index.html содержит также php-код и анализируется как php, только переменная сеанса пуста.

Заранее благодарим за каждый ответ!

+0

Похоже, что на старом сервере html-файлы также были настроены как исполняемые файлы php. – Fracsi

ответ

1

, если вы используете Apache сервер, попробуйте добавить это в конфиге файл.

AddType application/x-httpd-php .html 
+0

Не рекомендуется использовать html-файлы для запуска любых типов серверных скриптов. , если вы в состоянии, вы должны переименовать html-файлы с php, вместо php, а также менее запутывать, когда вам нужно их отредактировать, так как большинство редакторов не делают php-код php в html-файле. – Droa

+0

Хорошо, поэтому я переименую свой индекс.html, а также изменить все ссылки на этот файл. Тем не менее мне интересно, почему переменная сеанса пуста, поскольку php анализируется так же, как в файле .php. – user2165212

+0

Поскольку нет других ответов, я собираюсь отметить это как решенное, хотя на самом деле я не знаю, почему он работает с окончанием .php. – user2165212

0

Вам необходимо установить обработчик на своем веб-сервере для обработки файлов html как php файлов.

+0

Я предполагаю, что ответ Droa, php-код в index.html успешно разбирается. – user2165212

0

Файлы должны быть переименованы для расширения .php на них, даже если они включают html. Просто включите код PHP до начала HTML, например, так:

<?php 
//code goes here 
?> 

<html> 
    <body> 
    //etc... 

Таким образом, вы можете загрузить переменный сеанс и любые другие PHP переменные вам нужно, то они будут доступны в формате HTML, а также ,

Если у вас есть несколько страниц, которые будут нуждаться в том же (переменная сеанса), вы можете поместить код сеанса в файл php, что-то вроде «session.php». Затем, в верхней части каждой страницы вы превращающего из HTML в PHP, поместить этот код в верхней части:

<?php 
    require_once("session.php"); 
?> 

Теперь все ваши страницы будут иметь доступ к той же информации, и это помогает сократить вниз по коду тоже.

+0

Включая PHP-код перед запуском html - это именно то, что делает мой файл index.html. Единственное различие - это окончание файла (index.html, index.php) – user2165212

0

AddType application/x-httpd-php .html

В файле .htaccess будет делать эту работу, все-таки я считаю, что это довольно небезопасно сделать это :)

+0

Это не трюк, может быть, я не совсем понял, что .html-файл содержит php-код, который анализируется. Просто переменная, содержащая сеанс, пуста. – user2165212

+0

разве вы не забыли о session_start() в этом .html файле? – paranoid

+0

нет, index.html и request.php оба включают другой .php-файл, который инициализирует сеанс (session_start()). Если бы этого не хватало, все равно он не работал бы на старом веб-сервере. – user2165212

Смежные вопросы