Gilbert Posted April 16, 2019 Share Posted April 16, 2019 I thought I had this down, but I have a situation that isn't working. I have a page for dealing with schedules called adminSchedules.php and right at the top I put <?php session_start(); .... Then later on I make a xmlHTTPRequest and use the $_SESSION to get & set some session variables. I echoed them back to be sure they were set. Then I go back to the main adminSchedules page and I make another xmlHTTPRequest and when I try to access the session vars I set before, they are not set. I've checked over all the syntax carefully and the error I'm getting in the error_log file is 'variable undefined '_SESSION' . So I'm confused and thought maybe the sessions don't extend to xmlHTTPRequests or what. Can someone explain exactly what the 'scope' of a session is, or what I should be doing differently? I do understand about when you invoke a session var the compiler looks on your computer for the session key and all that, so I don't understand why it's not returning the value when I ask for it. should I be putting a 'session_start()' at the top of every PHP file that I make an xmlHTTPRequest to? Thank you so much for your help Link to comment Share on other sites More sharing options...
justsomeguy Posted April 16, 2019 Share Posted April 16, 2019 You need to start the session before any code that tries to use the session. Every HTTP request is separate as far as PHP is concerned. Link to comment Share on other sites More sharing options...
Gilbert Posted April 16, 2019 Author Share Posted April 16, 2019 OK, I will keep that in mind, but the thing that seems conflicting is that I used the session_start() only once at the beginning of my main page and then the session worked fine in the first http request but then bombed in the second. I've also read that if you invoke the session_start in more than 2 places it can screw things up. So you're saying I do need a session_start() at the beginning of each php code I invoke with an HTTP request. I'll give it a whirl. Thanks for the help! Link to comment Share on other sites More sharing options...
Gilbert Posted April 16, 2019 Author Share Posted April 16, 2019 That seems to have done the trick. Now I have one other item concerning syntax that I hope you can help me with. I have a button with an onclick function and in that function I want to set a php session to the option that was chosen. function saveTheValue(theSID){ '<?php $_SESSION['editSchedStand']=' + theSID + ';?>'; } Can you tell me if this is possible or show me the correct syntax? Thank you Link to comment Share on other sites More sharing options...
Funce Posted April 17, 2019 Share Posted April 17, 2019 Its regrettable to say, but unfortunately PHP code is run, evaluated and removed before it leaves the web server. And because JavaScript only runs on the Client machines, there's no chance that JavaScript and PHP can interact beyond a server communication method. All you're sending to the browser is function saveTheValue(theSID){ ; } If you wish to access data that's in your PHP (or set things in your PHP), you'll need to make an xmlHTTPrequest to do so. Link to comment Share on other sites More sharing options...
justsomeguy Posted April 17, 2019 Share Posted April 17, 2019 I've also read that if you invoke the session_start in more than 2 places it can screw things up. If you try to start the session while it is already started then PHP will show an error. If it hasn't been started for that request then there's no problem. Remember, every HTTP request is separate in PHP. Starting a session in one request does not automatically start it in any other request. It doesn't matter if it is an XHR request, or typing a URL and hitting enter, or clicking a link. They're all just requests. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now