Участник
Пользователь
- Сообщения
- 119
- Реакции
- 53
- Помог
- 4 раз(а)
Избыточное форматирование
Доброго времени суток.
Имеется небольшой php шаблон, где страницы подгружаются Ajax скриптом. Всё исправно работает, но при перезагрузке страницы "F5" Сессия пропадает.
Прошу помощи. В интернете много информации даже не знаю куда копать понимаю что скорее всего дело в "Session и Cookies" но что бы я не пробовал не получается.
Возможно у меня не работает session_start .
.htaccess
Машина:
Локалка "Open Server 5.2.2"
Apache 2.4 ; PHP 7.0 -7.1 x64
Имеется небольшой php шаблон, где страницы подгружаются Ajax скриптом. Всё исправно работает, но при перезагрузке страницы "F5" Сессия пропадает.
Прошу помощи. В интернете много информации даже не знаю куда копать понимаю что скорее всего дело в "Session и Cookies" но что бы я не пробовал не получается.
Возможно у меня не работает session_start .
.htaccess
PHP:
php_flag display_errors On
php_flag session.cookie_httponly On
AddDefaultCharset UTF-8
Options -Indexes +FollowSymLinks
RewriteEngine on
# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# otherwise forward it to index.php
RewriteRule . index.php
index.php
class.php
content.php
home.php (страничка первая)
service.php (страничка вторая)
PHP:
<?php
include("class.php");
?>
<!doctype html>
<html lang="ru">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name=viewport content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="style.css" type="text/css" media="screen">
<script src="jquery-v1.11.1.js"></script>
<script src="history.js"></script>
<script src="document.js"></script>
<title><?php echo $data->title(); ?></title>
</head>
<body>
<div class="wrapper">
<div id="footer-l">
<header>
<div class="animated-wrap">
<div class="animated-panel animated-back"></div>
<div class="animated-panel animated-front"></div>
</div>
<div class= "banner"></div>
</header>
<div id="page-l">
<nav><ul class="nav"><?php echo $data->menu(); ?></ul></nav>
</div>
</div>
<div id="footer-r">
<div class="content"><?php echo($data->content($data->state(),$data->title())); ?></div>
</div>
</div>
</body>
</html>
PHP:
<?php
$menu = array(
'1' => array("name" => "Главная", "page" => "home"),
'2' => array("name" => "Сервисы", "page" => "service"),
'3' => array("name" => "Ошибки", "page" => "error")
);
class load_page_vars {
function title(){
global $menu;
$item = $menu;
$str = '';
$i=0;
foreach($item as $k => $value)
{
$i++;
if($item[$i]["page"] == ".".$this->state())
{
return $item[$i]["name"];
}
}
}
function menu(){
global $menu;
$str = '';
$i=0;
foreach($menu as $k => $value)
{
$i++;
$str.= "<li><a href='".$menu[$i]["page"]."' ".($menu[$i]["page"] == ".".$this->state() ? 'class="selected"' : '')." title='".$menu[$i]["name"]."'>".$menu[$i]["name"]."</a></li>";
}
//$this->state($page_title);
return $str;
}
function content($page, $name){
$post = array(
'page' => ".".$page,
'name' => $name,
'password' => 'bar',
'submit' => TRUE,
);
$data = http_build_query($post);
$opts = array(
'http' => array(
'method' => 'POST',
'header' => "Content-type: application/x-www-form-urlencoded\r\nContent-Length: " . strlen($data) . "\r\n",
'content' => $data,
)
);
$context = stream_context_create($opts);
$url = $this->siteURL()."/content.php";
$content = file_get_contents($url,FALSE,$context);
return $content;
}
function state() {
$request = substr($_SERVER['PHP_SELF'], 0, strrpos($_SERVER['PHP_SELF'], '/'));
$str_repl = str_replace($request, '', $_SERVER['REQUEST_URI']);
return $str_repl;
}
function siteURL()
{
if (isset($_SERVER['HTTPS']) &&
($_SERVER['HTTPS'] == 'on' || $_SERVER['HTTPS'] == 1) ||
isset($_SERVER['HTTP_X_FORWARDED_PROTO']) &&
$_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') {
$protocol = 'https://';
}
else {
$protocol = 'http://';
}
$siteUrl = $protocol.$_SERVER["HTTP_HOST"].$_SERVER["PHP_SELF"];
return dirname($siteUrl);
}
}
$data = new load_page_vars();
?>
PHP:
<?php
switch ($_POST["page"]) {
//Home page
case "home":
include($_SERVER['DOCUMENT_ROOT'].'/home.php');
break;
//Service page
case "service":
include($_SERVER['DOCUMENT_ROOT'].'/page/service.php');
break;
//Страница ошибок
case 'error':
default:
include($_SERVER['DOCUMENT_ROOT'].'/page/error.php');
break;
}
?>
HTML:
<li><strong>V Междисциплинарный конгресс</strong> по заболеваниям органов головы и шеи. 29-31 Мая 017 года Москва. </li>
<li><strong>МАСТЕР-КЛАСС ИСМАГИЛОВА А.Х.</strong> - «АУГМЕНТАЦИОННАЯ МАММОПЛАСТИКА - ВЗГЛЯД ИЗ КАЗАНИ» 26 мая 2017г. Москва </li>
<li><strong>ПРАКТИЧЕСКИЙ СЕМИНАР С УЧАСТИЕМ ДОКТОРА РОЛАНДА НЕЯ</strong> - «КОРРЕКЦИЯ ВЕРХНЕЙ ТРЕТИ ЛИЦА ПРИ ПОМОЩИ ПРЕПАРАТА JUVEDERM VYCROSS: ЛОБ, ВИСКИ И БРОВИ» 30 мая 2017 г. Москва </li>
<li><strong>ПРАКТИЧЕСКИЙ СЕМИНАР С УЧАСТИЕМ ПРОФЕССОРА АКСЕЛЬ-МАРИО ФЕЛЛЕРА (ГЕРМАНИЯ)</strong> - «РЕКОНСТРУКЦИЯ МОЛОЧНЫХ ЖЕЛЕЗ 23 июня 2017 г., г. Москва</li>
HTML:
<li><strong>МЕЖДУНАРОДНЫЙ СИМПОЗИУМ</strong> - «ОТ ЭСТЕТИЧЕСКОЙ ХИРУРГИИ К РЕКОНСТРУКТИВНОЙ»15-17 июля 2017 г., г. Москва </li>
<li><strong>ПРАКТИЧЕСКИЙ СЕМИНАР</strong> - «ДИФФЕРЕНЦИРОВАННЫЙ ПОДХОД В АУГМЕНТАЦИОННОЙ МАММОПЛАСТИКЕ» 7 октября 2017 г., г. Москва</li>
<li><strong>Первая конференция(ISAPS)</strong> Международного общества эстетической пластической хирургии в России «Эстетическая пластическая хирургия – путь к успеху» 10-11 ноября 2017 г., г. Москва. </li>
<li><strong>ПРАКТИЧЕСКИЙ СЕМИНАР</strong> - «ДИФФЕРЕНЦИРОВАННЫЙ ПОДХОД В РИНОПЛАСТИКЕ» Рыбакин А.В. и Липский К.Б. 2 декабря 2017г. Москва</li>
<li><strong>VI Национальный конгресс</strong> - «ПЛАСТИЧЕСКАЯ ХИРУРГИЯ», 10-12 декабря Москва 2017г.</li>
document.js
JavaScript:
window.onload = function() {
function reAnswer(state, title){
$.ajax ({
url: "content.php",
type: "POST",
data: {page: state, name:title},
success: function (result) { $(".content").html(result);
}
});
}
function handlerAnchors() {
$("ul.nav li a").removeClass('selected');
$(this).addClass('selected');
var state = {
title: this.getAttribute( "title" ),
url: this.getAttribute( "href", 2 )
}
history.pushState( state, state.title, state.url );
document.title = state.title;
reAnswer(state.url, state.title);
return false;
}
var anchors = document.getElementsByTagName( 'a' );
for( var i = 0; i < anchors.length; i++ ) {
anchors[ i ].onclick = handlerAnchors;
}
window.onpopstate = function( e ) {
$("ul.nav li a").removeClass('selected');
$('ul.nav li a[href$="' + history.state.url + '"]').addClass('selected');
document.title = history.state.title;
reAnswer(history.state.url, history.state.title);
}
}
Локалка "Open Server 5.2.2"
Apache 2.4 ; PHP 7.0 -7.1 x64
В этой теме было размещено решение! Перейти к решению.
Последнее редактирование модератором: