user2415992
user2415992

Reputation: 521

PHP Global variables for an externally included, AJAX loaded PHP file

Is it possible to access a Global variable declared in a file, e.g. a header.php file, from another external PHP file named content.php that has been loaded with an AJAX call, without using GET or POST?

e.g.

index.php:

<?php

    include 'header.php'; //The global variable $SESSIONID is defined in this file

    echo '<div id="for-content"></div>';

    include 'footer.php';
?>

header.php

<?php
    $SESSIONID = "asdf";
?>

content.php:

<?php
    echo $SESSIONID;
?>

And the AJAX call:

$("#for-content").load("content.php");

Upvotes: 1

Views: 4273

Answers (1)

Yannici
Yannici

Reputation: 736

No it isn't possible to get access to the global variable. You have to include header.php again. AJAX is loading the document (in your case content.php) asynchronous with a complete new http-request. So it will loading content.php without any data.

The only possible solution is to send $SESSIONID with AJAX-Call via POST:

$.ajax({
  type: "POST",
  url: 'content.php',
  data: {session: '<?php echo $SESSIONID; ?>'},
  success: function(data) {
       $('.target').html(data)
    },
  dataType: 'html'
});

or GET

$.ajax({
  url: 'content.php',
  data: {session: '<?php echo $SESSIONID; ?>'},
  success: function(data) {
       $('.target').html(data)
    },
  dataType: 'html'
});

Upvotes: 2

Related Questions