Exeoutput Version 2018.1 and SESSION Variables


#1

Prior to the version upgrade, I was using the standard in PHP,
session_save_path("…/mystoragedir");
session_start();
It was working great. I did not want to use the ExeOutput method for storage because I also run this application on the web, so I am keeping the PHP (7.1) as clean as possible. Now, I am getting no SESSION files put into “…/mystoragedir” (example). As I mentioned, my coding in my scripts has worked perfectly through all ExeOutput versions since early 2017.

Can you help me understand what to do to use the simple, clean PHP session_save_path("…/mystoragedir") function.

Thanks

Frank Mc.


#2

You might try using $_SERVER[‘DOCUMENT_ROOT’].

Not clear on intended location of your folder, so shot in the dark on recommendation.

Something like:

session_save_path($_SERVER['DOCUMENT_ROOT']."…/mystoragedir");

Should place in “Data” folder along side your software exe.

These threads may also help:


#3

Thank you! That put me on the right track. I am still going to need to manipulate the $_SERVER[‘DOCUMENT_ROOT’] … in the ExeOuput EXE it throws “DATA” into the string … in my local web set up it only shows “C:\inetpub\wwwroot” … so in one case I will need to strip something out … the other I will need to add in my directory. When this goes out to clients on different platforms, that will get edgy. That is why I was hoping for a solution to simply using the session_save_path("…/mystoragedir")

Thanks for your help … I will keep digging around before I have to do all that hacking

fmcleod


#4

Intended location of my folder is C:\Musanizer\mystoragedir" for the exececutable which is in C:\Musanizer

When clients use it on the web … it would be TheirTopPage/Musanizer/mystoragedir

In every script (in various folders) I am referencing storage location with session_save_path("…/mystoragedir") and it has worked perfectly like that for two years on previous ExeOuput versions.

Thanks


#5

Same for me. Had to convert many projects after release of 2018 version.

Above my knowledge (I always tap my husbands brain or stackoverflow for more complex PHP / javascipt) but maybe you can take advantage of fact exeout uses “heserver” for domain name. If your project is detects “heserver” use one folder location, it not use another location. May not even be possible, but thought would throw it out there:)


#6

Check the PHP.INI you have. Some changes were made into PHP.INI between ExeOutput 2018 and previous releases. Anyway, using $_SERVER[‘DOCUMENT_ROOT’] is better.


#7

Yes, the php.ini is the key. THANKS. I have some coding to fix and redo around it, but does the trick!


#8

One more word … I usually go through all kinds of iterations of code and eventually always come back to the addage, “simper is better.”

if ($_SERVER[‘SERVER_SOFTWARE’] == ‘ExeOutput for PHP’)
{ … yada yada yada }
else
{ … yada yada yada }

works cleanly and efficiently.

Frank


#9

Excellent advice Frank! Thanks for sharing your solution.