Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

php session not working with ajax

I've got a weird problem were php session variables are not working on pages accessed by ajax.

Server Side Code: s2.php

<?php
    session_start();
    header("Access-Control-Allow-Origin: *");

    echo '{"response":"'.$_SESSION["email"].'"}';

    exit();
?>

Client Side Code: index.php

$.ajax({
    url: 'mysite.com/s2.php',
    data: info,
    error: function() {
        console.log("broke :( ");
    },
    dataType: 'json',
    success: function(data) {
        console.log(data);
    },
    type: 'POST'
});

when I navigate to mysite.com/index.php i see: {response: ""} in the console.

When I navigate to mysite.com/s2.php I see {response: "email@address"} displayed in the browser.

I just don't understand why s2.php can access the session normally but not when run by an ajax call.

Also, when I run it on my home server, everything seems fine. But it's when it's run on my wife's bluehost.com server is when it has problems. Is this something with their settings?

like image 677
tyler mackenzie Avatar asked Dec 20 '25 07:12

tyler mackenzie


1 Answers

According with the official documentation, you must call the session_start() method in each one of pages where you are going to use the session, so try to call session_start() in your index.php.

This method starts new or resumes existing session, also check your PHPSESSID cookie sent with the AJAX request that match with your index.php PHPSESSID.

like image 191
Jose Rojas Avatar answered Dec 21 '25 22:12

Jose Rojas



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!