无法从jquery ajax调用的子文件夹中的脚本访问会话?

时间:2018-09-21 10:19:14

标签: php jquery ajax session

在我的header.php文件的最顶部,我有一个index.php

<?php require 'setup/header.php';  ?>

标头包含来自同一目录的一堆文件,其中一个是session.inc.php

<?php 
if(!isset($_SESSION)){
    session_name('__KD');
    session_set_cookie_params(0,'/','','',true);
    session_start();
}

if(!isset($_SESSION['visitor'])) { 
    if (empty($_SERVER['HTTP_REFERER'])) { $_SERVER['HTTP_REFERER'] = 'direct'; }
    $_SESSION['visitor']['ip'] = ipaddress();  //  personal function to retrive the users IP adress
    $_SESSION['visitor']['ua'] = $_SERVER['HTTP_USER_AGENT'];
    $_SESSION['visitor']['ref'] = $_SERVER['HTTP_REFERER'];
    $_SESSION['visitor']['arr'] = $now[0];  //  = getdate();
}
?>

在我的<body>的{​​{1}}部分中,有一个文件index.php,用于处理内容和实际的页面请求。 并且在最底部,仍位于load.tpl.php标签内,包括了所有javascript。

<body>

load.tpl.php

<body>
<?php require 'content/load.tpl.php'; ?>
<?php include 'assets/js/scripts.combined.js'; ?>
</body>

此结构可确保所有页面都可以访问<nav id="site-navigation" class="noprint">...</nav> <main id="site-content"> <?php /** * $_PAGE['file'] is a variable that holds the actual filename from a db request */ include $_PAGE['file'].'.php'; ?> </main> <footer id="site-footer">...</footer> 中的所有内容(函数,类,会话,DB,常量,变量等,以及javascript)。

这是我在包含的页面文件-header.php中单击“提交”按钮时正在执行的javascript / jquery ajax脚本:

Search.pg.php

最后解决手头的问题:
RequestRecipe.ajax.php
该脚本位于index.php的子文件夹中,与$("#RequestRecipe").submit(function(e){ var _POST = $(this).serialize(); // form $_POST[]s var script = 'scripts/RequestRecipe.ajax.php'; // script to be executed e.preventDefault(); $.ajax({type:'POST', url:script, data:_POST}) .done(function(response){ console.log(response); }) .fail(function(response){ console.log(response); }); }); 隔离。这意味着在此独立脚本中无法访问网站上所有可访问的内容:

index.php

RequestRecipe.ajax.php

root/
    index.php
    assets/js/scripts.combined.js  (this is where the ajax-script is located)
    setup/header.php (includes session.inc.php from same directory)
    content/Search.pg.php (is included by load.tpl.php into the index.php-file)
    scripts/RequestRecipe.ajax.php

当我单击提交按钮时,该按钮执行ajax调用,向<?php session_start(); print_r($_SESSION); // this is empty ?> 发出请求,$ _ SESSION不可用。会话返回空。

我做错了什么?

导航时,每个页面都有可用的会话,但进行ajax调用时,该会话不可用。

0 个答案:

没有答案